ALTER SERVER ROLE (Transact-SQL)
Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure PDW (Analytics Platform System)
Altera a associação de uma função de servidor ou altera nome de uma função de servidor definida pelo usuário. As funções de servidor fixas não podem ser renomeadas.
Convenções de sintaxe de Transact-SQL
Sintaxe
-- 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;
Argumentos
server_role_name
É o nome da função de servidor a ser alterada.
ADD MEMBER server_principal
Adiciona a entidade de segurança do servidor especificado à função de servidor. server_principal pode ser um logon ou uma função de servidor definida pelo usuário. server_principal não pode ser uma função de servidor fixa, uma função de banco de dados nem sa.
DROP MEMBER server_principal
Remove a entidade de segurança de servidor especificada da função de servidor. server_principal pode ser um logon ou uma função de servidor definida pelo usuário. server_principal não pode ser uma função de servidor fixa, uma função de banco de dados nem sa.
WITH NAME =new_server_role_name
Especifica o novo nome da função de servidor definida pelo usuário. Esse nome ainda não pode existir no servidor.
Comentários
A alteração do nome de uma função de servidor definida pelo usuário não altera o número da ID, o proprietário ou as permissões da função.
Para alterar a associação de função, ALTER SERVER ROLE
substitui sp_addsrvrolemember e sp_dropsrvrolemember. Esses procedimentos armazenados foram preteridos.
É possível exibir as funções de servidor por meio de consulta das exibições do catálogo sys.server_role_members
e sys.server_principals
.
Para alterar o proprietário de uma função de servidor definida pelo usuário, use ALTER AUTHORIZATION (Transact-SQL).
No Banco de Dados SQL do Azure, ALTER SERVER ROLE
deve ser executado no banco de dados master
.
Permissões
Requer a permissão ALTER ANY SERVER ROLE
no servidor para alterar o nome de uma função de servidor definida pelo usuário.
Funções fixas de servidor
Para adicionar um membro a uma função de servidor fixa, você deve ser membro dessa função de servidor fixa ou da função de servidor fixa sysadmin
.
Observação
As permissões CONTROL SERVER
e ALTER ANY SERVER ROLE
não são suficientes para executar ALTER SERVER ROLE
para uma função de servidor fixa, e a ALTER
permissão não pode ser concedida em uma função de servidor fixa.
Funções de servidor definidas pelo usuário
Para adicionar um membro a uma função de servidor definida pelo usuário, você deve ser um membro da função fixa de servidor sysadmin
ou ter a permissão CONTROL SERVER
ou ALTER ANY SERVER ROLE
. Ou você deve ter a permissão ALTER
naquela função.
Observação
Ao contrário das funções de servidor fixas, os membros de uma função de servidor definida pelo usuário não têm permissão inerentemente para adicionar membros àquela mesma função.
Exemplos
a. Alterar o nome de uma função de servidor
O exemplo seguinte cria uma função de servidor chamada Product
e, em seguida, altera o nome da função de servidor para Production
.
CREATE SERVER ROLE Product ;
ALTER SERVER ROLE Product WITH NAME = Production ;
GO
B. Adicionar uma conta de domínio a uma função de servidor
O exemplo a seguir adiciona uma conta de domínio chamada adventure-works\roberto0
à função de servidor definida pelo usuário chamada Production
.
ALTER SERVER ROLE Production ADD MEMBER [adventure-works\roberto0] ;
C. Adicionar um logon do SQL Server a uma função de servidor
O exemplo a seguir adiciona o logon no SQL Server chamado Ted
à função fixa de servidor diskadmin
.
ALTER SERVER ROLE diskadmin ADD MEMBER Ted ;
GO
D. Remover uma conta de domínio de uma função de servidor
O exemplo a seguir remove uma conta de domínio chamada adventure-works\roberto0
da função de servidor definida pelo usuário chamada Production
.
ALTER SERVER ROLE Production DROP MEMBER [adventure-works\roberto0] ;
E. Remover um logon do SQL Server de uma função de servidor
O exemplo a seguir remove o logon no SQL Server Ted
da função fixa de servidor diskadmin
.
ALTER SERVER ROLE Production DROP MEMBER Ted ;
GO
F. Conceder a um logon a permissão para adicionar logons a uma função de servidor definida pelo usuário
O exemplo a seguir permite que Ted
adicione outros logons à função de servidor definida pelo usuário chamada Production
.
GRANT ALTER ON SERVER ROLE::Production TO Ted ;
GO
G. Exibir a associação da função
Para exibir a associação de função, use a página Função de Servidor (Membros) em SQL Server Management Studio ou execute a seguinte consulta:
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
Exemplos: PDW (Analytics Platform System)
H. Adicionar um membro a uma função de servidor
O exemplo a seguir adiciona o logon no Anna
à função de servidor LargeRC
.
ALTER SERVER ROLE LargeRC ADD MEMBER Anna;
I. Remover um logon de uma classe de recurso
O exemplo a seguir remove a associação de Ana na função de servidor LargeRC
.
ALTER SERVER ROLE LargeRC DROP MEMBER Anna;
Próximas etapas
- CREATE SERVER ROLE (Transact-SQL)
- DROP SERVER ROLE (Transact-SQL)
- CREATE ROLE (Transact-SQL)
- ALTER ROLE (Transact-SQL)
- DROP ROLE (Transact-SQL)
- Procedimentos armazenados de segurança (Transact-SQL)
- Funções de segurança (Transact-SQL)
- Entidades (Mecanismo de Banco de Dados)
- sys.server_role_members (Transact-SQL)
- sys.server_principals (Transact-SQL)