Поделиться через


Разрешение VIEW ANY DATABASE

VIEW ANY DATABASE — это новое разрешение уровня сервера. Имя входа, которому предоставлено это разрешение, может просматривать метаданные, описывающие все базы данных, независимо от того, кому они принадлежат, и имеет ли имя входа доступ к этим базам данных.

Разрешение VIEW ANY DATABASE регулирует возможность просмотра метаданных в представлениях sys.databases и sysdatabases и с помощью системной хранимой процедуры sp_helpdb.

По умолчанию разрешение VIEW ANY DATABASE предоставлено роли public. Таким образом, любой пользователь, подключившийся к экземпляру SQL Server, может увидеть все базы данных в данном экземпляре. Чтобы это проверить, выполните следующий запрос.

SELECT l.name as grantee_name, p.state_desc, p.permission_name 
FROM sys.server_permissions AS p JOIN sys.server_principals AS l 
ON   p.grantee_principal_id = l.principal_id
WHERE permission_name = 'VIEW ANY DATABASE' ;
GO

Чтобы предоставить разрешение VIEW ANY DATABASE определенному имени входа, выполните следующий запрос:

GRANT VIEW ANY DATABASE TO <login>; 

Метаданные, которые описывают базы данных master и tempdb, всегда видимы для public.

Членам предопределенной роли сервера sysadmin всегда разрешено просматривать метаданные всех баз данных.

Владельцы всегда видят строки собственных баз данных в представлении sys.databases.

Предоставление разрешений CREATE DATABASE и ALTER ANY DATABASE для имени входа подразумевает доступ к метаданным таблицы.

ПримечаниеПримечание

Разрешение CREATE DATABASE неявно предоставлено предопределенной роли сервера dbcreator.

ПримечаниеПримечание

Если предоставить имени входа разрешения CREATE DATABASE и ALTER ANY DATABASE и не отменить разрешение VIEW ANY DATABASE, имя входа сможет увидеть все строки представления sys.databases.

Чтобы ограничить видимость метаданных, запретите разрешение VIEW ANY DATABASE для имени входа. После отказа в этом разрешении для имени входа доступны только метаданные баз данных master, tempdb и баз данных, владельцем которых оно является. Дополнительные сведения см. в разделе DENY, запрет разрешений на сервере (Transact-SQL).