Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:Banco de Dados SQL do
Azure
Instância Gerenciada de SQL do Azure
Azure Synapse Analytics
Analytics Platform System (PDW)
Banco de Dados SQL no Microsoft Fabric
Indica se o utilizador atual pertence ao grupo Microsoft Windows especificado, ao grupo Microsoft Entra ou à base de dados SQL Server.
A função IS_MEMBER é suportada para grupos Microsoft Entra. O único caso em que IS_MEMBER não funciona é se o grupo for o administrador Microsoft Entra da instância SQL.
Transact-SQL convenções de sintaxe
Observação
O Microsoft Entra ID era conhecido anteriormente como Azure Ative Directory (Azure AD).
Sintaxe
IS_MEMBER ( { 'group' | 'role' } )
Arguments
'grupo'
Aplica-se a: SQL Server 2008 (10.0.x) e versões posteriores
É o nome do grupo Windows ou Microsoft Entra que está a ser verificado. Um grupo Windows deve estar no formato Grupo de Domínio\. o grupo é sysname.
'Papel'
É o nome do papel SQL Server que está a ser verificado.
O papel é sysname e pode incluir os papéis fixos da base de dados ou papéis definidos pelo utilizador, mas não papéis de servidor.
Tipos de devolução
int
Observações
IS_MEMBER devolve os seguintes valores.
| Valor de retorno | Description |
|---|---|
| 0 | O utilizador atual não é membro do grupo ou do cargo. |
| 1 | O utilizador atual é membro de um grupo ou função. |
| NULO | Nem o grupo nem o papel são válidos. Quando consultado por um login SQL Server ou por um login usando um papel de aplicação, devolve NULL para um grupo Windows. |
IS_MEMBER determina a pertença a um grupo do Windows examinando um token de acesso criado pelo Windows. O token de acesso não reflete alterações na pertença ao grupo que são feitas após um utilizador se ligar a uma instância do SQL Server. A pertença a um grupo Windows não pode ser consultada por um login SQL Server ou por um papel de aplicação SQL Server.
Para adicionar e remover membros de um papel de base de dados, use ALTER ROLE (Transact-SQL). Para adicionar e remover membros de um papel de servidor, use ALTERAR SERVER ROLE (Transact-SQL).
Esta função avalia a pertença à função, não a permissão subjacente. Por exemplo, o papel de base de dados fixo db_owner tem a permissão CONTROL DATABASE . Se o utilizador tiver a permissão CONTROLAR A BASE DE DADOS mas não for membro da função, esta função reporta corretamente que o utilizador não pertence à função db_owner , mesmo que o utilizador tenha as mesmas permissões.
Os membros do papel fixo de servidor sysadmin entram em todas as bases de dados como utilizadores dbo . Verificar a permissão do membro do sysadmin fixou o papel de servidor verifica as permissões para o DBO, não para o login original. Como o dbo não pode ser adicionado a um papel de base de dados e não existe nos grupos do Windows, o dbo devolve sempre 0 (ou NULL se o papel não existir).
Funções relacionadas
Para determinar se outro login SQL Server pertence a uma função de base de dados, use IS_ROLEMEMBER (Transact-SQL). Para determinar se um login SQL Server pertence a um papel de servidor, use IS_SRVROLEMEMBER (Transact-SQL).
Examples
O exemplo seguinte verifica se o utilizador atual pertence a uma função de base de dados ou a um grupo de domínio Windows.
-- Test membership in db_owner and print appropriate message.
IF IS_MEMBER ('db_owner') = 1
PRINT 'Current user is a member of the db_owner role'
ELSE IF IS_MEMBER ('db_owner') = 0
PRINT 'Current user is NOT a member of the db_owner role'
ELSE IF IS_MEMBER ('db_owner') IS NULL
PRINT 'ERROR: Invalid group / role specified';
GO
-- Execute SELECT if user is a member of ADVWORKS\Shipping.
IF IS_MEMBER ('ADVWORKS\Shipping') = 1
SELECT 'User ' + USER + ' is a member of ADVWORKS\Shipping.';
GO
Ver também
IS_SRVROLEMEMBER (Transact-SQL)
Principais (Motor de Base de Dados)
Vistas do catálogo de segurança (Transact-SQL)
Funções de segurança (Transact-SQL)