Управление пользователями и системой безопасности
Использование T-SQL для администрирования ролей
Вы можете также создавать роли с помощью хранимой процедуры sp_addrole. Эта хранимая процедура имеет следующий синтаксис:
sp_addrole [ @rolename = ] ''роль' [ , [ @ownername = ] 'владелец' ]
Например, добавить роль с именем readonly к базе данных Northwind, используйте следующий оператор T-SQL:
USE Northwind GO sp_addrole 'readonly' , 'dbo' GO
Оператор USE Northwind указывает Northwind как текущую базу данных. Если не указать базу данных, то роль будет создана в базе данных, принятой у вас по умолчанию.
Эта хранимая процедура только создает роль. Чтобы добавить полномочия к этой роли, используйте описанный выше оператор GRANT. Для удаления полномочий из роли используйте оператор REVOKE, также описанный выше в этой лекции.
Например, чтобы добавить в роль readonly полномочия типа SELECT по таблицам Employees, Customers и Orders, используйте следующий оператор GRANT:
USE Northwind GO GRANT SELECT ON Employees TO readonly GO GRANT SELECT ON Customers TO readonly GO
Чтобы добавить пользователей к этой роли, используйте хранимую процедуру sp_addrolemember. Хранимая процедура sp_addrolemember имеет следующий синтаксис:
sp_addrolemember 'роль', 'учетная_запись_безопасности'
Следующий оператор добавляет пользователя к роли readonly:
USE Northwind GO sp_addrolemember 'readonly' , 'Guest' GO
Использование фиксированных ролей на сервере
Во время инсталляции SQL Server создается ряд заранее определенных ролей, которые применяются на уровне сервера. Эти фиксированные роли на сервере используются для предоставления полномочий DBA; они могут содержать как полномочия на уровне сервера, так и полномочия доступа к объектам и операторам. Ниже приводится список этих ролей.
- bulkadmin. Позволяет выполнять массовые вставки.
- dbcreator. Позволяет создавать и изменять базы данных.
- diskadmin. Позволяет управлять файлами на дисках.
- processadmin. Позволяет управлять процессами SQL Server.
- securityadmin. Позволяет управлять login-записями и создавать полномочия доступа к базам данных.
- serveradmin. Позволяет задавать любые параметры сервера и закрывать базу данных.
- setupadmin.Позволяет управлять связанными серверами и процедурами запуска.
- sysadmin.Позволяет выполнять любые операции на сервере.
Присваивая пользовательские учетные записи фиксированным ролям на сервере, вы позволяете пользователям осуществлять административные задачи, полномочия на выполнение которых имеют эти роли. В зависимости от ваших потребностей это может оказаться предпочтительнее использования всеми DBA одной и той же административной учетной записи. Подобно ролям для баз данных фиксированные роли на уровне сервера намного проще поддерживать, чем отдельные полномочия, но фиксированные роли нельзя модифицировать. Вы можете добавить пользователя к фиксированной роли, выполнив следующие шаги.
- В окне Enterprise Manager раскройте группу серверов, раскройте сервер, раскройте папку Security и затем щелкните на Server Roles (Роли на сервере). Щелкните правой кнопкой мыши на фиксированной роли, к которой хотите добавить пользователя, и выберите из контекстного меню пункт Properties. Появится окно Server Role Properties (Свойства роли на сервере) (рис. 34.21).
- Чтобы добавить к этой роли пользовательскую учетную запись, сначала щелкните на кнопке Add. Появится диалоговое окно Add Members (рис. 34.22), где вы можете выбрать новых участников роли.
- Выбрав пользователей, которых хотите добавить к данной фиксированной роли, щелкните на кнопке OK. Произойдет возврат в окно Server Role Properties. Щелкните на кнопке OK, чтобы добавить пользователя к данной роли.