3

我在 Sql Server 2008 R2 数据库上有一个用户帐户,它是db_datareader数据库角色的成员,没有其他权限。为什么不允许该用户执行以下 SELECT 语句?

SELECT * FROM sys.dm_db_partition_stats

我必须设置哪些权限才能允许他执行此查询,但仍要阻止他对数据库做任何有害的事情?

4

2 回答 2

8

您需要为此授予VIEW DATABASE STATE

grant VIEW DATABASE STATE to [<YourUser>]
于 2013-04-19T14:05:10.020 回答
8

如果只有某种方式可以搜索 Web 并引导您访问产品文档:

sys.dm_db_partition_stats

需要 VIEW DATABASE STATE 权限才能查询sys.dm_db_partition_stats动态管理视图。有关动态管理视图权限的详细信息,请参阅动态管理视图和函数 (Transact-SQL)

并且db_datareader(好吧,我承认这个有点难找):

db_datareader固定数据库角色的成员可以从所有用户表中读取所有数据。

我的重点

于 2013-04-19T14:09:46.180 回答