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


Инструкция GRANT (Transact-SQL)

Изменения: 12 декабря 2006 г.

Выдача разрешений участнику на защищаемый объект.

Синтаксис

Simplified syntax for GRANT
GRANT { ALL [ PRIVILEGES ] }
      | permission [ ( column [ ,...n ] ) ] [ ,...n ]
      [ ON [ class :: ] securable ] TO principal [ ,...n ] 
      [ WITH GRANT OPTION ] [ AS principal ]

Аргументы

  • ALL
    Этот параметр устарел и сохранен только для поддержки обратной совместимости. Он не предоставляет все возможные разрешения. Выдача разрешения ALL эквивалентна предоставлению следующих разрешений:

    • если защищаемым объектом является база данных, аргумент «ALL» обозначает разрешения BACKUP DATABASE, BACKUP LOG, CREATE DATABASE, CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, CREATE TABLE и CREATE VIEW;
    • если защищаемым объектом является скалярная функция, аргумент «ALL» обозначает разрешения EXECUTE и REFERENCES;
    • если защищаемым объектом является функция, возвращающая табличное значение, аргумент «ALL» обозначает разрешения DELETE, INSERT, REFERENCES, SELECT и UPDATE;
    • если защищаемым объектом является хранимая процедура, аргумент «ALL» подразумевает разрешение EXECUTE;
    • если защищаемым объектом является таблица, аргумент «ALL» обозначает разрешения DELETE, INSERT, REFERENCES, SELECT и UPDATE;
    • если защищаемым объектом является представление, аргумент «ALL» обозначает разрешения DELETE, INSERT, REFERENCES, SELECT и UPDATE.
  • PRIVILEGES
    Включен для соответствия SQL-92. Не изменяет поведения ALL.
  • permission
    Имя разрешения. Допустимые сопоставления разрешений защищаемых объектов описаны в разделах, перечисленных ниже.
  • column
    Указывает имя столбца таблицы, на который предоставляется разрешение. Требуются круглые скобки «()».
  • class
    Указывает класс защищаемого объекта, для которого предоставляется разрешение. Квалификатор области «::» обязателен.
  • securable
    Указывает защищаемый объект, для которого предоставляется разрешение.
  • TO principal
    Имя участника. Состав участников, которым можно предоставлять разрешения, меняется в зависимости от защищаемого объекта. Допустимые сочетания описаны в разделах, перечисленных ниже.
  • GRANT OPTION
    Показывает, что получающему разрешению будет также дана возможность предоставлять указанное разрешение другим участникам.
  • AS principal
    Задает участника, от которого участник, выполняющий данный запрос, наследует право на предоставление разрешения.

Замечания

Полное описание синтаксиса инструкции GRANT сложно. Вышеприведенная синтаксическая диаграмма упрощена с целью пояснения ее структуры. Полное описание синтаксиса предоставления разрешений на конкретные защищаемые объекты приведено в разделах, перечисленных ниже.

Инструкция REVOKE может использоваться для удаления уже выданных прав доступа, а инструкция DENY может использоваться, чтобы предотвратить получение участником определенного разрешения посредством инструкции GRANT.

Предоставление разрешения удаляет DENY или REVOKE для этого разрешения на данный защищаемый объект. Если то же разрешение запрещено для более высокой области действия, которая содержит данный защищаемый объект, то DENY имеет более высокий приоритет. Но отмена разрешения, выданного в более высокой области действия, не получает такого приоритета.

Разрешения уровня базы данных выдаются в пределах области указанной базы данных. Если пользователю нужны разрешения на объекты в другой базе данных, необходимо создать для него учетную запись в этой базе данных или предоставить ему разрешение на доступ как к текущей, так и к другим базам данных.

ms187965.Caution(ru-ru,SQL.90).gifВнимание!
В SQL Server 2005 запрет (DENY) уровня таблицы имеет меньший приоритет, чем предоставление разрешения (GRANT) уровня столбца. Эта несовместимость в иерархии разрешений предусмотрена в целях гарантии обратной совместимости. В будущем выпуске это будет устранено.

Системная хранимая процедура sp_helprotect сообщает о разрешениях на доступ к защищаемым объектам уровня базы данных.

Разрешения

Лицо, предоставляющее разрешение (или участник, указанный параметром AS), должно иметь либо само разрешение, предоставленное с помощью GRANT OPTION, либо разрешение более высокого уровня, которое неявно включает предоставляемое разрешение. Если используется параметр AS, налагаются дополнительные ограничения. Дополнительные сведения см. в разделах, посвященных конкретным защищаемым объектам.

Владельцы объектов могут предоставлять разрешения на объекты, которыми они владеют. Участники с разрешениями CONTROL на защищаемые объекты могут предоставлять разрешения на эти объекты.

Обладатели разрешения CONTROL SERVER, например члены фиксированной серверной роли sysadmin, могут предоставлять любое разрешение на любой защищаемый объект сервера. Обладатели разрешения CONTROL для базы данных, например члены фиксированной роли базы данных db_owner, могут предоставлять любое разрешение на любой защищаемый объект в базе данных. Обладатели разрешения CONTROL для схемы могут предоставлять любые разрешения на любые объекты, содержащиеся в данной схеме.

Примеры

См. следующие разделы о синтаксисе инструкции в зависимости от защищаемого объекта.

Роль приложения

GRANT, предоставление разрешений на участника базы данных (Transact-SQL)

Сборка

Разрешения для сборки GRANT (Transact-SQL)

Асимметричный ключ

GRANT, предоставление разрешения на асимметричный ключ (Transact-SQL)

Сертификат

GRANT, предоставление разрешений на сертификаты (Transact-SQL)

Контракт

GRANT, предоставление разрешения на компонент Service Broker (Transact-SQL)

База данных

GRANT, предоставление разрешений на базу данных (Transact-SQL)

Конечная точка

GRANT, предоставление разрешений на конечные точки (Transact-SQL)

Полнотекстовый каталог

GRANT, предоставление разрешений на полнотекстовый каталог (Transact-SQL)

Функция

GRANT, предоставление разрешений на объект (Transact-SQL)

Имя входа

GRANT, предоставление разрешений серверам-участникам (Transact-SQL)

Тип сообщений

GRANT, предоставление разрешения на компонент Service Broker (Transact-SQL)

Объект

GRANT, предоставление разрешений на объект (Transact-SQL)

Очередь

GRANT, предоставление разрешений на объект (Transact-SQL)

Привязка удаленной службы

GRANT, предоставление разрешения на компонент Service Broker (Transact-SQL)

Роль

GRANT, предоставление разрешений на участника базы данных (Transact-SQL)

Маршрут

GRANT, предоставление разрешения на компонент Service Broker (Transact-SQL)

Схема

GRANT, предоставления разрешения на схему (Transact-SQL)

Сервер

GRANT, предоставление разрешений на сервер (Transact-SQL)

Служба

GRANT, предоставление разрешения на компонент Service Broker (Transact-SQL)

Хранимая процедура

GRANT, предоставление разрешений на объект (Transact-SQL)

Симметричный ключ

Разрешения GRANT на симметричный ключ (Transact-SQL)

Синоним

GRANT, предоставление разрешений на объект (Transact-SQL)

Системные объекты

GRANT, предоставление разрешения на системный объект (Transact-SQL)

Таблица

GRANT, предоставление разрешений на объект (Transact-SQL)

Тип

GRANT, предоставление разрешений на тип (Transact-SQL)

Пользователь

GRANT, предоставление разрешений на участника базы данных (Transact-SQL)

Представление

GRANT, предоставление разрешений на объект (Transact-SQL)

Коллекция XML-схем

GRANT, предоставление разрешения на коллекцию XML-схем (Transact-SQL)

См. также

Справочник

DENY (Transact-SQL)
REVOKE (Transact-SQL)
sp_addgroup (Transact-SQL)
sp_addlogin (Transact-SQL)
sp_adduser (Transact-SQL)
Хранимая процедура sp_changegroup (Transact-SQL)
sp_changedbowner (Transact-SQL)
sp_dropgroup (Transact-SQL)
sp_dropuser (Transact-SQL)
Хранимая процедура sp_helpgroup (Transact-SQL)
sp_helprotect (Transact-SQL)
sp_helpuser (Transact-SQL)

Справка и поддержка

Получение помощи по SQL Server 2005

Журнал изменений

Версия Журнал

12 декабря 2006 г.

Измененное содержимое
  • К описанию параметра ALL добавлено примечание о том, что он устарел и сохранен только для поддержки обратной совместимости.