ALTER SERVER ROLE (Transact-SQL)
Область применения: SQL Server
База данных SQL Azure Управляемый экземпляр SQL Azure
платформенная система аналитики (PDW)
Изменяет членство в роли сервера или изменяет имя определяемой пользователем роли сервера. Предопределенные роли сервера нельзя переименовывать.
Соглашения о синтаксисе Transact-SQL
-- Syntax for SQL Server, Azure SQL Database, Azure SQL Managed Instance
ALTER SERVER ROLE server_role_name
{
[ ADD MEMBER server_principal ]
| [ DROP MEMBER server_principal ]
| [ WITH NAME = new_server_role_name ]
} [ ; ]
-- Syntax for Parallel Data Warehouse
ALTER SERVER ROLE server_role_name ADD MEMBER login;
ALTER SERVER ROLE server_role_name DROP MEMBER login;
Имя роли сервера, подлежащей изменению.
Добавляет указанный сервер-участник к роли сервера. Аргумент server_principal может быть именем входа или определяемой пользователем ролью сервера. Аргумент server_principal не может быть предопределенной ролью сервера, ролью базы данных или sa.
Удаляет указанный сервер-участник из роли сервера. Аргумент server_principal может быть именем входа или определяемой пользователем ролью сервера. Аргумент server_principal не может быть предопределенной ролью сервера, ролью базы данных или sa.
Задает новое имя определяемой пользователем роли сервера. Это имя не должно быть занято на сервере.
Изменение имени определяемой пользователем роли сервера не изменяет идентификационный номер, владельца или разрешения роли.
Для изменения членства в роли, ALTER SERVER ROLE
replaces sp_addsrvrolemember и sp_dropsrvrolemember. Эти хранимые процедуры являются устаревшими.
Для просмотра ролей сервера выполните запрос к представлениям каталога sys.server_role_members
и sys.server_principals
.
Чтобы изменить владельца определяемой пользователем роли сервера, воспользуйтесь инструкцией ALTER AUTHORIZATION (Transact-SQL).
В База данных SQL Azure ALTER SERVER ROLE
необходимо запустить в master
базе данных.
Требует разрешения ALTER ANY SERVER ROLE
на сервере для изменения имени определяемой пользователем роли сервера.
Предопределенные роли сервера
Для добавления нового члена в предопределенную роль сервера пользователь должен быть членом этой предопределенной роли сервера или членом роли сервера sysadmin
.
Примечание
Разрешения CONTROL SERVER
и ALTER ANY SERVER ROLE
недостаточны для выполнения инструкции ALTER SERVER ROLE
с предопределенной ролью сервера, а разрешение ALTER
не может быть предоставлено для предопределенной роли сервера.
Определяемые пользователем роли сервера
Для добавления члена в определяемую пользователем роль сервера пользователь должен быть членом предопределенной роли сервера sysadmin
или иметь разрешение CONTROL SERVER
или ALTER ANY SERVER ROLE
. Либо иметь разрешение ALTER
для этой роли.
Примечание
В отличие от предопределенных ролей сервера, члены определяемой пользователем роли по сути не имеют разрешения на добавление членов в эту роль.
В следующем примере создается роль сервера с именем Product
, затем имя роли сервера изменяется на Production
.
CREATE SERVER ROLE Product ;
ALTER SERVER ROLE Product WITH NAME = Production ;
GO
В следующем примере к определяемой пользователем роли сервера с именем Production
добавляется учетная запись домена с именем adventure-works\roberto0
.
ALTER SERVER ROLE Production ADD MEMBER [adventure-works\roberto0] ;
В следующем примере добавляется имя входа SQL Server с именем Ted
фиксированной diskadmin
роли сервера.
ALTER SERVER ROLE diskadmin ADD MEMBER Ted ;
GO
В следующем примере учетная запись домена с именем adventure-works\roberto0
удаляется из определяемой пользователем роли сервера с именем Production
.
ALTER SERVER ROLE Production DROP MEMBER [adventure-works\roberto0] ;
В следующем примере удаляется имя входа Ted
SQL Server из diskadmin
предопределенных ролей сервера.
ALTER SERVER ROLE Production DROP MEMBER Ted ;
GO
F. Предоставьте пользователю разрешение на добавление имен входа в определяемую пользователем роль сервера.
В следующем примере пользователь Ted
получает разрешение добавлять другие имена входа к определяемой пользователем роли сервера с именем Production
.
GRANT ALTER ON SERVER ROLE::Production TO Ted ;
GO
Чтобы просмотреть членство в роли, воспользуйтесь страницей Роль сервера (Члены) в среде SQL Server Management Studio или выполните следующий запрос:
SELECT SRM.role_principal_id, SP.name AS Role_Name,
SRM.member_principal_id, SP2.name AS Member_Name
FROM sys.server_role_members AS SRM
JOIN sys.server_principals AS SP
ON SRM.Role_principal_id = SP.principal_id
JOIN sys.server_principals AS SP2
ON SRM.member_principal_id = SP2.principal_id
ORDER BY SP.name, SP2.name
В следующем примере к роли сервера LargeRC
добавляется имя входа Anna
.
ALTER SERVER ROLE LargeRC ADD MEMBER Anna;
В следующем примере удаляется членство Анны из роли сервера LargeRC
.
ALTER SERVER ROLE LargeRC DROP MEMBER Anna;
- CREATE SERVER ROLE (Transact-SQL)
- DROP SERVER ROLE (Transact-SQL)
- CREATE ROLE (Transact-SQL)
- ALTER ROLE (Transact-SQL)
- DROP ROLE (Transact-SQL)
- Хранимые процедуры безопасности (Transact-SQL)
- Функция безопасности (Transact-SQL)
- Субъекты (ядро СУБД)
- sys.server_role_members (Transact-SQL)
- sys.server_principals (Transact-SQL)