Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Banco de Dados SQL do Azure
Instância Gerenciada de SQL do Azure
Azure Synapse Analytics
Sistema de Plataforma de Análise (PDW)
Banco de dados SQL no Microsoft Fabric
Indica se o usuário atual é membro do grupo do Microsoft Windows, do grupo do Microsoft Entra ou da função de banco de dados do SQL Server especificado.
A função IS_MEMBER tem suporte para grupos do Microsoft Entra. O único caso em que IS_MEMBER não funciona é se o grupo for o administrador do Microsoft Entra para a instância SQL.
Convenções de sintaxe de Transact-SQL
Observação
O Microsoft Entra ID era conhecido como Azure Active Directory (Azure AD).
Sintaxe
IS_MEMBER ( { 'group' | 'role' } )
Argumentos
'group'
Aplica-se a: SQL Server 2008 (10.0.x) e posterior
É o nome do grupo do Windows ou do Microsoft Entra que está sendo verificado. Um grupo do Windows deve estar no formato Grupo de Domínio\. group é sysname.
'role'
É o nome da função SQL Server de servidor que está sendo verificada.
role é sysname e pode incluir funções fixas ou funções definidas pelo usuário do banco de dados, mas não funções de servidor.
Tipos de retorno
int
Comentários
IS_MEMBER retorna os seguintes valores.
| Valor retornado | Descrição |
|---|---|
| 0 | O usuário atual não é membro do grupo ou da função. |
| 1 | O usuário atual é membro do group ou role. |
| NULO | O grupo ou a função não são válidos. Quando consultado por um logon do SQL Server ou um logon que usa uma função de aplicativo, retorna NULL para um grupo do Windows. |
IS_MEMBER determina a associação do grupo Windows examinando um token de acesso que é criado pelo Windows. O token de acesso não reflete as alterações na associação de grupo feitas depois que um usuário se conecta a uma instância do SQL Server. A associação de grupo do Windows não pode ser consultada por um logon do SQL Server ou por uma função de aplicativo do SQL Server.
Para adicionar e remover membros de uma função de banco de dados, use ALTER ROLE (Transact-SQL). Para adicionar e remover membros de uma função de servidor, use ALTER SERVER ROLE (Transact-SQL).
Essa função avalia a associação de função, não a permissão subjacente. Por exemplo, o papel fixo de banco de dados db_owner tem a permissão CONTROL DATABASE . Se o usuário tem a permissão CONTROL DATABASE , mas não é membro do papel, essa função informa corretamente que o usuário não é membro do papel db_owner , mesmo que o usuário tenha as mesmas permissões.
Membros da função fixa de servidor sysadmin entram em cada banco de dados como o usuário dbo. Verificar permissões de membro da função fixa de servidor sysadmin verifica as permissões para dbo, não o logon original. Como dbo não pode ser adicionado a uma função de banco de dados e não existe em grupos do Windows, dbo sempre retorna 0 (ou NULL se a função não existir).
Funções relacionadas
Para determinar se outro logon em SQL Server é um membro de uma função de banco de dados, use IS_ROLEMEMBER (Transact-SQL). Para determinar se um logon do SQL Server é membro de uma função de servidor, use IS_SRVROLEMEMBER (Transact-SQL).
Exemplos
O exemplo a seguir verifica se o usuário atual é um membro de uma função de banco de dados ou de um grupo de domínio do 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
Consulte Também
IS_SRVROLEMEMBER (Transact-SQL)
Entidades (Mecanismo de Banco de Dados)
Exibições do catálogo de segurança (Transact-SQL)
Funções de segurança (Transact-SQL)