Серверные роли. Разрешения на уровне сервера
По умолчанию каждая учетная запись обладает на уровне всего сервера двумя правами: CONNECT SQL (подключаться к серверу) и VIEW ANY DATABASE (просматривать список баз данных). Для предоставления пользователю дополнительных прав на уровне всего сервера можно воспользоваться серверными ролями, добавив учетную запись в состав роли сервера. Список серверных ролей предопределен: нельзя удалить роли сервера или изменить их права, нельзя также создать свои серверные роли.
Роль сервера
| Разрешения
| PUBLIC
| эта роль отсутствует в списке серверных ролей, но она существует и активно используется. Права этой роли автоматически получают все, кто подключился к SQL Server, и лишить пользователя членства в этой роли невозможно;
| SYSADMIN
| роль, предоставляющая полные права на весь SQL Server (и возможность передавать эти права другим пользователям). С точки зрения серверных разрешений это соответствует праву CONTROL SERVER с параметром WITH GRANT (то есть возможностью передачи)
| SERVERADMIN
| роль, предоставляющая возможность изменять любые настройки работы сервера и отключать сервер, но получать доступ к данным и изменять разрешения не разрешено
| SECURITYADMIN
| эта роль для того, кто выдает разрешения пользователям, не вмешиваясь в работу сервера. Имеется возможность создавать учетные записи для обычных пользователей, изменять их пароли, предоставлять разрешения в базах данных. Однако предоставить кому-либо административные права или изменять учетную запись администратора не может
| BULKADMIN
| роль для сотрудников, которые выполняют массовые загрузки данных в таблицы SQL Server
| DBCREATOR
| эта роль позволяет создавать БД на SQL. Обычно эта роль предоставляется учетным записям, используемым приложениями, которые хранят свои информацию на SQL Server
| DISKADMIN
| эта роль позволяет выполнять любые операции с файлами баз данных на диске
| PROCESSADMIN
| эта роль предназначена для выполнения единственной обязанности: закрытия пользовательских подключений к серверу
| SETUPADMIN
| права этой роли позволяют подключать внешние сервера SQL Server (linked servers).
| Добавление учетной записи в состав роли сервера и настройка прав
1. Из кода Transact-SQL для добавления учетной записи в состав роли сервера можно использовать хранимую процедуру sp_addsrvrolemember
EXEC sp_addsrvrolemember @loginame = 'user4', @rolename = 'sysadmin'
2. Для управления ролями сервера с помощью графического интерфейса Management Studio, можно воспользоваться либо контейнером Server Roles, либо вкладкой Server Roles в окне свойств учетной записи.
3. Дополнительные возможности работы с правами на уровне сервера доступны из свойств сервера на вкладке Permissions.
Использование этой вкладки предоставляет возможности:
· более точно настроить права для каждой учетной записи;
· предоставить права всем пользователям сразу;
· посмотреть, кто предоставил данные права пользователю (значение в столбце Grantor);
· посмотреть итоговые права для данного пользователя на уровне сервера. Для этой цели предназначена кнопка Effective Permissions.
Еще одна возможность предоставить пользователю разрешения на объекты сервера – воспользоваться вкладкой Securables свойств учетной записи:
· Разршения на объект сервера;
· Разрешения на объекты подключений по HTTP;
· Разрешения на объекты других учетных записей
|