Программирование >>  Реализация баз данных 

1 ... 132 133 134 [ 135 ] 136 137 138 ... 162


кнопка Columns, что позволяет назначить разрешения SELECT и UPDATE для отдельных столбцов. Чтобы назначить разрешения на исполнение операторов CREATE и BACKUP, щелкните БД в консоли правой кнопкой и выберите из контекстного меню элемент Properties. В выводимом диалоговом окне щелкните вкладку

Permissions На ней появляются все учетные имена, обладающие привилегиями для доступа, с указанием данных сип.! на исполнение SQL-выражений.

Состояние любого разрешения, назначаемого посредством Enterprise Manager, отмечено флажком. Он может быть установлен, снят или помечен знаком X . Если разрешение предоставлено, флажок установлен, если не предоставлено или то флажок также

снят. Если в предоставлении разрещения отказано (Deny), то соответствующий флажок отмечен i\t Х-., Отказ подменяет любое разрешение, предоставленное иным путем,

Настройка разрешений с помощью Transact-SQL

Операторы GRANT, REVOKE и DENY используются для управления щью Query Analyzer или утилиты командной строки тип osql разрешениями на работу с объектом и исполнение SQL-выражений.

Оператор GRANT

При использовании оператора GRANT необходимо указать разрешение (или разрешения),

которые нужно назначить, а также имя, для которого это При использовании

ключевого слова ALL назначаются все допустимые разрешения на работу с объектом и исполнение SQL-операторов. При па шачснип разрешений на работу с объектом необходимо также указать, к какому объекту они относятся. Это не требуется для разрешений на исполнение поскольку они относятся к БД в а не к какому-либо

из ее объектов. Иногда применяют кип. ij.) ,,1ию WITH GRANT OPTION, чтобы разрешить учетному имени предоставлять это разрешение другим учетным именам. Кдюченое слово AS позволяет указать учетную запись (группу или роль) вшеИ БД, об.дадаю[пей на исполнение оператора GRANT. Если разрешение на работу с объектом дается группе или роли, то необходимо задать группу или роль, уполномоченную назначать разрешения для с помощью ключевого слова AS. Прежде чем разрешить использование оператора GRANT, система безопасности SQL Server проверяет членство в указанной группе или роли.

Вот основные конструкции оператора GRANT для назначения разрешений на исполнение SQL-операторов:

GRANT ALL разрешение(я) на испоянение301-операторов

ТО имя учетной записи(ей)

Далее показаны основные конструкции оператора GRANT для назначения разрешеНИИ на работу с объектами:

GRANT ALL рюрешениф) иааботу собъектами (столбец(цы)) ON аблицы имя представления ON

ON ойпро цедуры \ имяпользовательскойфупкции ТО имячетной записи(ей} WITH GRANT OPTION AS

Ключевое слово ON, задающее аргумент ой процедуры, включает расширенные хранимые процедуры пшния (на исполнение SQL-операторов и на работу с объектами) отделяются друг от друга запятыми, как и учетные имена:



400 Система безопасное SQ гтег 2000 Глава 13

USE pubs

GHANT CREATE TABLE, create WFW, backup database, backup log TO userOI, [BUILTIN\power users]

Пользователь и группа Power Users получают четыре разрешения исполне-

ни раторов. Имя группы Power Users указано в квадратнтх скобках, поскольку в

нем присутствуют обратный слеш и пробел.

Если нужно все допустимые разрешения на работу с объектами и испол-

нение SQL-операторов з>йтесь ключевым словом ALL, как показано далее:

USE pubs

grant all . V . ,

TO public

Рол blic даются все возможные разрешения на исполнение SQL-операторов. В результате все авторизованные пользователи получат все разрешения на исполнение операторов, 1н.шол11ЯЮ1!1Нх любые действия над БД. Такое действие нетипично, но этот пример демонстрирует, как открыть авторизованных пользователей полный доступ к БД. Если определить для специального учетного имени Guest для БД Pubs, то все

тифицированные пользователи я которых не определено соответствие БД Pubs, также получат полный набор разрешений на исполнение SQL-операторов, поскольку учетное имя Guest является членом роли

Можно определять шения для всей таблицы и ее отдельные мбцов одновременно. Таким образом, последнее из заданных разрешений может быть назначено столбцу. Необходимо убедиться, чтобы последнее разрешение на работу с объектом было допустимым разрешением для столбца (SELECT или UPDATE), как показано ниже:

USE pubs

GRANT insert, DELETE, UPDATE, SELECT

(orcl date, ord num, qty) ON dbo.sales TO userOI

Пользователь UserOI получает разрешения INSERT, DEEETE и UPDATE для таблицы dbo.sales и разрешение SEEECT для столбцов Ord Date, Ord Niim и Qty. Обратите внимание, что к имени таблицы добавлено имя ее владельца, dbo. Эта мера не обязательна, но она полезна, если в БД есть еше таблицы с же именами, но принадлежащие другим владельцами. Следующий пример показывает, как назначить разрешения UPDATE и SELECT только для определенных столбцов: . ,

grant update. select

ON dbo.sales (ord date, ord num, qty) TO test

Для хранимой процедуры действительно лишь одно из разрешений на работу с объектом - EXECUTE. пример демонстрирует назначение разрешения EXECUTE группе Power Users для расширенной хранимой процедуры xp cmdshell; USE master 3RANT EXEC

ONxp cir,dshell , -

TO [BOILTINXpower users]



Эта процедура расположена в БД Master, поэтому эту БД необходимо сделать текущей, Можно предоставлять, снимать или отказывать в предоставлении разрешения лишь для объектов текущей БД.

Примечание Более подробно об этом рассказано в SQL Server Books Online. Оператор Revoke

Оператор REVOKE используется для снятия разрешений, ранее предоставленных учетному имени. Формат оператора аналогичен формату оператора GRANT за некоторыми исключениями чевое слово ТО оператора GRANT заменено на ключевое слово FROM при снятии разрешений на исполнение SQL-операторов, а при снятии разрешений на работу с объектами используются как ключевое слово ТО, так и FROM. Синтаксис снятия разрешений на работу с объектами включает необязательные конструкции CASCADE и GRANT OPTION FOR. Конструкция GRANT OPTION FOR используется для снятия разрешения WITH GRANT OPTION, назначенного учетному имени. Ключевое слоао CASCADE служит для снятия разрешений с заданного учетного имени вместе со всеми разрешениями, предоставленными от имени этого учетного имени любым другим учетным именам. Для снятия состояния разрешения Grant, назначенного заданным учетным именем другим учетным именам, следует использовать обе конструкции - GRANT OPTION FOR и CASCADE. Следующий пример снимает разрешение EXEC с пользователя и всех других пользователей, которым он предоставил разрешение EXEC:

USE Tiaster REVOKE EXEC ONxp crndshell IFROM userCI CASCADE

Исполните следующую команду для просмотра текущих разрешений для расширенной

хранимой процедуры:

EXEC sp t-ielprotect xp cincishell

Оператор DENY

Оператор DENY налагает явный запрет на предоставление учетным именам некоторых разрешеии!!. а также на наследование этих разрешений посредством членства в группе или роли. Формат оператора DENY аналогичен формату операторов GRANT и REVOKE.

Подобно оператору GRANT, объект действия оператора задается ключевым словом ТО. Синтаксис оператора DENY включает ключевое слово CASCADE, позволяющее налагать явный запрет не только на разрешения, полученные данным учетным именем, но и на все разрешения, предоставленные данным учетным именем другим учетным именам. Следующий код запрещает исполнение SQL-выражений для идентификатора SQL Server и группы:

USE pubs

DENY CREATE TABLE, CREATE VIEW. BACKUP DATABASE, BACKUP LOG TO userd, rRnTI.TIN\pOwei- users]

Управление ролями

Вне SQL Server можно управлять членством в группах, а в пределах SQL Server - ч.лен-ством в ролях. Роли создаются в Enterprise Manager или с по\юшью Transact-SQL. Предопределенные роли не могут быть членами других ролей. Например, нельзя сделать



1 ... 132 133 134 [ 135 ] 136 137 138 ... 162

© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика