Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
О.Б.Д / лекции / 17БД.doc
Скачиваний:
29
Добавлен:
30.05.2020
Размер:
172.03 Кб
Скачать

4.7 Конфлікти доступу

Дозволи, надані ролі або групі, успадковуються їх членами. Хоча користувачу може бути наданий доступ через членство в одній ролі, роль іншого рівня може мати заборону на дію з об'єктом. У такому разі виникає конфлікт доступу .

При дозволі конфліктів доступу SQL Server керується наступним принципом: дозвіл на надання доступу має найнижчий пріоритет, а на заборону доступу – найвищий. Це значить, що доступ до даних може дістати тільки явним його наданням за відсутності заборони доступу на будь-якому іншому рівні ієрархії системи безпеки. Якщо доступ явно не наданий, користувач не зможе працювати з даними.

Приклад 17.1. Створити нову базу даних, нового користувача для цієї бази даних, надавши йому всі права.

-- створення адміністратором нової

-- бази даних

CREATE DATABASE basa_user

-- створення нового користувача з ім'ям UserA і паролем ‘123’ базою даних за умовчанням для користувача UserA буде база з ім'ям basa_user.

sp_addlogin 'UserA','123','basa_user'

-- перехід в базу даних basa_user

USE basa_user

-- додавання в поточну базу даних (basa_user) користувача з ім'ям userA

sp_adduser 'UserA'

-- надання користувачу userA в базі даних basa_user всіх прав

GRANT ALL TO UserA

Приклад 17.1. Створення нової бази даних, нового користувача для цієї бази даних, з наданням йому всіх прав.

Приклад 17.2. Використовування ролей.

Створимо роль stud і включимо в цю роль двох користувачів user1 і user2:

sp_addrole 'stud'

sp_addrolemember 'stud','user1'

sp_addrolemember 'stud','user2'

Надамо права ролі stud і безпосередньо користувачу user2:

GRANT SELECT, INSERT ON Товар TO stud

GRANT SELECT, INSERT ON Товар TO user2

Після виконання цих команд користувачі user1 і user2 можуть виконувати команди вибірки і додавання запису в таблицю Товар.

Припинимо право на виконання вставки в таблицю Товар для ролі stud:

REVOKE INSERT ON Товар TO stud

Після виконання попередньої команди користувач user1 втрачає право вставки запису, а user2 зберігає це право, оскільки право вставки надано йому явно.

Виконаємо команду

DENY INSERT ON Товар TO stud.

Після виконання цієї команди обидва користувачі позбавляються права вставки в таблицю Товар.

Соседние файлы в папке лекции