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


sp_addrole (Transact-SQL)

Область применения: SQL Server

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

Внимание

sp_addrole включается в совместимость с более ранними версиями SQL Server и может не поддерживаться в будущем выпуске. Вместо этого используйте CREATE ROLE .

Соглашения о синтаксисе Transact-SQL

Синтаксис

sp_addrole
    [ @rolename = ] N'rolename'
    [ , [ @ownername = ] N'ownername' ]
[ ; ]

Аргументы

[ @rolename = ] N'rolename'

Имя новой роли базы данных. @rolename — sysname без значения по умолчанию. @rolename должен быть допустимым идентификатором и не должен существовать в текущей базе данных.

[ @ownername = ] N'ownername'

Владелец новой роли базы данных. @ownername — sysname, с текущим исполняемым пользователем по умолчанию. @ownername должна быть ролью пользователя базы данных или базы данных в текущей базе данных.

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

0 (успешно) или 1 (сбой).

Замечания

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

После добавления роли базы данных используйте sp_addrolemember для добавления субъектов в роль. DENYЕсли GRANTдля применения разрешений к роли базы данных используются инструкции или REVOKE инструкции, члены роли базы данных наследуют эти разрешения, как если бы разрешения применялись непосредственно к их учетным записям.

Примечание.

Не удается создать новые роли сервера. Роли можно создавать только на уровне базы данных.

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

Разрешения

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

Примеры

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

EXEC sp_addrole 'Managers';