A mensagem de erro completa:
MyPackageName:Erro: Código de erro SSIS DTS_E_OLEDBERROR. Ocorreu um erro de banco de dados OLE. Código de erro: 0x80004005. um registro OLE DB está disponível. Fonte: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80004005 Descrição: "Falha no login do usuário 'AD\MyUser'.". Um registro OLE DB está disponível. Fonte: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80004005 Descrição: "Não é possível abrir o banco de dados "MyDatabase" solicitado pelo login. O login falhou.".
E uma mensagem de erro de acompanhamento:
MyDataFlowTaskName:Erro: Código de erro SSIS DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. A chamada do método AcquireConnectionm para o gerenciador de conexões "MyConnectionManager" falhou com o código de erro 0xC0202009. Pode haver mensagens de erro postadas antes disso com mais informações sobre o motivo da falha na chamada do método AcquireConnection.
Preciso executar uma SELECT
consulta TSQL em um banco de dados. Como posso contornar o erro de login?
Talvez ajude mostrar como toda a configuração é feita no SSMS para que funcione.
Descubra qual usuário você precisa adicionar aos usuários do seu banco de dados. Como executo um pacote SSIS implantado neste exemplo, o relatório do catálogo SSISDB mostra o "Chamador" no canto superior direito (sublinhado em vermelho):
E o erro, que também contém o chamador:
O chamador no canto superior direito mostra o nome. Adicione um novo usuário com este nome, se ainda não estiver lá:
Coloque dbo (ou qualquer esquema) como o "esquema padrão":
Marque db_owner como esquema pertencente a este usuário:
Dê direitos aos esquemas de sua escolha que estão no banco de dados:
Ou você também pode escolher as tabelas como objetos:
E conceda
SELECT
direitos ao esquema ou mais:Execute o job ou a etapa do job escolhida no SQL Agent e verifique se o login funciona.