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, которые относятся к Серверу и базе данных.
В основной базе данных сервера никто не имеет разрешения на просмотр базы данных / просмотр сервера.