Compartilhar via


FUNÇÃO DE SERVIDOR DE ABANDONO (Transact-SQL)

Aplica-se a: SQL Server Instância Gerenciada de SQL do Azure Azure Synapse AnalyticsAnalytics Platform System (PDW)

Remove uma função de servidor definida pelo usuário.

Os papéis de servidor definidos pelo usuário foram introduzidos no SQL Server 2012 (11.x).

Convenções de sintaxe de Transact-SQL

Sintaxe

DROP SERVER ROLE role_name
[ ; ]

Argumentos

role_name

Especifica a função de servidor definida pelo usuário a ser descartada do servidor.

Comentários

Papéis de servidor definidos pelo usuário que possuem securables não podem ser eliminados do servidor. Para descartar uma função de servidor definida pelo usuário que possui protegíveis, é necessário primeiro transferir a propriedade dos protegíveis ou descartá-los.

Funções de servidor definidas pelo usuário que têm membros não podem ser descartadas. Para remover uma função de servidor definida pelo usuário que tem membros, você deve, primeiro, remover os membros da função usando ALTER SERVER ROLE.

Papéis fixos de servidor não podem ser removidos.

Obtenha informações sobre a associação de função consultando a exibição do catálogo sys.server_role_members.

Permissões

Requer CONTROL permissão para o papel do servidor ou ALTER ANY SERVER ROLE permissão.

Exemplos

a. Para remover uma função de servidor

O exemplo a seguir descarta a função de servidor purchasing.

DROP SERVER ROLE purchasing;
GO

B. Para exibir a associação de função

Para visualizar a pertença à função, use a página Server Role (Members) no 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
     INNER JOIN sys.server_principals AS SP
         ON SRM.Role_principal_id = SP.principal_id
     INNER JOIN sys.server_principals AS SP2
         ON SRM.member_principal_id = SP2.principal_id
ORDER BY SP.name, SP2.name;

C. Para exibir a associação de função

Para determinar se uma função de servidor tem outra função de servidor, execute a consulta seguinte:

SELECT SP1.name AS RoleOwner,
       SP2.name AS Server_Role
FROM sys.server_principals AS SP1
     INNER JOIN sys.server_principals AS SP2
         ON SP1.principal_id = SP2.owning_principal_id
ORDER BY SP1.name;