Конфликты доступа
Разрешения, предоставленные роли или группе, наследуются их членами. Хотя пользователю может быть предоставлен доступ через членство в одной роли, роль другого уровня может иметь запрещение на действие с объектом. В таком случае возникает конфликт доступа.
При разрешении конфликтов доступа SQL Server руководствуется следующим принципом: разрешение на предоставление доступа имеет самый низкий приоритет, а на запрещение доступа – самый высокий. Это значит, что доступ к данным может быть получен только явным его предоставлением при отсутствии запрещения доступа на любом другом уровне иерархии системы безопасности. Если доступ явно не предоставлен, пользователь не сможет работать с данными.
Пример 17.1. Создать новую базу данных, нового пользователя для этой базы данных, предоставив ему все права.
-- создание администратором новой-- базы данныхCREATE DATABASE basa_user-- создание нового пользователя с-- именем UserA и паролем ‘123’-- базой данных по умолчанию для-- пользователя UserA будет база-- с именем basa_user.sp_addlogin 'UserA','123','basa_user'-- переход в базу данных basa_userUSE basa_user-- добавление в текущую базу данных-- (basa_user) пользователя с именем-- userAsp_adduser 'UserA'-- предоставление пользователю userA-- в базе данных basa_user всех правGRANT ALL TO UserAПример 17.1. Создание новой базы данных, нового пользователя для этой базы данных, с предоставлением ему всех прав. (html, txt)
Пример 17.2. Использование ролей.
Создадим роль stud и включим в эту роль двух пользователей user1 и user2:
sp_addrole 'stud'sp_addrolemember 'stud','user1'sp_addrolemember 'stud','user2'Предоставим права роли stud и непосредственно пользователю user2:
GRANT SELECT, INSERT ON Товар TO studGRANT SELECT, INSERT ON Товар TO user2После выполнения этих команд пользователи user1 и user2 могут выполнять команды выборки и добавления записи в таблицу Товар.
Приостановим право на выполнение вставки в таблицу Товар для роли stud:
REVOKE INSERT ON Товар TO studПосле выполнения предыдущей команды пользователь user1 теряет право вставки записи, а user2 сохраняет это право, поскольку право вставки предоставлено ему явно.
Выполним команду
DENY INSERT ON Товар TO stud.После выполнения этой команды оба пользователя лишаются права вставки в таблицу Товар.
Дата добавления: 2015-08-26; просмотров: 775;