Estou curioso para saber como configurar uma etapa do trabalho SQL para ser executada como uma conta de logon SQL diferente. Parece que preciso configurar uma nova conta proxy que exija uma credencial existente. Quando crio uma credencial, minha única opção é usar uma credencial de logon do Windows.
O trabalho que estou tentando executar está abaixo. Existem outras instruções adicionais, mas quando defino a etapa do trabalho para ser executada como o logon do SQL, ela falha.
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;
Quando isso é executado através de uma etapa da tarefa SQL, ele falha.
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.
Não sei ao certo por que ele está tentando acessar um servidor remoto quando todas essas tabelas existem no banco de dados local.
sql-server
sql-server-2008-r2
security
sql-server-agent
Geoff Dawdy
fonte
fonte
Respostas:
Se você estiver configurando uma etapa do trabalho T-SQL, vá para a Página Avançada e configure "Executar como usuário" para o logon de sua escolha.
Se você estiver trabalhando com outros tipos de etapas de trabalho, como o PowerShell, será necessário configurar uma conta proxy.
fonte
Use
EXECUTE AS
no início ou crie um procedimento armazenado que seja executado em um contexto específico.fonte