Оператор GRANT

Оценить
(0 голоса)

Оператор grant предоставляет полномочия к объектам безопасности. Синтаксис оператора grant:

grant {all [privileges]} I permission_list [on [class::]  securable] to principal_list [with grant option] [as principal]

Предложение all указывает, что все полномочия, применимые к данному объекту безопасности, будут назначены указанному принципалу. (Список объектов безопасности см. в документации Books Online.) Параметр permission_list задает операторы или объекты (разделенные запятыми), которым предоставляются полномочия; class задает или класс безопасности, или имя объекта безопасности, которому предоставляются полномочия, on securabie задает объект безопасности, которому предоставляются полномочия (см. пример 12.15). principai_iist задает список всех учетных записей (разделенных запятыми), которым предоставляются полномочия, principal и компоненты principai_iist могут быть учетными записями пользователя Windows, логинами или учетными записями, отображенными в сертификате, логинами, отображенными в асимметричном ключе, пользователем базы данных, ролью базы данных или ролью приложения.

В табл. 12.3 содержится список и описание всех полномочий, а также список объектов безопасности, им соответствующих.

Оператор GRANT

 

Оператор GRANT

 

Следующие примеры демонстрируют использование оператора grant. Вначале пример 12.11 демонстрирует использование полномочия create.

 

Оператор GRANT

 

В примере 12.11 пользователи с именами peter и шагу могут выполнять операторы Transact-SQL create table и create procedure. (Как вы можете видеть в этом примере, оператор grant с полномочием create не содержит опцию on.)

В примере 12.12 пользователю тагу предоставляется возможность создавать определенные пользователем функции в базе данных sample.

 

Оператор GRANT

 

Пример 12.13 показывает использование полномочия select в операторе grant.

 

Оператор GRANT

 

В примере 12.13 пользователи с именами peter и тагу могут читать строки из таблицы employee.

Пример 12.14 показывает использование полномочия update в операторе grant.

 

Оператор GRANT

 

В примере 12.14 пользователь peter может изменять два столбца таблицы works_on: emp_no и enter_date.

Пример 12.15 показывает использование полномочия view definition.

 

Оператор GRANT

 

В примере 12.15 показаны два оператора grant для полномочий view definition. Первый позволяет пользователю peter просматривать метаданные таблицы employee базы данных sample, (object - один из объектов безопасности базы данных, вы можете использовать это предложение для предоставления полномочий указанным объектам, таким как таблицы, представления и хранимые процедуры.) Поскольку объекты безопасности имеют иерархическую структуру, вы можете использовать объект безопасности «высшего» уровня, чтобы расширить полномочия view definition (или любой другой базы). Второй оператор в примере 12.15 предоставляет пользователю peter полномочия доступа к метаданным всех объектов схемы dbo базы данных sample.

В примере 12.16 показано использование полномочия control.

 

Оператор GRANT

 

В примере 12.16 пользователь peter имеет все определенные полномочия к объектам безопасности (в данном случае к объектам базы данных sample).

Принципал, которому были предоставлены полномочия control, также неявно получает возможность предоставлять полномочия и другим участникам безопасности, иными словами, полномочие control включает предложение with grant option (см. пример 12.17). Полномочие control является полномочием наивысшего уровня в отношении отдельных объектов безопасности базы данных. По этой причине control для отдельной области видимости неявно включает control для всех объектов безопасности, находящихся ниже этой области видимости. Поэтому полномочие control для пользователя peter к базе данных sample предполагает все полномочия к этой базе данных, все полномочия ко всем сборкам этой базы данных, все полномочия ко всем схемам базы данных sample и все полномочия к объектам базы данных sample.

По умолчанию если пользователь А предоставляет полномочия пользователю В, то пользователь В может использовать эти полномочия только для выполнения операторов Transact-SQL, описанных в операторе grant. Предложение with grant option дает пользователю В дополнительную возможность предоставлять эти привилегии другим пользователям (пример 12.17).

 

Оператор GRANT

 

В примере 12.17 пользователь шагу может использовать оператор select для выборки строк из таблицы workson, а также предоставлять эту привилегию другим пользователям базы данных sample.


Оператор DENY
Оператор REVOKE
Управление полномочиями с использованием Management Studio
Отслеживание изменений
Безопасность данных и представления

Добавить комментарий


Защитный код
Обновить

© 2021 serversql.ru. Все права защищены.