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.
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.
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 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.
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.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)