В предыдущих версиях SQL Server для администрирования сервера можно было использовать только учетную запись sa или ее аналог. Иначе говоря, вы могли дать либо все права, либо никаких. Теперь в SQL Server эта проблема решена путем добавления ролей сервера (server role), которые позволяют предоставить операторам сервера только те права, которые администратор посчитает возможным предоставить. Роли сервера не имеют отношения к администрированию баз данных. Можно включить любую учетную запись SQL Server (login) или учетную запись Windows NT в любую роль сервера.
Стандартные роли сервера (fixed server role) и их права приведены в табл.
Таблица. Фиксированные роли сервера
Встроенная Назначение
роль сервера
Sysadmin Может выполнять любые действия в SQL Server Serveradmin Выполняет конфигурирование и выключение сервера
Setupadmin Управляет связанными серверами и процедурами, автоматически запускающимися при старте SQL Server
Securityadmin Управляет учетными записями и правами на создание базы данных, также может читать журнал ошибок
Processadmin Управляет процессами, запущенными в SQL Server
Dbcreator Может создавать и модифицировать базы данных
Diskadmin Управляет файлами SQL Server
Bulkadmin Эта роль не существовала в SQL Server 7.0. Члены роли Bulkadmin могут
(Bulk Insert вставлять данные с использованием средств массивного копирования,
administrators) не имея непосредственного доступа к таблицам
Роли баз данных
Роли базы данных (database role) позволяют объединять пользователей в одну административную единицу и работать с ней как с обычным пользователем. Можно назначить права доступа к объектам базы данных для конкретной роли, при этом вы автоматически наделяете всех членов этой роли одинаковыми правами. Вместо того чтобы предоставлять доступ каждому конкретному пользователю, а впоследствии постоянно следить за изменениями, можно просто включить пользователя в нужную роль. Если сотрудник переходит в другой отдел, нужно просто удалить его из одной роли и добавить в другую. Создайте необходимое количество ролей, которые охватывали бы все многообразие действий с базой данных. Позже, при изменении функций членов одной из ролей, достаточно изменить права доступа для этой роли, а не устанавливать новые права для каждого пользователя.
В роль базы данных можно включать: О пользователей SQL Server; О роли SQL Server
О пользователей Windows NT; '
О группы Windows NT, которым предварительно предоставлен доступ к нужной базе данных.
Средства Enterprise Manager позволяют добавлять в роль базы данных только пользователей базы данных (user). Используйте хранимую процедуру sp_addrolemember, чтобы задействовать все возможности SQL Server 2000:
sp_addrolemember [@ro1ename =] 'role', [@membername =] 'security_account'
Здесь параметры означают следующее: О role— название роли SQL Server в текущей базе данных;
О security_account — имя того объекта системы безопасности, который необходимо включить в роль. В качестве такого объекта могут выступать как учетные записи SQL Server, так и пользователи и группы Windows NT, которым предоставлен доступ к серверу баз данных.
При создании базы данных для нее определяются стандартные роли базы данных, которые, так же как и стандартные роли сервера, не могут быть изменены или удалены. Стандартные роли баз данных (fixed database role) и их права приведены в табл.
Таблица. Фиксированные роли баз данных
Встроенная роль Назначение
баз данных _
db owner Имеет все права в базе данных db_accessadmin Может добавлять или удалять пользователей
db_securityadmin Управляет всеми разрешениями, объектами, ролями и
членами ролей
db_ddladmin Может выполнять любые команды DDL, кроме GRANT, DENY
и REVOKE
db_backupoperator Может выполнять команды DBCC, CHECKPOINT и BACKUP db_datareader Может просматривать любые данные в любой таблице БД db_datawriter Может модифицировать любые данные в любой таблице БД db_denydatareader Запрещается просматривать данные в любой таблице dbjjenydatawriter _Запрещается модифицировать данные в любой таблице _