É necessário SQLAgentUserRole para visualizar as tabelas msdb.dbo?

1

Freqüentemente, verifico o status dos trabalhos para obter informações sobre planejamentos, status de execução, tempos de execução, etc. por meio de consulta em tabelas msdb.dbo em ambientes de equipe como parte da validação de ETL. Estou curioso para saber se as permissões podem ser concedidas a um login universal utilizado por desenvolvedores em ambientes não isolados, como Merge ou QA, onde várias equipes estão acessando, levando, mas não incluindo Prod, a permitir a exibição de tabelas msdb.dbo?

Atualmente, o referido login de desenvolvimento universal não tem privilégios suficientes e deve confiar nos DBAs para relatar essas informações conforme solicitado, consumindo seu tempo e esforço. Eu não acredito que isso é o mesmo que conceder SQLAgentUserRole, mas poderia estar enganado. Esta solicitação está sobrecarregando / pisando em dedos DBA?

Minha consulta para referência: (usar o JDBC via SoapUI requer maior detalhamento) SELECT [sysjobs].[name] AS [job_name], [sysjobhistory].[run_date] AS [run_date], [sysjobhistory].[run_time] AS [run_time], [sysjobhistory].[run_status] AS [run_status] FROM [msdb].[dbo].[sysjobs] INNER JOIN [msdb].[dbo].[sysjobhistory] ON [sysjobs].[job_id] = [sysjobhistory].[job_id] WHERE [sysjobs].[enabled] = 1 -- only enabled jobs ORDER BY [run_date], [run_time] DESC

Obrigado pelo seu tempo.

    
por tup1e 21.09.2016 / 18:42

1 resposta

0

O SQLAgentUserRole vem com muito mais direitos do que apenas ler nas duas tabelas em sua consulta, você pode ver esses direitos na guia securables nas propriedades para a função. Se você deseja obter acesso apenas às duas tabelas msdb em sua consulta, crie outra função de banco de dados com apenas esses direitos e, em seguida, adicione suas credenciais do SQL / AD à instância com essa função em msdb.

    
por 22.09.2016 / 17:55

Tags