Estou tentando monitorar bancos de dados do Azure MS SQL usando este Grafana dasboard . Ele executa várias consultas em tabelas cujos nomes começam com sys e msdb.dbo.
Criei um grafana
usuário dedicado para isso e tentei adicionar o usuário às permissões db.datareader, bem como GRANT SELECT ON SCHEMA :: sys TO [grafana];
, e GRANT view database state TO [grafana];
, mas ainda estou recebendo erros de permissão.
Tentar conceder seleção diretamente em tabelas específicas (por exemplo GRANT SELECT ON sys.dm_exec_query_stats TO grafana;
) no banco de dados mestre, além de ser tedioso, parece nunca ser permitido para o usuário mestre, como eu recebo SQL Error [40574] [S0001]: Permissions for system stored procedures, server scoped catalog views, and extended stored procedures cannot be changed in this version of SQL Server.
.
Qual é a maneira correta de fazer isso?
A documentação para sys.dm_exec_query_stats sugere que ele requer
VIEW SERVER STATE
permissão.O mesmo se aplica a muitas outras visões de sistema.
Encontrei a solução. O Azure não deixa você conceder permissões no esquema sys de nenhuma forma, seja diretamente ou executando
GRANT VIEW SERVER/DATABASE STATE
comandos.Você tem que adicionar seu usuário a uma das funções internas do servidor . No meu caso
funcionou.