使用 Azure SQL,我有一个由证书签名的过程,我想在其中读取表统计信息。该过程可以sys.stats
正常读取,但我从使用 的查询中获得零行sys.dm_db_stats_properties
,例如FROM sys.stats S CROSS APPLY sys.dm_db_stats_properties(S.object_id,S.stats_id) SP WHERE S.object_id= 123456
。我已将以下权限应用于证书链接到的用户...
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
我是否缺少另一项 GRANT?我是否需要申请其他权限?
根据 Microsoft 的说法,为了查看统计信息对象,用户必须拥有该表,或者用户必须是 sysadmin 固定服务器角色、db_owner 固定数据库角色或 db_ddladmin 固定数据库角色的成员。您可以在这里找到它 - https://learn.microsoft.com/en-us/sql/relational-databases/statistics/view-statistics-properties?view=sql-server-ver16
阿迪