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';