Usando o Azure SQL, tenho um procedimento assinado por certificado no qual gostaria de ler as estatísticas da tabela. O proc pode ler sys.stats
bem, mas recebo zero linhas de uma consulta usando sys.dm_db_stats_properties
, por exemplo FROM sys.stats S CROSS APPLY sys.dm_db_stats_properties(S.object_id,S.stats_id) SP WHERE S.object_id= 123456
. Apliquei as seguintes permissões ao usuário ao qual o certificado está vinculado...
GRANT VIEW PERFORMANCE DEFINITION TO Maintenance_User
GRANT VIEW DATABASE PERFORMANCE STATE TO Maintenance_User
GRANT VIEW DEFINITION TO Maintenance_User
GRANT VIEW DATABASE STATE TO Maintenance_User
Estou faltando outro GRANT? Preciso aplicar uma permissão diferente?
De acordo com a Microsoft, para visualizar o objeto de estatísticas, o usuário deve possuir a tabela ou deve ser membro da função de servidor fixa sysadmin, da função de banco de dados fixa db_owner ou da função de banco de dados fixa db_ddladmin. Você pode encontrá-lo aqui - https://learn.microsoft.com/en-us/sql/relational-databases/statistics/view-statistics-properties?view=sql-server-ver16
Adi