Изучение средств идентификации, аутентификации и управления доступом в СУБД SQL Server 2005 (Лабораторная работа № 7), страница 6

Однако синтаксис SQL-операторов в этой части допускает использование имен объектов без явного указания БД и схемы. Если имя базы данных не указывается, СУБД «понимает», что объект находится в текущей (для данного соединения) БД. Если не указана схема, то обращение будет производиться к объекту, расположенному в умалчиваемой схеме пользователя, выполнившего запрос. И если предположить, что пользователь ivanpetrov, по умолчанию владеющий схемой ivanpetrov, для своего соединения выбрал БД myDatabase в качестве текущей, то ему удастся выполнить запрос к таблице aTable, указывая сокращенное, а не полное имя:

select * from aTable

Но это не удастся сделать пользователю, чья схема по умолчанию именуется borisborisov; такой пользователь обязан указать, по меньшей мере, имя схемы (ivanpetrov), где находится таблица aTable.

Схема по умолчанию не всегда носит имя пользователя. Также не требуется, чтобы каждому вновь создаваемому пользователю отводилась новая схема по умолчанию: можно выбрать в качестве таковой одну из существующих схем.

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

Создание пользовательской роли в Management Studio в окне Database Role – New. Вызывается оно через контекстное меню папки <имя_БД>\Security\Roles\Database Roles (команда New Database Role). При создании роли указывается ее имя и, возможно, владелец (по умолчанию владельцем становится пользователь, создающий данную роль). Так же, как и обычный пользователь, роль БД может выступать в качестве владельца схем, которые указываются в списке Schemas owned by this role. Затем в списке Members of this role перечисляются пользователи, включаемые в эту роль.

Для задания разрешений и запрещений доступа в окне свойств пользователя и роли предусмотрена вкладка Securables. На ней расположены две таблицы: Securables и Explicit permissions. Для того чтобы заполнить первую таблицу, достаточно:

·  нажать кнопку Add;

·  в появившемся окне выбрать тип объектов доступа – например, All objects belonging to the schema (все объекты, принадлежащие схеме) с указанием имени схемы в выпадающем списке Schema name.

Список объектов доступа формируется и отображается в таблице. После этого можно поочередно выделять элементы этого списка, а в таблице Explicit permissions будут отображаться соответствующие разрешения, выданные текущему пользователю или текущей роли на данный объект. Каждая строка таблицы соответствует категории доступа (Insert, Select, Alter и т. п.). Если требуется установить либо снять разрешение на выполнение пользователем того или иного действия, то для соответствующей категории достаточно поставить «галочку» в одном из полей строки. Поле Grant соответствует разрешению, Deny – запрещению. Кроме того, существует поле With grant, означающее, что пользователь (или роль) не просто получает разрешение, но также наделяется правом передачи этого разрешения другим пользователям (ролям) БД. Отсутствие «галочек» соответствует неявному отклонению доступа.

3. Программа работы

1. Создание учетных записей на сервере SQL Server, а также пользователей и пользовательских ролей в БД.

2. Назначение прав доступа к объектам БД для каждой пользовательской роли.

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

1. Изучить теоретическую часть.

2. Определить группы пользователей для своей БД, создать пользовательские роли.

3. Назначить для каждой роли соответствующие права доступа к объектам БД.

4. В присутствии преподавателя, пользуясь правами администратора сервера, создать учетные записи для будущих пользователей.

5. Создать пользователей БД, привязанных к учетным записям.

6. Назначить каждому пользователю соответствующую пользовательскую роль.

7. В присутствии преподавателя выполнить следующие действия:

·  соединение с сервером;

·  осуществление доступа к различным объектам БД при помощи запросов, вызовов хранимых процедур.

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

5. Литература

1. Мамаев Е. В. Microsoft ® SQL Server 2000. – СПб.: БХВ-Петербург, 2004. – 1280 с.: ил.

2. Михеев Р. Н. MS SQL Server 2005 для администраторов. – СПб.: БХВ-Петербург, 2006. – 544 с.: ил.