Опубликован: 11.12.2006 | Доступ: свободный | Студентов: 5820 / 381 | Оценка: 4.42 / 3.86 | Длительность: 57:15:00
Лекция 34:

Управление пользователями и системой безопасности

Администрирование полномочий доступа к базам данных

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

Полномочия на уровне сервера

Как уже говорилось, полномочия на уровне сервера присваиваются DBA и позволяют им выполнять задачи администрирования. Эти полномочия определяются по фиксированным ролям сервера. Пользовательским login-записям могут быть присвоены фиксированные роли на сервере, но эти роли нельзя модифицировать. (Роли на сервере описываются в разделе "Использование фиксированных ролей на сервере" далее.) К полномочиям на сервере относятся полномочия SHUTDOWN, CREATE DATABASE, BACKUP DATABASE и CHECKPOINT. Полномочия на сервере используются только для авторизации DBA, чтобы они могли выполнять административные задачи; их не нужно модифицировать или предоставлять отдельным пользователям.

Полномочия на уровне объектов базы данных

Полномочия на уровне объектов базы данных – это класс полномочий, которые предоставляются для доступа к объектам базы данных. Полномочия доступа к объектам необходимы для доступа к таблице или представлению с помощью таких операторов, как SELECT, INSERT, UPDATE и DELETE. Полномочия доступа к объектам также требуются для использования оператора EXECUTE, который применяется для запуска хранимых процедур. Для присваивания полномочий доступа к объектам используются Enterprise Manager и операторы T-SQL.

Использование Enterprise Manager для присваивания полномочий доступа к объектам

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

  1. Раскройте группу серверов, раскройте сервер, раскройте базу данных, для которой хотите присвоить полномочия, и щелкните на папке Users (Пользователи). В правой панели появится список пользователей. Щелкните правой кнопкой мыши на имени пользователя и выберите из контекстного меню пункт Properties, чтобы появилось диалоговое окно Database User Properties (рис. 34.14).
    Окно Database User Properties

    Рис. 34.14. Окно Database User Properties
  2. Щелкните на кнопке Permissions (Полномочия), чтобы появилось окно Database User Properties (рис. 34.15).
    Вкладка Permissions окна Database User Properties

    Рис. 34.15. Вкладка Permissions окна Database User Properties
    Для вызова этой вкладки вы можете также щелкнуть правой кнопкой мыши на имени данного пользователя, указать в контекстном меню пункт All Tasks (Все задачи) и выбрать пункт Manage Permissions (Управление полномочиями). В этой вкладке вы можете управлять полномочиями, присваиваемыми данному пользователю. Чтобы присвоить этому пользователю полномочия доступа к объектам внутри базы данных, установите нужные флажки в колонках SELECT, INSERT, UPDATE, DELETE, EXEC и DRI окна списка. ("DRI" – сокращение от "declarative referential integrity" – описательная целостность на уровне ссылок.) В колонке Object (Объект) содержится список объектов. Вы можете использовать кнопки выбора вверху этого окна, чтобы включить в список все объекты (первая кнопка выбора) или только те объекты, к которым уже имеет полномочия доступа данный пользователь.
Использование T-SQL для присваивания полномочий доступа к объектам

Чтобы использовать T-SQL для присваивания какому-либо пользователю полномочий доступа к объектам, вы должны выполнить оператор GRANT. Этот оператор имеет следующий синтаксис:

GRANT  { ALL | полномочия }
       	[ колонка ON {таблица | представление} ] |
       	[ ON таблица(колонка) ] |
       	[ ON представление(колонка) ] |
       	[ ON { хранимая_процедура | расширенная_процедура } ]
TO учетная_запись_безопасности
       	[ WITH GRANT OPTION ]
       	[ AS { группа | роль } ]

Параметр учетная_запись_безопасности может быть представлен одним из следующих типов учетных записей:

  • Пользователь SQL Server.
  • Роль SQL Server.
  • Пользователь Windows NT или Windows 2000.
  • Группа Windows NT или Windows 2000.

Использование ключевого слова GRANT OPTION позволяет пользователю или пользователям, указанным в данном операторе, предоставлять указанный тип полномочий другим пользователям. Это может оказаться полезным, если вы предоставляете полномочия другим DBA. Однако GRANT OPTION следует использовать с осторожностью.

Необязательный параметр AS указывает, кто имеет право на выполнение этого оператора GRANT. Право на выполнение оператора GRANT должно быть конкретно предоставлено пользователю или роли.

Ниже приводится пример использования оператора GRANT:

GRANT  SELECT, INSERT, UPDATE
ON     	Customers 
TO     	MaryW 
WITH   GRANT OPTION 
AS     	Accounting

Параметр AS Accounting используется потому, что роль Accounting имеет полномочия на предоставление полномочий по таблице Customers. Ключевое слово GRANT OPTION позволяет пользователю MaryW предоставлять указанные полномочия другим пользователям.

Дополнительная информация. Для просмотра списка полномочий, которые можно указывать в операторе GRANT, найдите текст "GRANT, described (GRANT)" в индексе Books Online.
Использование T-SQL для отзыва полномочий по объектам

Для отзыва полномочий какого-либо пользователя по объектам вы можете использовать оператор T-SQL REVOKE. Оператор REVOKE имеет следующий синтаксис:

REVOKE  [ GRANT OPTION FOR ] 
        	{ ALL  [ PRIVILEGES ] | полномочия }
              			[ колонка ON {таблица | представление} ] |
              			[ ON таблица(колонка) ] |
              			[ ON представление(колонка) ] |
              			[ ON { хранимая_процедура | расширенная_процедура } ]
        	{ TO     | FROM } учетная_запись_безопасности
              			[ CASCADE ]
              			[ AS { группа | роль } ]

Параметр учетная_запись_безопасности может быть представлен одним из следующих типов учетных записей:

  1. Пользователь SQL Server.
  2. Роль SQL Server.
  3. Пользователь Windows NT или Windows 2000.
  4. Группа Windows NT или Windows 2000.

Ключевое слово GRANT OPTION FOR позволяет вам отзывать полномочия, которые вы предоставили с помощью ключевого слова GRANT OPTION, а также отзывать указанные здесь полномочия. Необязательный параметр AS указывает, кто имеет право на выполнение этого оператора REVOKE.

Ниже приводится пример использования оператора REVOKE:

REVOKE  	ALL
ON      		Customers 
FROM    	MaryW

Оператор REVOKE ALL выполнит отзыв всех полномочий, которые имеет пользователь MaryW по таблице Customers.

Дополнительная информация. Для просмотра списка полномочий, которые можно указывать в операторе REVOKE, найдите текст "REVOKE, described (REVOKE)" в индексе Books Online.