ALTER SERVER ROLE (Transact-SQL)
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.
Aplica-se a: SQL Server (SQL Server 2012 até a versão atual). |
Convenções da sintaxe Transact-SQL
Sintaxe
ALTER SERVER ROLE server_role_name
{
[ ADD MEMBER server_principal ]
| [ DROP MEMBER server_principal ]
| [ WITH NAME = new_server_role_name ]
} [ ; ]
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 ou 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 ou 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 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).
Permissões
Exige permissão ALTER ANY SERVER ROLE no servidor para alterar o nome de uma função de servidor definida pelo usuário.
Funções de servidor fixas
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.
Dica
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 permissão ALTER 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 membro da função de servidor fixa sysadmin ou ter a permissão CONTROL SERVER ou ALTER ANY SERVER ROLE. Ou você deve ter a permissão ALTER naquela função.
Dica
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.Alterando 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.Adicionando 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.Adicionando um logon do SQL Server a uma função de servidor
O exemplo a seguir adiciona o logon do SQL Server chamado Ted à função de servidor fixa diskadmin.
ALTER SERVER ROLE diskadmin ADD MEMBER Ted ;
GO
D.Removendo 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.Removendo um logon do SQL Server de uma função de servidor
O exemplo a seguir remove o logon do SQL Server Ted da função de servidor fixa diskadmin.
ALTER SERVER ROLE Production DROP MEMBER Ted ;
GO
F.Concedendo 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.Para exibir a associação de função
Para exibir a associação de função, use a página Função (Membros) de Servidor em SQL Server Management Studio ou execute a consulta seguinte:
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
Consulte também
Referência
CREATE SERVER ROLE (Transact-SQL)
DROP SERVER ROLE (Transact-SQL)
Procedimentos armazenados de segurança (Transact-SQL)
Funções de segurança (Transact-SQL)
sys.server_role_members (Transact-SQL)
sys.server_principals (Transact-SQL)