web-dev-qa-db-fra.com

Étape de travail SQL exécutée en tant que compte SQL différent

Je suis curieux de savoir comment configurer une étape de travail SQL à exécuter en tant que compte de connexion SQL différent. Il semble que je dois configurer un nouveau compte proxy qui nécessite des informations d'identification existantes. Lorsque je crée un identifiant, ma seule option est d'utiliser un identifiant de connexion Windows.

Le travail que j'essaie d'exécuter est ci-dessous. Il existe d'autres instructions supplémentaires, mais lorsque j'établis l'étape de travail à exécuter en tant que connexion SQL, elle échoue.

insert into [dbo].[TableA]
SELECT 
       ss.[Ref_ID]
      ,mm.[studentID]
      ,mm.[studentPersonID]
      ,mm.[studentFirstname]
  FROM [dbo].[TableB] mm
  left outer join [dbo].[TableC] ss on ss.parentPersonID=mm.parentPersonID and mm.studentPersonID = ss.studentPersonID
  where ss.Ref_ID is not null;

Lorsque cela est exécuté via une étape de travail SQL, il échoue.

Executed as user: an_admin_account. Access to the remote server is denied because the current security context is not trusted. [SQLSTATE 42000] (Error 15274).  The step failed.

Je ne sais pas pourquoi il essaie d'accéder à un serveur distant lorsque toutes ces tables existent sur la base de données locale.

11
Geoff Dawdy

Si vous configurez une étape de travail T-SQL, accédez à la page Avancé et configurez "Exécuter en tant qu'utilisateur" sur la connexion de votre choix. enter image description here

Si vous travaillez avec d'autres types d'étapes de travail comme PowerShell, il faudra configurer un compte proxy.

15
user507

Utilisation EXECUTE AS au début, ou créez une procédure stockée qui s'exécute dans un contexte particulier.

1
Rob Farley