
- •Оглавление
- •Общие пoдxoды к обеспечению безопасности данных
- •Назначение и проверка полномочий, проверка подлинности
- •Средства защиты базы данных
- •Архитектура системы безопасности ms sql Server
- •Учетные записи и пользователи
- •Режимы аутентификации
- •После аутентификации
- •Пользователи
- •Роли сервера
- •Роли баз данных
- •Роли приложения
- •Права доступа
- •Права на доступ к объектам баз данных
- •Запрещение доступа
- •Литература
Роли сервера
Роль — это мощный инструмент, добавленный в SQL Server 7.0, чтобы заменить группы, которые использовались в предыдущих версиях. Роль позволяет объединять пользователей, выполняющих одинаковые функции, для упрощения администрирования системы безопасности SQL Server.
В SQL Server реализовано два вида стандартных ролей: на уровне сервера и на уровне баз данных. При установке SQL Server создается 9 фиксированных ролей сервера и 9 фиксированных ролей базы данных. Эти роли вы не сможете удалить, кроме того, нельзя модифицировать права их доступа. Вы не сможете предоставить пользователю права, которые имеют фиксированные роли сервера, другим способом, кроме как включением его в нужную роль.
Стандартные роли сервера (fixed server role) и их права:
Таблица 1. Фиксированные роли сервера
Встроенная роль сервера |
Назначение |
Sysadmin |
Может выполнять любые действия в SQL Server |
Serveradmin |
Выполняет конфигурирование и выключение сервера |
Setupadmin |
Управляет связанными серверами и процедурами, автоматически запускающимися при старте SQL Server |
Securityadmin |
Управляет учетными записями и правами на создание базы данных, также может читать журнал ошибок |
Processadmin |
Управляет процессами, запущенными в SQL Server |
Dbcreator |
Может создавать и модифицировать базы данных |
Diskadmin |
Управляет файлами SQL Server |
Bulkadmin |
Члены роли Bulkadmin могут вставлять данные с использованием средств массивного копирования, не имея непосредственного доступа к таблицам |
Роли баз данных
Роли базы данных (database role) позволяют объединять пользователей в одну административную единицу и работать с ней как с обычным пользователем.
Можно назначить права доступа к объектам базы данных для конкретной роли, при этом вы автоматически наделяете всех членов этой роли одинаковыми правами. Вместо того чтобы предоставлять доступ каждому конкретному пользователю, а впоследствии постоянно следить за изменениями, можно просто включить пользователя в нужную роль. Если сотрудник переходит в другой отдел, нужно просто удалить его из одной роли и добавить в другую.
Создайте необходимое количество ролей, которые охватывали бы все многообразие действий с базой данных. Позже, при изменении функций членов одной из ролей, достаточно изменить права доступа для этой роли, а не устанавливать новые права для каждого пользователя.
В роль базы данных можно включать:
пользователей SQL Server;
роли SQL Server;
пользователей Windows;
группы Windows, которым предварительно предоставлен доступ к нужной базе данных.
При создании базы данных для нее определяются стандартные роли базы данных, которые, так же как и стандартные роли сервера, не могут быть изменены или удалены. Стандартные роли баз данных (fixed database role) и их права приведены в таблице 2.
Таблица 2. Фиксированные роли баз данных
Встроенная роль баз данных |
Назначение |
db__owner |
Имеет все права в базе данных |
db_accessadmin |
Может добавлять или удалять пользователей |
db_securityadmin |
Управляет всеми разрешениями, объектами, ролями и членами ролей |
db_ddladmin |
Может выполнять любые команды DDL, кроме GRANT, DENY и REVOKE |
db_backupoperator |
Может выполнять команды DBCC, CHECKPOINT и BACKUP |
db_datareader |
Может просматривать любые данные в любой таблице БД |
db_datawriter |
Может модифицировать любые данные в любой таблице БД |
db_denydatareader |
Запрещается просматривать данные в любой таблице |
db_denydatawriter |
Запрещается модифицировать данные в любой таблице |
Кроме указанных выше ролей существует еще одна — public. Эта роль имеет специальное назначение, поскольку ее членами являются все пользователи, имеющие доступ к базе данных. Нельзя явно установить членов этой роли, потому что все пользователи и так автоматически являются ее членами.
Используйте эту роль для предоставления минимального доступа пользователям, для которых права доступа к объектам не определены явно. Если в базе данных разрешен пользователь guest, то установленный для publiс доступ будут иметь все пользователи, получившие доступ к SQL Server. Роль public имеется во всех базах данных, включая системные базы данных master, tempdb, msdb, model, И не может быть удалена.
Группы Windows могут быть использованы аналогично ролям SQL Server. Можно создать одну учетную запись (login) для группы Windows и включать соответствующих пользователей вместо роли в группу Windows.
Выбор метода администрирования зависит от вас.