SQL Azure VIEW DATABASE STATE отказано в доступе к базе данных "master"

Когда я выполняю следующий запрос:

SELECT * FROM sys.dm_io_virtual_file_stats(NULL, NULL)

Я получаю ошибку:

Сообщение 262, уровень 14, состояние 1, строка 4 В базе данных "master" отказано в разрешении VIEW DATABASE STATE. Сообщение 297, уровень 16, состояние 1, строка 4 Пользователь не имеет разрешения на выполнение этого действия.

Но я смог выполнить этот запрос, используя подготовленного (на портале SQL Azure) администратора.

Я не могу GRANT VIEW DATABASE STATE для master (используя подготовленного пользователя-администратора) ни одному из созданных мной пользователей, я получаю следующую ошибку: Grantor не имеет разрешения GRANT.

Любые идеи, как быть в состоянии выполнить запрос

SELECT * FROM sys.dm_io_virtual_file_stats(NULL, NULL)

от пользователя, отличного от предоставленного (на портале SQL Azure) администратора?

2 ответа

Решение

В SQL Database Premium Tiers требуется разрешение VIEW DATABASE STATE в базе данных. Разрешения не могут быть предоставлены в Master, но представления могут запрашиваться в пользовательских базах данных. В SQL Database Standard и Basic Tier требуется учетная запись администратора сервера базы данных SQL из-за требований безопасности, вытекающих из нескольких арендаторов этих уровней.

Джек прав.

На многопользовательских уровнях базы данных только администратор сервера может запрашивать представления, которые относятся к серверу (требуются разрешения VIEW SERVER STATE), а те, которые относятся к базе данных, могут запрашивать те, у кого есть разрешения на разрешения view_database_state.

Для баз данных Premium, DBO может запрашивать DMV, которые относятся к Серверу и базе данных.

В основной базе данных сервера никто не имеет разрешения на просмотр базы данных / просмотр сервера.

Другие вопросы по тегам