Опубликован: 11.12.2006 | Доступ: свободный | Студентов: 5820 / 381 | Оценка: 4.42 / 3.86 | Длительность: 57:15:00
Лекция 34:

Управление пользователями и системой безопасности

Использование 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 одной и той же административной учетной записи. Подобно ролям для баз данных фиксированные роли на уровне сервера намного проще поддерживать, чем отдельные полномочия, но фиксированные роли нельзя модифицировать. Вы можете добавить пользователя к фиксированной роли, выполнив следующие шаги.

  1. В окне Enterprise Manager раскройте группу серверов, раскройте сервер, раскройте папку Security и затем щелкните на Server Roles (Роли на сервере). Щелкните правой кнопкой мыши на фиксированной роли, к которой хотите добавить пользователя, и выберите из контекстного меню пункт Properties. Появится окно Server Role Properties (Свойства роли на сервере) (рис. 34.21).
     Окно Server Role Properties (Свойства роли на сервере)

    Рис. 34.21. Окно Server Role Properties (Свойства роли на сервере)
  2. Чтобы добавить к этой роли пользовательскую учетную запись, сначала щелкните на кнопке Add. Появится диалоговое окно Add Members (рис. 34.22), где вы можете выбрать новых участников роли.
     Диалоговое окно Add Members

    Рис. 34.22. Диалоговое окно Add Members
  3. Выбрав пользователей, которых хотите добавить к данной фиксированной роли, щелкните на кнопке OK. Произойдет возврат в окно Server Role Properties. Щелкните на кнопке OK, чтобы добавить пользователя к данной роли.