В табл. 5 дано описание некоторых SQL-операторов и хранимых процедур, используемых для управления пользователями и ролями, а в табл. 6 – SQL-операторы, управляющие правами доступа пользователей. Хранимые процедуры специфичны для Transact-SQL, в то время как операторы из табл. 6 встречаются во многих других диалектах SQL.
Таблица 5 – Хранимые процедуры по управлению пользователями и ролями БД
Имя оператора или процедуры |
Описание |
Оператор create user |
Создает пользователя и отображает его на учетную запись |
Оператор alter user |
Изменяет свойства пользователя |
Оператор drop user |
Удаляет пользователя |
Оператор create role |
Создает пользовательскую роль в БД |
Оператор alter role |
Изменяет настройки пользовательской роли БД |
Оператор drop role |
Удаляет пользовательскую роль |
Процедура sp_addrolemember |
Включает пользователя в фиксированную или пользовательскую роль БД |
Процедура sp_helprolemember |
Отображает список членов фиксированной или пользовательской роли БД |
Процедура sp_droprolemember |
Исключает пользователя из фиксированной или пользовательской роли БД |
Таблица 6 – SQL-операторы управления правами доступа
Оператор |
Описание |
grant |
Предоставляет права доступа пользователей и пользовательских ролей к объекту БД или право на выполнение команд Transact-SQL |
deny |
Запрещает доступ к объекту БД или выполнение команды Transact-SQL |
revoke |
Устанавливает неявное отклонение доступа к объекту БД для пользователя |
Команды grant, deny и revoke имеют схожий синтаксис, который обязательно включает список разрешений (категорий доступа, см. табл. 4), объект БД и перечень пользователей и пользовательских ролей, для которых устанавливаются соответствующие права. Если пользователю (роли) предоставляется право выполнения команды Transact-SQL, синтаксис операторов grant, deny и revoke упрощается: в этом случае указывается перечень команд (см. табл. 4) и список пользователей (ролей).
Информацию о правах доступа можно получить при помощи вызова системной хранимой процедуры sp_helprotect.
Использование SQL Server Management Studio
Если выбрать в окне Object Explorer любую БД, то можно увидеть, что различные виды ее объектов группируются в отдельных папках. Пользователи и роли БД сгруппированы, соответственно, в папках Security\Users и Security\Roles.
Создание нового пользователя выполняется через контекстное меню папки Security\Users. При выборе опции New User открывается диалоговое окно Database User – New. В нем можно выполнить все необходимые действия, а именно:
· задать имя пользователя в поле User name;
· в раскрывающемся списке Login name выбрать имя учетной записи;
· задать пользователю схему по умолчанию, а также указать все схемы, владельцем которых данный пользователь будет являться;
· включить пользователя в одну или несколько ролей БД, установив соответствующие флажки.
Необходимо более подробно остановиться на третьем пункте. В описании лабораторной работы №2 говорилось о том, что схема (schema) в терминах SQL Server – это своего рода контейнер для объектов БД или, иначе говоря, это набор объектов БД, которые объединены общим пространством имен. Имя схемы включается в полное имя объекта БД. Что касается связи схем и пользователей, то, во-первых, для каждого пользователя определяется схема, владельцем которой он является по умолчанию. Имя такой схемы часто совпадает с именем пользователя, что весьма удобно: при таком подходе каждый пользователь имеет «свою» схему в БД.
В свете вышесказанного имеет смысл еще раз обратиться к правилам именования объектов БД в СУБД Microsoft SQL Server. Можно было бы использовать полные имена объектов в SQL-запросов. Тогда запросы наподобие следующего:
select * from aTable
были бы недопустимы, так как требовалось бы указывать и БД, и схему, в которой находится таблица. Например, таким образом:
select * from myDatabase.ivanpetrov.aTable
Здесь myDatabase – имя БД, а ivanpetrov – имя схемы.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.