Partilhar via


sys.server_principals (Transact-SQL)

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerida do SQL do AzureAnalytics Platform System (PDW)

Contém uma linha para cada entidade de segurança no nível do servidor.

Observação

O Microsoft Entra ID era conhecido anteriormente como Azure Ative Directory (Azure AD).

Nome da coluna Tipo de dados Description
name sysname Nome do responsável principal. É exclusivo dentro de um servidor.
principal_id int Número de identificação da entidade de segurança. É exclusivo dentro de um servidor.
SID varbinary(85) Identificador de Segurança (SID) da entidade de segurança.
O SID de uma entidade do Windows corresponde ao SID do Windows.
O SID de uma identidade de usuário do Microsoft Entra é a representação binária de sua ID de objeto do Microsoft Entra.
O SID de um grupo do Microsoft Entra é a representação binária de sua ID de objeto do Microsoft Entra.
O SID de um aplicativo Microsoft Entra é a representação binária de sua ID de cliente Microsoft Entra.
type char(1) Tipo principal:

S = login SQL
R = Função de servidor

Disponível no SQL Server, na Instância Gerenciada SQL do Azure e no PDW (em visualização no Banco de Dados SQL do Azure):
E = Login externo ou aplicativo do Microsoft Entra ID
X = Grupo externo do Microsoft Entra ID

Disponível no SQL Server, na Instância Gerenciada SQL do Azure e no PDW (não no Banco de Dados SQL do Azure):
U = Login do Windows
G = grupo Windows
C = Login mapeado para um certificado
K = Login mapeado para uma chave assimétrica
type_desc Nvarchar(60) Descrição do tipo principal:

SQL_LOGIN
SERVER_ROLE

Disponível no SQL Server, na Instância Gerenciada SQL do Azure e no PDW (em visualização no Banco de Dados SQL do Azure):
EXTERNAL_LOGIN
EXTERNAL_GROUP

Disponível no SQL Server, na Instância Gerenciada SQL do Azure e no PDW (não no Banco de Dados SQL do Azure):
WINDOWS_LOGIN
WINDOWS_GROUP
CERTIFICATE_MAPPED_LOGIN
ASYMMETRIC_KEY_MAPPED_LOGIN
is_disabled int 1 = O login está desativado.
0 = O login está ativado.
create_date datetime Momento em que o principal foi criado.
modify_date datetime Momento em que a definição principal foi modificada pela última vez.
default_database_name sysname Banco de dados padrão para a entidade de segurança.
default_language_name sysname Idioma padrão para a entidade de segurança.
credential_id int ID de uma credencial associada à entidade de segurança. Se nenhuma credencial estiver associada a essa entidade de segurança, credential_id será NULL.
owning_principal_id int O principal_id do proprietário de uma função de servidor. NULL se a entidade de segurança não for uma função de servidor.
is_fixed_role bit Retorna 1 se a entidade de segurança for uma das funções de servidor internas com permissões fixas. Para obter mais informações, consulte Server-Level funções.

Permissions

Qualquer login pode ver seu próprio nome de login, os logins do sistema e as funções de servidor fixas. A visualização de outros logins requer ALTER ANY LOGIN, ou uma permissão no login. A visualização de funções de servidor definidas pelo usuário requer ALTER ANY SERVER ROLE ou associação à função.

No Banco de Dados SQL do Azure, somente as seguintes entidades podem ver todos os logons:

  • Membros da função de servidor ##MS_LoginManager## ou da função de banco de dados especial LoginManager em master
  • o administrador do Microsoft Entra e o administrador do servidor SQL

A visibilidade dos metadados nas visualizações de catálogo é limitada aos itens de segurança que um utilizador possui ou nos quais o utilizador recebeu alguma permissão. Para obter mais informações, consulte Configuração de visibilidade de metadados.

Observações

No Banco de Dados SQL do Azure, os logons SQL não são persistentes na exibição de sys.server_principals catálogo. Portanto, para recuperar a associação de função de nível de servidor no Banco de Dados SQL do Azure, a exibição sys.sql_logins de catálogo precisa ser associada.

Examples

A consulta a seguir lista as permissões explicitamente concedidas ou negadas às entidades de servidor.

SELECT pr.principal_id, pr.name, pr.type_desc,   
    pe.state_desc, pe.permission_name   
FROM sys.server_principals AS pr   
JOIN sys.server_permissions AS pe   
    ON pe.grantee_principal_id = pr.principal_id;  

Importante

As permissões de funções de servidor fixas (que não sejam públicas) não aparecem no sys.server_permissions. Portanto, as entidades de servidor podem ter permissões adicionais não listadas aqui.

Vistas do catálogo de segurança (Transact-SQL)
Exibições de catálogo (Transact-SQL)
Entidades de (Mecanismo de Banco de Dados)
Hierarquia de permissões (Mecanismo de Banco de Dados)