SQL Server предоставляет роли на уровне сервера, помогающие в управлении разрешениями на сервере. Эти роли являются субъектами безопасности, группирующими других участников. Разрешения ролей на уровне сервера распространяются на весь сервер. (Роли похожи на группы в операционной системе Microsoft Windows.) Сразу отметим несколько моментов, связанных с серверными ролями:
- SQL Server предоставляет девять предопределенных ролей сервера. Разрешения, назначенные предопределенным ролям сервера, не могут быть изменены. Начиная с SQL Server 2012, можно создавать пользовательские роли сервера и добавлять разрешения на уровне сервера таким пользовательским ролям.
- В роли уровня сервера можно добавлять участников уровня сервера (имена входа, учетные записи Windows и группы Windows SQL Server). Каждый член предопределенной роли сервера может добавлять другие имена входа к той же роли. Члены пользовательских ролей сервера не могут добавлять других участников на уровне сервера в роль. - Для предоставления прав на уровне всего сервера необязательно использовать серверные роли. Вы вполне можете предоставить эти права напрямую логину (при помощи вкладки Permissions (Разрешения) свойств SQL Server). По умолчанию каждый логин обладает на уровне всего сервера двумя правами: CONNECT SQL (т. е. подключаться к серверу, это право предоставляется логину напрямую) и VIEW ANY DATABASE (т. е. просматривать список баз данных, это право пользователь получает через серверную роль PUBLIC);
На этой вкладке вы можете:
- Более точно настроить права для каждого логина (если набор серверных ролей вас не устраивает);
- Предоставить права всем пользователям сразу (при помощи специальной серверной роли PUBLIC);
- Посмотреть, кто предоставил данные права пользователю (значение в столбце Grantor);
- Посмотреть итоговые права для данного пользователя на уровне сервера. Для этой цели предназначена кнопка Effective (Действующие разрешения).
Серверные роли используются только в специальных случаях. Для большинства пользователей настраивать их не нужно.
Предопределенная роль уровня сервера | Описание
| sysadmin
| Члены предопределенной роли сервера sysadmin могут выполнять любые действия на сервере.
| serveradmin
| Члены предопределенной роли сервера serveradmin могут изменять параметры конфигурации на уровне сервера, а также выключать сервер.
| securityadmin | Члены предопределенной роли сервера securityadmin управляют именами входа и их свойствами.Они могут предоставлять, запрещать и отменять разрешения на уровне сервера (инструкции GRANT, DENY и REVOKE).Они также могут предоставлять, запрещать и отменять разрешения на уровне базы данных (инструкции GRANT, DENY и REVOKE) при наличии доступа к базе данных.Кроме того, они могут сбрасывать пароли для имен входа SQL Server.
Примечание по безопасности Возможность предоставления доступа к компоненту Database Engine и настройки разрешений пользователей позволяет администратору безопасности назначать большинство разрешений сервера. Роль securityadmin должна считаться эквивалентной роли sysadmin.
| processadmin
| Члены предопределенной роли сервера processadmin могут завершать процессы, выполняемые на экземпляре SQL Server.
| setupadmin
| Члены предопределенной роли сервера setupadmin могут добавлять или удалять связанные серверы.
| bulkadmin
| Члены предопределенной роли сервера bulkadmin могут выполнять инструкцию BULK INSERT.
| diskadmin
| Предопределенная роль сервера diskadmin используется для управления файлами на диске.
| dbcreator | Члены предопределенной роли сервера dbcreator могут создавать, изменять, удалять и восстанавливать любые базы данных.
| public | Каждое имя входа SQL Server принадлежит к роли сервера public.Если для участника на уровне сервера не были предоставлены или запрещены конкретные разрешения на защищаемый объект, то он наследует разрешения роли public на этот объект. Разрешения роли public следует назначать только тому объекту, который будет доступен всем пользователям. Нельзя изменить членство в роли public.
Примечание Роль public реализована не так, как другие роли.Однако разрешения для роли public могут быть назначены, запрещены или отозваны.
|
На графическом экране работа с ролями сервера производится или из свойств логина (вкладка Server Roles (Серверные роли)), или из свойств самой серверной роли (контейнер Server Roles в Management Studio). Из кода Transact-SQL для назначения логину серверной роли можно использовать хранимую процедуру sp_addsrvrolemember. Например, чтобы предоставить пользователю User права роли SYSADMIN, соответствующий код может быть таким:
EXEC sp_addsrvrolemember @loginame = 'user', @rolename = 'sysadmin';
Встроенные пользователи базы данных:
dbo (от database owner) - пользователь-владелец базы данных. Автоматически создается для того логина, от имени которого была создана база данных. Как владелец, он получает полные права на свою базу данных (при помощи встроенной роли базы данных dbovmer). В SQL Server 2005 (в отличие от предыдущих версий) dbo может удалить свою базу данных; guest (гость) - предоставляет разрешения всем логинам, которым не соответствует ни один пользователь в базе данных. По умолчанию у этого пользователя нет права login для базы данных, и, следовательно, работать он не будет. Пользователь используется для предоставления разрешений логинам на какие-то учебные/тестовые базы данных или на базы данных - справочники, доступные только на чтение; inpqrmation_schema - пользователь не может соответствовать ни один логин. Его предназначение быть владельцем схемы information_schema, в которой хранятся представления системной информации для базы данных; sys - этому пользователю, как и information_schema, не могут соответствовать логины. Он является владельцем схемы sys, к которой принадлежат системные объекты базы данных. Роли базы данных (используются для доступа к работе с базами данных):
db_owner - Может выполнять любые задачи в БД SQL Server. Имеет те же права, что владельцы БД и участники роли DBO. db_accessadmin - Может добавлять в БД и удалять из нее пользователей, создавать схемы. Права даются сотруднику отвечающему за пользователей БД. db_securityadmin - Может управлять разрешениями, ролями, записями участников ролей и создателей объектов в БД (используя операторы GRANT, REVOKE и DENY) db_ddladmin - Может добавлять, изменять и удалять объекты (используя операторы CREATE, ALTER и DROP) не предоставляя прав на информацию, которая содержится в существующих объектах. Применяется когда пользователю необходимо дать право создавать, изменять и удалять любые объекты в базе данных. db_backupoperator - Может выполнять команды DBCC, инициировать процесс фиксации транзакций, создавать резервные копии (используя операторы DBCC, CHECKPOINT и BACKUP Transact-SQL). Выполнять резервное копирование базы данных db_datareader - Может считывать извлекать информацию данные из пользовательских таблиц и представлений в БД (имеет право использовать оператор SELECT) db datawriter - Может изменять или удалять данные из пользовательских таблиц и представлений в БД (имеет право использовать операторы INSERT, UPDATE и DELETE). Применяется когда необходимо дать права на чтение и запись информации во всех таблицах базы данных, не предоставляя ему лишних административных разрешений (на создание и удаление объектов, изменение прав и т. п.). db denydatareader - Не может считывать данные из пользовательских таблиц представлений в БД (не имеет права использовать оператор SELECT). Эта роль может использоваться с ролью db_ddladmin, чтобы предоставить администратору право создавать объекты, принадлежащие роли DBO, и при этом запретить чтение важных или секретных данных, содержащихся в этих объектах. Применяется когда необходимо дать ограниченные права пользователю. db denydatawriter - Не может изменять или удалять данные из пользовательских таблиц в БД (не имеет права использовать операторы INSERT, UPDATE и DELETE), является приоритетом над разрешениями. Применяется для запрета некоторым пользователям, у которых установлены более обширные права. public – Предоставления разрешений сразу всем Существующим пользователям базы данных.
|