Хранимая процедура sp_addrolemember (Transact-SQL)
Добавляет пользователя базы данных, роль базы данных, имя входа Windows или группу Windows к роли текущей базы данных.
Соглашения о синтаксисе в Transact-SQL
Синтаксис
sp_addrolemember [ @rolename = ] 'role',
[ @membername = ] 'security_account'
Аргументы
- [ @rolename = ] 'role'
Имя роли базы данных в текущей базе данных. Аргумент role имеет тип sysname и не имеет значения по умолчанию.
- [ @membername = ] 'security_account'
Учетная запись, добавляемая к роли. Аргумент security_account имеет тип sysname и не имеет значения по умолчанию. Аргумент security_account может быть пользователем базы данных, ролью базы данных, именем входа Windows или группой Windows.
Значения кодов возврата
0 (успешное завершение) или 1 (неуспешное завершение)
Замечания
Член роли, добавляемый с помощью процедуры sp_addrolemember, наследует разрешения этой роли. Если добавляемый член — участник уровня Windows без соответствующего пользователя базы данных, этот пользователь будет создан.
Роль не может быть членом самой себя. Такие «циклические» определения недопустимы, даже если подразумевается только косвенное членство через несколько промежуточных ролей.
Хранимая процедура sp_addrolemember не может добавлять к роли фиксированную роль базы данных, фиксированную серверную роль или dbo. В версиях до SQL Server с пакетом обновления 1 (SP1) хранимая процедура sp_addrolemember не может выполняться в пользовательской транзакции.
Процедура sp_addrolemember используется только для добавления нового члена к роли базы данных. Чтобы добавить новый член к серверной роли, воспользуйтесь процедурой sp_addsrvrolemember (Transact-SQL).
Не добавляйте гибкие роли в качестве членов фиксированных ролей. Это может вызвать непредусмотренное повышение прав доступа.
Разрешения
Для добавления членов к гибким ролям базы данных требуется одно из следующих условий:
- членство в фиксированной роли базы данных db_owner;
- членство в фиксированной роли базы данных db_securityadmin;
- членство в роли владельца;
- разрешение ALTER на эту роль.
Для добавления членов к фиксированным ролям базы данных требуется членство в фиксированной роли базы данных db_owner.
Примеры
A. Добавление имени входа Windows
Следующий пример добавляет имя входа Windows Contoso\Mary5
.
к базе данных AdventureWorks
в качестве пользователя Mary5
. После этого пользователь Mary5
добавляется к роли Production
role.
Примечание. |
---|
Так как Contoso\Mary5 известен как пользователь Mary5 базы данных AdventureWorks, с помощью процедуры sp_addrolemember должно указываться имя пользователя Mary5 . |
USE AdventureWorks
GO
EXEC sp_grantdbaccess 'Contoso\Mary5', 'Mary5'
GO
EXEC sp_addrolemember 'Production', 'Mary5'
Б. Добавление пользователя базы данных
В следующем примере пользователь базы данных Mary5
добавляется к роли базы данных Production
текущей базы данных.
EXEC sp_addrolemember 'Production', 'Mary5'
См. также
Справочник
Хранимые процедуры безопасности (Transact-SQL)
sp_addsrvrolemember (Transact-SQL)
sp_droprolemember (Transact-SQL)
sp_grantdbaccess (Transact-SQL)
Системные хранимые процедуры (Transact-SQL)