Db_datawriter– может модифицироватьлюбыеданные в любой таблице бд.
db_denydatareader – запрещается просмотр данных в любой таблице БД.
db_denydatawriter – запрещается модифицирование данных в любой таблице БД.
Public – роль с минимальными правами, которая присваивается каждому пользователю.
В роль базы данных можно добавить пользователей, другие роли SQL Server, отдельных пользователей и группы пользователей Windows NT (которым предварительно разрешен доступ к соответствующей базе данных login-ом). Это делает системная хранимая процедура
sp_addrolemember @rolemember = ‘имя роли в текущей БД’
@membername = ‘имя объекта’//login-ыWinNT,user-ы и имена ролей
Другие хранимые процедуры:
sp_addrole – создать роль;
sp_droprole – удалить роль;
sp_droprolemember – удалить пользователя из роли;
sp_dropuser – удалить пользователя из базы данных.
Когда пользователи подключаются к SQL Server, действия, которые они могут выполнять, определяются правами (или разрешениями – permissions), выданными их учетной записи, роли или user-у.
Права в SQL Server делятся на 3 категории:
1. Права на доступ к объектам баз данных
Под объектами базы данных понимаются: таблицы (можно регулировать доступ как к таблицам целиком, так и к отдельным столбцам таблиц), представления (view), хранимые процедуры и функции.
Название права |
Применимость | ||
Таблицы и представления |
Столбцы таблиц и представлений |
Хранимые процедуры и функции | |
SELECT– выборка (чтение) данных |
+ |
+ |
– |
INSERT– вставка новых строк в представление или таблицу |
+ |
- |
– |
UPDATE– изменение данных |
+ |
+ |
– |
DELETE– удаление строк из таблицы или представления |
+ |
– |
– |
REFERENCES– возможность ссылаться на указанный объект. Применительно к таблицам разрешает пользователю создавать внешние ключи, ссылающиеся наPRIMARYKEYилиUNIQUEстолбец этой таблицы. Применительно к представлениям (view) позволяет связывать представление со схемами таблиц, на основе которых строится представление. Это позволяет отслеживать изменение структуры исходных таблиц, которые могут повлиять на работу представления |
+ |
– |
– |
EXECUTE – выполнение хранимых процедур и функций |
– |
– |
+ |
Предоставить права доступа к объектам бд позволяет команда
GRANT
{ ALL PRIVILEGES | permission [, ... n] }
{
[(имена_столбцов_через_запятую)] ON имя_таблицы_или_представления
| ON имя_процедуры
| ON имя_таблицы_или_представления [( имена_столбцов_через_запятую )]
}
TO имена_объектов_системы_безопасности //через запятуюlogin-ы,user-ы и имена ролей
[WITH GRANT OPTION] // для передачи своих прав другим пользователям командойGRANT
[AS {имя_роли | имя_группы_WinNT}]// имя роли, обладающей правомGRANT, от имени которой
//происходит передача прав.
Параметр permission – через запятую список доступных разрешений SELECT, INSERT, UPDATE и т.д. (из таблицы выше).
Например:
GRANT SELECT, INSERT
ON Materials
TO Engineer
WITH GRANT OPTION
Члены группы Engineer получают права на просмотр и добавление записей в таблицу Materials. Любой из пользователей группы Engineer впоследствии может передавать все или часть своих прав другим пользователям (в нашем примере пользователю с именем Liss):
GRANT SELECT, INSERT
ON Materials
TO Liss
AS Engineer
2. Права на выполнение команд Transact-SQL даются на следующие команды
CREATE DATABASE
CREATE TABLE
CREATE DEFAULT – создание умолчаний.
CREATE RULE – создание правил.
CREATE PROCEDURE – создание процедур.
BACKUP DATABASE – резервное копирование базы данных.
BACKUP LOG – резервное копирование журнала транзакций.
ALL – все перечисленные выше права.
Права на выполнение команд Transact-SQL даются командой:
GRANT {ALL | перечисленные_выше_команды_через_запятую }
TO имена_объектов_системы_безопасности