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

Неявное отклонение доступа

Помимо уже рассмотренных операций предоставления и запрещения доступа, в системе безопасности MS SQL Server 2000 используется неявное отклонение доступа (revoke access). Неявное отклонение подобно запрещению доступа с тем отличием, что оно действует только на том уровне, на котором определено. Если пользователю на определенном уровне неявно отклонен доступ, он все же может получить его на другом уровне иерархии через членство в роли, имеющей право просмотра. По умолчанию доступ пользователя к данным неявно отклонен. Это можно рассматривать как «среднее состояние» между предоставлением и запрещением доступа или как отсутствие каких-либо разрешений.

Используйте команду REVOKE для неявного отклонения доступа к объектам базы данных:

REVOKE [GRANT OPTION FOR]

{ ALL [PRIVILEGES] | permission[,...n] }

{

[(column[,...n])] ON {table|view}

| ON {table|view} [(column[,...n])]

| ON {stored_procedure | extended_procedure}

}

TO security_account[,...n]

[CASCADE]

[ AS { group | role } ]

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

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

FROM security_account[,...n]

Смысл параметров аналогичен параметрам команд GRANT и DENY. Параметр GRANT OPTION FOR используется, когда необходимо отозвать право, предоставляемое параметром WITH GRANT OPTION команды GRANT. Пользователь при этом сохраняет разрешение на доступ к объекту, но теряет возможность предоставлять это разрешение другим пользователям.

В качестве примера рассмотрим такую ситуацию. Пользователю Malari, который является участником роли Centaurs, предоставлены права на доступ к таблице Materials. Если при помощи команды REVOKE мы отклоняем доступ к таблице для роли Centaurs, пользователь Malari все равно сможет обращаться к данной таблице, поскольку права для него определены явно. И только когда мы применим команду REVOKE персонально для него, он потеряет право доступе к таблице.

Неявное отклонение доступа позволяет более гибко конфигурировать систему безопасности.

Конфликты доступа

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

При разрешении конфликтов доступа SQL Server руководствуется принципом, состоящим в том, что разрешение на предоставление доступа имеют самый низкий приоритет, а запрещение доступа — самый высокий. Это значит, что доступ к данным может быть получен только явным его предоставлением при отсутствии запрещения доступа на любом другом уровне иерархии системы безопасности. Если доступ явно не предоставлен, пользователь не сможет работать с данными.

Обзор средств Transact sql

В табл. 4 приведен список хранимых процедур и команд Transact SQL предназначенных для управления системой безопасности.

Табл. 3 Хранимые процедуры и команды Transact SQL, используемые для управления системой безопасности

Команда Transact SQL

Назначение

Sp_addapprole

Создать роль для приложения

Sp_addlogin

Создать новую учетную запись SQL Server

Sp_addrole

Создать новую роль в базе данных

Sp_addrolemember

Добавить члена в роль базы данных

Sp_addsrvrolemember

Добавить нового члена в фиксированную роль сервера

Sp_approlepassword

Изменить пароль для роли приложения

Sp_defaultdb

Изменить базу данных по умолчанию для учетной записи

Sp_defaultlanguage

Изменить язык по умолчанию для учетной записи

Sp_denylogin

Запретить доступ пользователю или группе Windows NT

Sp_dropapprole

Удалить роль приложения

Sp_droplinkedserver

Удалить отображение учетной записи с другого сервера

Sp_droplogin

Удалить учетную запись SQL Server

Sp_droprole

Удалить роль базы данных

Sp_droprolemember

Удалить пользователя из роли базы данных

Sp_dropsrvrolemember

Удалить члена из роли сервера

Sp_dropuser

Удалить пользователя из базы данных

Sp_grantdbaccess

Разрешить доступ к базе данных учетной записи пользователям и группам Windows NT

Sp_grantlogin

Разрешить доступ к SQL Server

Sp_helpdbfixedrole

Выдать список фиксированных ролей в базе данных

Sp_helplogins

Просмотреть информацию об учетной записи

Sp_helpntgroup

Просмотреть информацию о группах Windows NT, которым предоставлен доступ к SQL Server

Sp_helprole

Просмотреть роли, определенные для базы данных

Sp_helpsrvrole

Выдать список фиксированных ролей сервера

Sp_helpsrvrolemember

Выдать информацию о члене роли сервера

Sp_helpuser

Просмотреть информацию о пользователе

Sp_password

Изменить пароль учетной записи SQL Server

Sp_revokelogin

Удалить пользователя или группу Windows NT

Sp_setapprole

Инициализировать роль приложения

GRANT

Предоставить доступ

DENY

Запретить доступ

REVOKE

Неявно отклонить доступ

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