Управление системой пользователей.

advertisement
Лабораторна робота 3
з дисципліни «Адміністрування інформаційних систем»
для спеціальності 6.080201 - «інформатика»
Тема роботи: Розробка системи користувачів системи баз даних.
Ознайомитися із методикою розробки системи користувачів та набути практичних
навичок з розподілення привілеїв між групами користувачів.
Час: 2 години
Завдання:
Використовуючи редактор запитів SQL Borland SQL Explorer, спланувати та реалізувати системи груп
користувачів, та відповідну системи розподілення привілеїв. Протестувати доступ до даних від імені різних
користувачів.
Методика виконання:
1. Налагодити, щоб робочий простір ADIS мав Northwind як базу даних за замовчанням.
2. Протестувати за допомогою програми SQL Explorer доступ до робочого простору ADIS на сервері kitserver.
3. Спланувати права доступу для трьох груп користувачів: групу власників/адміністраторів бази даних,
групу адміністраторів безпеки бази даних, групу користувачів бази даних.
4. Для груп власників/адміністраторів БД та адміністраторів безпеки БД записати виклики вбудованих
системних процедур, що зберігаються на сервері.
5. Для групи користувачів БД записати речення SQL декларативного розподілу привілеїв.
6. Використовуючи SQL Explorer, виконати всі запити на створення системи користувачів, у робочому
просторі ADIS.
7. Перевірити дію обмежень доступу, заходячи під різними іменами користувачів, і намагаючись виконати
дії, що заборонені для таких користувачів.
Мета роботи:
Необхідне обладнання та матеріали
1.
2.
3.
Комп’ютер із встановленим на ньому додатком Borland SQL Explorer.
Комп’ютер із встановленою на ньому СУБД MS SQL Server версії 7.0/2000/2003, та з встановленою
учбовою базою Northwind.
СУБД MS SQL Server повинна мати запис про користувача user (пароль-user) із привілегіями
db_owner для усіх об’єктів у робочому просторі ADIS.
Теоретические сведения:
1. Работа с Borland SQL Explorer.
1.
2.
Настроить ODBC DSN sk4 на сервере kit-server.
1. Открыть Панель Управления главного меню MS Windows.
2. Открыть программу «Источники данных ODBC» (или BDE Administrator/Object/ODBC
Administrator).
3. На вкладке User DSN добавить новый DSN (Data Source Name):
1. Нажать кнопку “Add”
2. Для MS SQL Server выбрать драйвер SQL Server и нажать кнопку “Next”.
3. Задать имя источника (предварительно узнать о функционировании рабочего
пространства с таким именем на SQL-сервері)– sk4, задать (необязательно)
описание источника данных и задать имя SQL –сервера, к которому нужно
подключиться – kit-server. Нажать кнопку “Next”.
4. Переключить аутентификацию пользователей на “SQL Server Authentication”. В
поле ввода имени пользователя ввести user, в поле ввода пароля ввести user.
Нажать кнопку “Next”.
5. Установить имя sk4 как default database. Нажать кнопку “Next”.
6. Ознакомиться с поддержкой национальных единиц измерения и языком
сообщений. Нажать кнопку “Finish”.
7. Оттестировать новый источник данных.
8. В случае возникновения ошибок обратиться к преподавателю.
4. Закрыть программу ODBC Administrator.
Оттестировать с помощью SQL Explorer доступ к рабочему пространству sk4 на сервере kit-server.
1. Открыть SQL Explorer.
2. Найти DSN sk4 и открыть его. Ввести имя и пароль.
3.
При нормальном функционировании SQL-сервера в окне SQL Explorer появится список
таблиц в рабочем пространстве sk4 на сервере kit-server.
2. Система безопасности СУБД
Система безопасности СУБД основывается на таких понятиях как учетная запись, роль, группа,
пользователь.
Каждый пользователь проходит два этапа проверки системы безопасности при попытке доступа к данным:
- Этап 1 – аутентификация,
- Этап 2 – получение доступа к данным
Первый этап относится к уровню работы всего сервера СУБД. На первом этапе пользователь
идентифицирует себя с помощью логического имени (login) и пароля (password).
Логическое имя и пароль хранятся на сервере СУБД в виде учетной записи (account).
Если данные были введены правильно, то считается, что процедура аутентификации пройдена, и данный
сервер СУБД разрешает попытку доступа к конкретной базе данных.
Однако сама по себе аутентификация не дает пользователю права доступа к каким бы то ни было данным.
Для получения доступа к данным необходимо, чтобы учетной записи пользователя соответствовал
некоторый пользователь базы данных (database user).
Пользователь базы данных – совокупность разрешений и запретов на работу с данными в
конкретной базе данных.
На втором этапе учетная запись пользователя отображается в пользователя базы данных, и получает все
привилегии, соответствующие этому пользователю базы данных. Второй этап задействует систему
безопасности конкретной базы данных, а не всего сервера СУБД.
В разных базах данных одной и той же учетной записи могут соответствовать одинаковые или разные имена
пользователя базы данных с разными правами доступа.
В том случае, когда учетная запись пользователя не отображается в пользователя базы данных, клиент все
же может получить доступ к базе данных под гостевым именем guest (если оно не запрещено
администратором БД). Гостевой вход позволяет минимальный доступ к данным только в режиме чтения.
Пользователи баз данных могут объединяться в роли (иногда – группы) для упрощения управления
системой безопасности.
Роли базы данных объединяют нескольких пользователей в административную единицу и
позволяют назначать права доступа к объектам базы данных для роли, наделяя этими правами всех
участников этой роли.
Различают пользовательские и встроенные роли. Встроенные роли создаются автоматически при установке
сервера СУБД (и не могут меняться). Различают встроенные роли уровня СУБД и уровня конкретной базы
данных. Так, например, в SQL Server 2000 есть такие роли сервера:
Встроенная роль сервера
Sysadmin
Serveradmin
Setupadmin
Securityadmin
Processadmin
Dbcreator
Diskadmin
Bukladmin
Назначение
Может выполнять любые действия в SQL Server
Выполняет конфигурирование и выключение
сервера
Управляет связанными серверами и процедурами,
автоматически запускающимися при запуске SQL
Server
Управляет учетными записями и правами на
создание базы данных, также может читать журнал
ошибок.
Управляет процессами, запущенными в SQL Server
Может создавать и модифицировать базы данных
Управляет файлами SQL Server
Может вставлять данные с использованием средств
массового копирования, не имея непосредственного
доступа в таблицам.
SQL Server 2000 поддерживает такие встроенные роли уровня базы данных:
Встроенная роль сервера
Db_owner
Db_accessadmin
Db_securityadmin
Db_ddladmin
Db_backupoperator
Db_datareader
Db_datawriter
Db_denydatareader
Db_denydatawriter
Назначение
Имеет все права в базе данных
Может добавлять или удалять пользователей
Управляет всеми разрешениями, объектами,
ролями и членами ролей
Может выполнять любые команды DDL, кроме
GRANT, DENY, REVOKE
Может выполнять команды DBCC, CHECKPOINT,
BACKUP
Может просматривать любые данные в любой
таблице
Может модифицировать любые данные в любой
таблице
Запрещается просматривать данные в любой
таблице
Запрещается модифицировать данные в любой
таблице
Кроме указанных ролей существует еще одна, неудаляемая роль – public. Участниками этой роли являются
все пользователи, имеющие доступ к базе данных. Нельзя явно указать участников этой роли, т.к. все
пользователи уже включены в нее.
2. Манипулирование элементами системы безопасности СУБД
2.1 Создание учетной записи
Для создания учетной записи в MS SQL Server 2000 используется системная хранимая процедура
sp_addlogin:
Ее формат таков:
sp_addlogin [@loginname=] login
[, [@passwd=] password]
[, [@defdb=] database]
[, [@deflanguage=] language]
[, [@sid=] SID]
[, [@encryptopt=] encryption_option]
где:
login
password
database
- логическое имя (login)
- пароль, который будет ассоциироваться с данной учетной записью
- база данных по умолчанию. Сразу же после установления соединения с сервером
пользователь будет работать в этой базе данных
language
- язык сообщений, выдаваемых сервером СУБД пользователю
SID
- двоичное число, которое будет являться идентификатором безопасности создаваемой
учетной записи. Используя эту возможность, можно создавать на разных серверах СУБД
создавать учетные записи с одинаковыми идентификаторами безопасности
encryption_option - определяет, будет ли шифроваться пароль данной учетной записи. По умолчанию
пароль шифруется.
Пример 1.
Добавить учетную запись teacher к базе данных sk3.
EXEC sp_addlogin teacher, 123, sk3
2.2 Создание пользователя базы данных
Для создания пользователя базы данных в MS SQL Server 2000 используется системная хранимая процедура
sp_grantdbaccess (ранее - sp_adduser):
Ее формат таков:
sp_grantdbaccess [@loginame=] login
[,[@name_in_db=] user [OUTPUT]]
Использование параметра OUTPUT заставляет хранимую процедуру поместить значение параметра user
созданного пользователя в некоторую переменную, для дальнейшей обработки.
Формат процедуры sp_adduser таков:
sp_adduser [@loginname=] login
[, [@name_in_db=] user]
[, [@grpname=] role]
где:
login
user
role
- логическое имя (login)которое необходимо связать с создаваемым пользователем
- имя создаваемого пользователя базы данных, с которым будет ассоциироваться данная
учетная запись. В базе данных не должно быть пользователя с таким именем.
- роль, в которую данный пользователь будет включен.
Пример 2.
Добавить нового пользователя teacher_adb к базе данных sk3.
EXEC sp_adduser teacher, teacher_adb, db_owner
2.3 Создание роли базы данных
Для создания роли базы данных в MS SQL Server 2000 используется системная хранимая процедура
sp_addrole:
Ее формат таков:
sp_addrole [@rolename=] role
[, [@ownername=] owner]
где:
role
owner
- имя создаваемой роли. Должно быть уникальным в пределах БД
- имя владельца роли. Владельцем может быть только роль или пользователь из этой базы
данных. По умолчанию, владелец - dbo
Эта процедура не может быть запущена как часть транзакции, определенной пользователем. Исполнять эту
процедуру могут только участники роли сервера sysadmin, либо участники ролей db_securityadmin,
db_owner.
Пример 3.
Добавление роли Managers.
EXEC sp_addrole Managers
2.4 Добавление пользователя в роль
Используется процедура sp_addrolemember вида:
sp_addrolemember [@rolename=] role,
[@membername=] security_account]
где:
role
- имя роли в которую добавляется пользователь.
security_account – пользователь базы данных, также – роль, что позволяет создавать иерархию ролей
Пример 4.
Добавление пользователя teacher_abd в роль Managers.
EXEC sp_addrolemember Managers, teacher_abd
2.5 Удаление ролей, учетных записей.
Перечислим в той очередности, которая разрешается в SQL Server 2000, процедуры удаления пользователей
и ролей из базы данных.
Процедура sp_droprolemember вычеркивает участника из роли:
sp_droprolemember [@rolename = ] role ,
[@membername = ] security_account
Процедура sp_droprole удаляет роль (в том случае, если предварительно из роли были удалены все
участники):
sp_droprole [@rolename=] role
Процедура sp_revokedbaccess (и ее устаревший аналог sp_dropuser) удаляет пользователя базы
данных:
sp_revokedbaccess [@name_in_db =] name
Процедура sp_droplogin удаляет учетную запись из реестра сервера СУБД:
sp_droplogin [@loginame=] login
2.6 Просмотр информации об учетных записях, ролях, привилегиях.
Для просмотра информации о текущих назначениях пользователей, ролей используются хранимые
процедуры sp_helpuser, sp_helplogins, sp_helprole, sp_helprolemember.
Параметры их вызовов таковы:
sp_helpuser [[@name_in_db=] security_account]
sp_helplogins [[@LoginNamePattern=] login]
sp_helprole [[@rolename=] role]
sp_helprolemember [[@rolename=] role]
Література
Основна:
1. Гофман В., Хомоненко А. Работа с базами данных в Delphi. 2-е издание. СПб: «БХВ-Петербург», 2002.
2. Шкарина Л. Язык SQL: учебный курс. СПб: «Питер», 2001.
Додаткова:
1. Шумаков П., Фаронов В. Delphi 4 руководство разработчика. М.: Нолидж, 1999.
2. Грабер М. Введение в SQL. – М.:Лори, –1996.
3. Microsoft Corporation. Администрирование SQL Server 2000. Учебный курс +CD. Изд.2. Русская
Редакция.
Download