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


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_role_name

Имя роли сервера, подлежащей изменению.

ADD MEMBER server_principal

Добавляет указанный сервер-участник к роли сервера. Аргумент server_principal может быть именем входа или определяемой пользователем ролью сервера. Аргумент server_principal не может быть предопределенной ролью сервера, ролью базы данных или sa.

DROP MEMBER server_principal

Удаляет указанный сервер-участник из роли сервера. Аргумент server_principal может быть именем входа или определяемой пользователем ролью сервера. Аргумент server_principal не может быть предопределенной ролью сервера, ролью базы данных или sa.

WITH NAME =new_server_role_name

Задает новое имя определяемой пользователем роли сервера. Это имя не должно быть занято на сервере.

Замечания

Изменение имени определяемой пользователем роли сервера не изменяет идентификационный номер, владельца или разрешения роли.

Для изменения членства в роли, 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  

B. Добавление учетной записи домена в роль сервера

В следующем примере к определяемой пользователем роли сервера с именем Production добавляется учетная запись домена с именем adventure-works\roberto0.

ALTER SERVER ROLE Production ADD MEMBER [adventure-works\roberto0] ;  

C. Добавление имени входа SQL Server в роль сервера

В следующем примере добавляется имя входа SQL Server с именем Ted фиксированной diskadmin роли сервера.

ALTER SERVER ROLE diskadmin ADD MEMBER Ted ;  
GO  

D. Удаление учетной записи домена из роли сервера

В следующем примере учетная запись домена с именем adventure-works\roberto0 удаляется из определяемой пользователем роли сервера с именем Production.

ALTER SERVER ROLE Production DROP MEMBER [adventure-works\roberto0] ;  

Е. Удаление имени входа SQL Server из роли сервера

В следующем примере удаляется имя входа Ted SQL Server из diskadmin предопределенных ролей сервера.

ALTER SERVER ROLE Production DROP MEMBER Ted ;  
GO  

F. Предоставьте пользователю разрешение на добавление имен входа в определяемую пользователем роль сервера.

В следующем примере пользователь Ted получает разрешение добавлять другие имена входа к определяемой пользователем роли сервера с именем Production.

GRANT ALTER ON SERVER ROLE::Production TO Ted ;  
GO  

G. Просмотр членства в роли

Чтобы просмотреть членство в роли, воспользуйтесь страницей Роль сервера (Члены) в среде 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  

Примеры: система платформы аналитики (PDW)

H. Добавление члена в роль сервера

В следующем примере к роли сервера LargeRC добавляется имя входа Anna.

ALTER SERVER ROLE LargeRC ADD MEMBER Anna;  

I. Удаление имени входа из класса ресурсов

В следующем примере удаляется членство Анны из роли сервера LargeRC.

ALTER SERVER ROLE LargeRC DROP MEMBER Anna;  

Следующие шаги