Разрешение VIEW ANY DATABASE
VIEW ANY DATABASE — это новое разрешение уровня сервера. Имя входа, которому предоставлено это разрешение, может просматривать метаданные, описывающие все базы данных, независимо от того, кому они принадлежат и имеет ли имя входа доступ к этим базам данных.
Разрешение VIEW ANY DATABASE регулирует возможность просмотра метаданных в представлениях sys.databases и sysdatabases и с помощью системной хранимой процедуры sp_helpdb.
По умолчанию разрешение VIEW ANY DATABASE предоставлено роли public. Таким образом, любой пользователь, подключившийся к экземпляру SQL Server 2005, может увидеть все базы данных в данном экземпляре. Чтобы это проверить, выполните следующий запрос.
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
Метаданные, описывающие базы данных 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 и баз данных, владельцем которых оно является.
См. также
Основные понятия
Настройка видимости метаданных
Разрешение VIEW DEFINITION
Просмотр определений объектов