Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
102
Добавлен:
17.02.2016
Размер:
1.44 Mб
Скачать

Примечание

Будьте осторожны при использовании параметра WITH GRANT OPTION, поскольку при этом вы теряете контроль над предоставлением прав на доступ другим пользователям. Лучше всего ограничить круг людей, обладающих возможностью управлять назначением прав.

Единственное право доступа, которое может быть предоставлено для хранимой процедуры,— это право на ее выполнение (EXECUTE). Естественно, кроме этого владелец хранимой процедуры может просматривать и изменять ее код.

Для функции можно выдать право на ее выполнение, а, кроме того, можно выдать право REFERENCES, что обеспечит возможность связывания функции c объектами, на которые ссылается функция. Такое связывание позволяет закрутить внесение изменений в структуру объектов, которые могли бы привести к нарушению работы функции.

Чтобы предоставить право на выполнение хранимой процедуры, можно использовать Enterprise Manager. Для этого выберите в левой панели Enterprise Manager нужную базу данных и откройте в ней папку Stored Procedure. В правой части Enterprise Manager будет отображен список хранимых процедур, уже созданных в базе данных. Управление правами доступа можно осуществлять в окне Object Properties (свойства объектов), показанном на рис. 19. Вызвать это окно можно либо с помощью кнопки Permissions (права) в окне свойств хранимой процедуры, либо выбрав в контекстном меню хранимой процедуры пункт All Tasks -> Manage Permissions (все задачи -> управление правами).

Чтобы разрешить пользователю выполнять хранимую процедуру, нужно установить напротив его имени галочку в поле ЕХЕС. Чтобы запретить доступ, нужно поставить крестик. Отсутствие какого-либо значка подразумевает неявное отклонение доступа. Более подробно о правах доступа будет рассказано далее.

Рис. 19 Окно Object Properties

Управление правами доступа к функциям осуществляется аналогично.

Другой способ управления правами доступа заключается в предоставлении прав конкретному пользователю с помощью окна прав доступа пользователя. Для этого в окне Enterprise Manager выберите необходимую базу данных, а затем папку Users. Щелкните левой кнопкой мыши на выбранном пользователе. В появившемся окне щелкните на кнопке Permissions (права) и укажите необходимые права.

Права на исполнение команд Transact sql

Этот класс прав контролирует возможность создания объектов в базе данных, создания самой базы данных и выполнения процедуры резервного копирования. Например, если пользователю необходимо создать представление, администратор базы данных должен предоставить пользователю право на выполнение команды CREATE VIEW.

Права для команд приведены в табл. 3.

Табл. 3 Права для команд Transact SQL

КОМАНДА TRANSACT SQL

НАЗНАЧЕНИЕ

CREATE DATABASE

Создание баз данных, разрешение применяется к самой команде

CREATE TABLE

Создание таблиц

CREATE VIEW

Создание представлений

CREATE DEFAULT

Создание умолчаний

CREATE RULE

Создание правил

CREATE PROCEDURE

Создание хранимых процедур

BACKUP DATABASE

Резервное копирование базы данных

BACKUP LOG

Резервное копирование журнала транзакций

AL

С помощью этого права предоставляются все вышеперечисленные права

Членам фиксированной роли сервера sysadmin и фиксированной роли базы данных db _ owner автоматически имеют право ALL. Члены других фиксированных ролей имеют набор прав, соответствующих функциям роли.

Можно использовать следующую команду для предоставления права выполнения команд Transact SQL:

GRANT { ALL | statement[,...n] }

TO security_account[,...n]

Через параметр statement можно предоставлять разрешения на выполнение Transact SQL, которые перечислены в табл. 3.

Соседние файлы в папке Методички ИСИС 230401