数据库' master'中的SQL Azure VIEW DATABASE STATE权限被拒绝

时间:2015-07-04 09:00:27

标签: sql-server azure azure-sql-database

当我执行以下查询时:

SELECT * FROM sys.dm_io_virtual_file_stats(NULL, NULL)

我收到了错误:

  

消息262,级别14,状态1,行4查看数据库状态权限   在数据库' master'中被拒绝。 Msg 297,Level 16,State 1,Line 4 The   用户无权执行此操作。

但我能够使用配置的(由SQL Azure门户网站)管理员用户执行此查询。

我无法将master(使用配置的管理员用户)查看DATABASE STATE给我创建的任何用户,我收到以下错误: 授予者没有GRANT权限。

任何想法如何执行查询

SELECT * FROM sys.dm_io_virtual_file_stats(NULL, NULL)

来自配置(由SQL Azure门户网站)管理员用户以外的用户?

2 个答案:

答案 0 :(得分:5)

在SQL数据库上,Premium Tiers需要数据库中的VIEW DATABASE STATE权限。无法在Master中授予权限,但可以在用户数据库中查询视图。            在SQL数据库标准和基本层上,由于这些层的多租户之后的安全性要求,因此需要SQL数据库服务器管理员帐户。

答案 1 :(得分:2)

杰克是对的。

在多租户数据库层上,只有服务器管理员可以查询作用域的视图(需要VIEW SERVER STATE权限),并且具有view_database_state权限的任何人都可以查询那些作用于数据库的视图。

对于Premium数据库,DBO可以查询范围为服务器和数据库的DMV。

在服务器的主数据库上,没有人具有查看数据库/视图服务器权限。