GRANT, предоставление разрешения на системный объект (Transact-SQL)
Изменения: 17 июля 2006 г.
Предоставляет разрешения на доступ к таким системным объектам как хранимые процедуры, расширенные хранимые процедуры, функции и представления.
Синтаксические обозначения в Transact-SQL
Синтаксис
GRANT { SELECT | EXECUTE } ON [ sys.]system_object TO principal
Аргументы
- [ sys.] .
Квалификатор sys используется только при обращении к представлениям каталогов и к динамическим административным представлениям.
- system_object
Задает объект, для которого предоставляется разрешение.
- principal
Указывает участника, которому предоставляется разрешение.
Замечания
Данная инструкция может быть использована для предоставления разрешений на доступ к определенным хранимым процедурам, расширенным хранимым процедурам, функциям, возвращающим табличное значение, скалярным функциям, представлениям, представлениям каталогов и совместимостей, представлениям INFORMATION_SCHEMA, динамическим административным представлениям, а также системным таблицам, установленным SQL Server 2005. Каждый из этих системных объектов существует в виде уникальной записи в базе данных ресурсов сервера (mssqlsystemresource). База данных ресурсов доступна только для чтения. Ссылка на объект представляется в виде записи в схеме sys для каждой базы данных. Разрешение на запуск или выбор системного объекта может быть предоставлено, закрыто или отозвано.
Предоставление разрешения на выполнение или выбор объекта не подразумевает обязательного наличия других разрешений на использование данного объекта. В большинстве случаев для действий над объектами необходимо обладать дополнительными разрешениями. Например, пользователь, обладающий разрешением EXECUTE на процедуру sp_addlinkedserver, но при этом не являющийся членом фиксированной серверной роли sysadmin, не имеет права создавать связанные серверы.
Разрешение на присвоение имен по умолчанию устраняет проблему неправильных имен процедур в базе данных ресурсов. Поэтому квалификатор sys используется только при задании представлений каталогов и динамических административных представлений.
Разрешение на доступ к триггерам и столбцам системных объектов не предоставляется.
При обновлении SQL Server разрешения на доступ к системным объектам сохраняются.
Системные объекты отображаются в представлении каталога sys.system_objects. Разрешения на доступ к системным объектам отображаются в представлении каталога sys.database_permissions в базе данных master.
В результате выполнения следующего запроса извлекаются данные о разрешениях на доступ к системным объектам:
SELECT * FROM master.sys.database_permissions AS dp
JOIN sys.system_objects AS so
ON dp.major_id = so.object_id
WHERE dp.class = 1 AND so.parent_object_id = 0 ;
GO
Разрешения
Требуются разрешения CONTROL SERVER.
Примеры
А. Предоставление разрешения SELECT на представление
В ходе выполнения следующего примера имени входа SQL Server Smacrae
предоставляется разрешение на выбор представления, отображающего учетные записи SQL Server. Затем предоставляется дополнительное разрешение на просмотр метаданных имен входа SQL Server, принадлежащих другим пользователям.
USE AdventureWorks;
GRANT SELECT ON sys.sql_logins TO Smacrae;
GRANT VIEW SERVER STATE to Smacrae;
GO
Б. Предоставление разрешения EXECUTE на расширенную хранимую процедуру
В следующем примере имени входа Smacrae
предоставляется разрешение EXECUTE
на процедуру xp_readmail
.
GRANT EXECUTE ON xp_readmail TO Smacrae;
GO
См. также
Справочник
sys.system_objects (Transact-SQL)
sys.database_permissions (Transact-SQL)
REVOKE, отмена разрешения на системные объекты (Transact-SQL)
DENY, запрет разрешений на системные объекты (Transact-SQL)
Справка и поддержка
Получение помощи по SQL Server 2005
Журнал изменений
Версия | Журнал |
---|---|
17 июля 2006 г. |
|