在 Azure SQL 中查询 sys.objects 和 sys.partitions 的最小 SQL 用户权限

Min SQL user privilege to query sys.objects and sys.partitions in Azure SQL

我希望 SQL 用户可以执行以下操作 SQL,但不能读取其他模式的内容。

最好的实施方式是什么?

SELECT (Schema_name(A.schema_id) + '.' + A.NAME ) AS TableName,
       Sum(B.rows) AS RecordCount
FROM sys.objects A
         INNER JOIN sys.partitions B
                 ON A.object_id = B.object_id
WHERE A.type = 'U'
GROUP BY A.schema_id, A.NAME 

对于列,每个不同于相应对象级权限的权限都有一行。如果列权限与对应的对象权限相同,则没有行,申请的权限是对象的权限。

Note: Column-level permissions override object-level permissions on the same entity.

指定可以授予架构的权限。 Here.

在极少数情况下,合并 ALTER 和 REFERENCE 权限可能允许被授权者访问数据或执行禁止的操作。例如,具有 table 的 ALTER 访问权限和函数的 REFERENCE 权限的用户可以在函数上构建和执行计算列。在这种情况下,用户还必须对计算列具有 SELECT 权限。