Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо: SQL Server
База данных SQL Azure Управляемый экземпляр SQL Azure
azure Synapse Analytics Analytics
Platform System (PDW)
Добавляет пользователя базы данных, роль базы данных, имя входа Windows или группу Windows к роли текущей базы данных.
Внимание
Эта функция будет удалена в будущей версии SQL Server. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется. Вместо этого используйте ALTER ROLE .
Соглашения о синтаксисе Transact-SQL
Синтаксис
sp_addrolemember
[ @rolename = ] N'rolename'
, [ @membername = ] N'membername'
[ ; ]
Примечание.
Этот синтаксис не поддерживается бессерверным пулом SQL в Azure Synapse Analytics.
Аргументы
[ @rolename = ] N'rolename'
Имя роли базы данных в текущей базе данных. @rolename — sysname без значения по умолчанию.
[ @membername = ] N'membername'
Учетная запись безопасности, добавляемая в роль. @membername — sysname без значения по умолчанию. @membername может быть пользователем базы данных, ролью базы данных, именем входа Windows или группой Windows.
Значения кода возврата
0 (успешно) или 1 (сбой).
Замечания
Участник, добавленный в роль, с помощью sp_addrolemember наследует разрешения роли. Если новый член является субъектом уровня Windows без соответствующего пользователя базы данных, создается пользователь базы данных, но может быть не полностью сопоставлен с именем входа. Всегда проверяйте, существует ли имя входа, и предоставлен ли ему доступ к базе данных.
Роль не может включать себя в качестве члена. Такие циклические определения недопустимы, даже если членство косвенно подразумевается одним или несколькими промежуточными членствами.
sp_addrolemember Не удается добавить предопределенных ролей базы данных, предопределенных ролей сервера или dbo в роль.
Используется sp_addrolemember только для добавления члена в роль базы данных. Чтобы добавить члена в роль сервера, используйте sp_addsrvrolemember.
Разрешения
Для добавления участников в гибкие роли базы данных требуется одно из следующих разрешений:
Членство в предопределенных ролевой роли базы данных db_securityadmin или db_owner .
Членство в роли, которой принадлежит эта роль.
ALTER ANY ROLEразрешение илиALTERразрешение на роль.
Добавление участников в фиксированные роли базы данных требует членства в предопределенных ролях базы данных db_owner .
Примеры
А. Добавление имени входа Windows
В следующем примере в базу данных в качестве пользователя Mary5добавляется имя входа Contoso\Mary5 AdventureWorks2022 Windows. Затем пользователь Mary5 добавляется к роли Production.
Так как Contoso\Mary5 известен как пользователь базы данных Mary5 в базе данных AdventureWorks2022 , имя пользователя Mary5 должно быть определено. Инструкция завершается ошибкой Contoso\Mary5 , если имя входа не существует. Можно проверить, используя имя входа в домене.
USE AdventureWorks2022;
GO
CREATE USER Mary5 FOR LOGIN [Contoso\Mary5];
GO
B. Добавление пользователя базы данных
В следующем примере пользователь базы данных Mary5 добавляется к роли базы данных Production текущей базы данных.
EXECUTE sp_addrolemember 'Production', 'Mary5';
Примеры: система платформы аналитики (PDW)
В. Добавление имени входа Windows
В следующем примере имя входа LoginMary добавляется в AdventureWorks2022 базу данных в качестве пользователя UserMary. Затем пользователь UserMary добавляется к роли Production.
Примечание.
Так как имя входа LoginMary называется пользователем UserMary базы данных в AdventureWorks2022 базе данных, необходимо указать имя UserMary пользователя. Выражение будет завершаться с ошибкой Mary5 , пока существует имя для входа. Имена входа и пользователи обычно имеют одинаковое имя. В этом примере используются разные имена, чтобы различать действия, влияющие на имя входа и пользователя.
-- Uses AdventureWorks2022
CREATE USER UserMary FOR LOGIN LoginMary;
GO
EXECUTE sp_addrolemember 'Production', 'UserMary';
D. Добавление пользователя базы данных
В следующем примере пользователь базы данных UserMary добавляется к роли базы данных Production текущей базы данных.
EXECUTE sp_addrolemember 'Production', 'UserMary';