Поделиться через


sp_addrole (Transact-SQL)

Создает новую роль базы данных в текущей базе данных.

ms189743.note(ru-ru,SQL.90).gifВажно!
Процедура sp_addrole доступна в целях совместимости с предыдущими версиями Microsoft SQL Server и может не поддерживаться в следующих выпусках. Вместо нее следует использовать инструкцию CREATE ROLE.

Значок ссылки на разделСоглашения о синтаксисе в Transact-SQL

Синтаксис

sp_addrole [ @rolename = ] 'role' [ , [ @ownername = ] 'owner' ] 

Аргументы

  • [ @rolename = ] 'role'
    Имя новой роли базы данных. Аргумент role имеет тип sysname и не имеет значения по умолчанию. Аргумент role должен быть допустимым идентификатором и не должен совпадать ни с одним из существующих идентификаторов в текущей базе данных.
  • [ @ownername =] 'owner'
    Имя владельца новой роли базы данных. Аргумент owner имеет тип sysname, значение по умолчанию — выполняющий операцию пользователь. Аргумент owner должен быть пользователем или ролью в текущей базе данных.

Значения кодов возврата

0 (успешное завершение) или 1 (неуспешное завершение)

Замечания

Имена ролей базы данных SQL Server могут содержать от 1 до 128 символов, включая буквы, символы и цифры. Имя роли базы данных не должно содержать символ обратной косой черты (\), иметь значение NULL или являться пустой строкой ('').

После добавления роли базы данных добавьте в эту роль участников с помощью процедуры Хранимая процедура sp_addrolemember (Transact-SQL). При использовании инструкций GRANT, DENY или REVOKE для назначения разрешений роли базы данных члены данной роли наследуют эти разрешения, как если бы они были применены напрямую к их учетным записям.

ms189743.note(ru-ru,SQL.90).gifПримечание.
Новые серверные роли создавать нельзя. Роли можно создавать только на уровне базы данных.

Процедуру sp_addrole нельзя применять в пользовательской транзакции.

Разрешения

Необходимо наличие разрешения CREATE ROLE в базе данных. При создании схемы необходимо наличие разрешения CREATE SCHEMA в этой базе данных. Если аргумент owner указан как пользователь или группа, то этому пользователю или группе необходимо разрешение IMPERSONATE. Если аргумент owner указан как роль, то для этой роли или члена этой роли необходимо разрешение ALTER. Если владелец указан как роль приложения, то для этой роли приложения необходимо разрешение ALTER.

Примеры

В следующем примере в текущую базу данных добавляется новая роль с именем Managers.

EXEC sp_addrole 'Managers'

См. также

Справочник

Системные хранимые процедуры (Transact-SQL)
Хранимые процедуры безопасности (Transact-SQL)
CREATE ROLE (Transact-SQL)

Справка и поддержка

Получение помощи по SQL Server 2005