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:SQL Server
Base de Dados SQL do Azure
Azure SQL Managed Instance
Endpoint de análise SQL no Microsoft Fabric
Armazém no Microsoft Fabric
Base de dados SQL no Microsoft Fabric
Retorna o número de identificação de segurança (SID) para o nome de login especificado.
Transact-SQL convenções de sintaxe
Sintaxe
SUSER_SID ( [ 'login' ] [ , Param2 ] )
Arguments
'* iniciar sessão *'
Aplica-se a: SQL Server 2008 (10.0.x) e versões posteriores
O nome de login do usuário.
login é sysname.
login, que é opcional, pode ser um logon do SQL Server ou usuário ou grupo do Microsoft Windows. Se o login não for especificado, as informações sobre o contexto de segurança atual serão retornadas. Se o parâmetro contiver NULL, SUSER_SID retornará NULL.
Param2
Aplica-se a: SQL Server 2012 (11.x) e versões posteriores
Especifica se o nome de login é validado. Param2 é do tipo int e é opcional. Quando Param2 é 0, o nome de login não é validado. Quando Param2 não é especificado como 0, o nome de logon do Windows é verificado para ser exatamente o mesmo que o nome de logon armazenado no SQL Server.
Tipos de devolução
varbinary(85)
Observações
SUSER_SIDpode ser usado como uma DEFAULT restrição em qualquer um ou ALTER TABLECREATE TABLE .
SUSER_SID pode ser usado em uma lista de seleção, em uma WHERE cláusula e em qualquer lugar onde uma expressão seja permitida.
SUSER_SID deve ser sempre seguido de parênteses, mesmo que nenhum parâmetro seja especificado.
Quando chamado sem um argumento, SUSER_SID retorna o SID do contexto de segurança atual. Quando chamado sem um argumento dentro de um lote que mudou de contexto usando EXECUTE AS, SUSER_SID retorna o SID do contexto representado. Quando chamado de um contexto representado, SUSER_SID(ORIGINAL_LOGIN()) retorna o SID do contexto original.
Quando o agrupamento do SQL Server e o agrupamento do Windows são diferentes, SUSER_SID pode falhar quando o SQL Server e o Windows armazenam o logon em um formato diferente. Por exemplo, se o computador TestComputer Windows tiver o logon User e o SQL Server armazenar o logon como TESTCOMPUTER\User, a pesquisa do logon TestComputer\User pode falhar ao resolver o nome de logon corretamente. Para ignorar esta validação do nome de login, use Param2. Agrupamentos diferentes geralmente são uma causa do erro 15401 do SQL Server: Windows NT user or group '%s' not found. Check the name again.
Comentários para o Banco de Dados SQL do Azure, banco de dados SQL no Fabric
SUSER_SID sempre retorne o SID de login para o contexto de segurança atual. Use sys.database_principals para obter o SID de um login diferente.
A SUSER_SID instrução não suporta a execução usando um contexto de segurança representado através do EXECUTE AS.
Examples
A. Utilizar SUSER_SID
O exemplo a seguir retorna o número de identificação de segurança (SID) para o contexto de segurança atual.
SELECT SUSER_SID();
B. Use SUSER_SID com um login específico
Aplica-se a: SQL Server 2012 (11.x) e versões posteriores
O exemplo a seguir retorna o número de identificação de segurança para o logon do SQL Server sa .
SELECT SUSER_SID('sa');
GO
C. Usar SUSER_SID com um nome de usuário do Windows
Aplica-se a: SQL Server 2012 (11.x) e versões posteriores
O exemplo a seguir retorna o número de identificação de segurança para o usuário London\Workstation1do Windows.
SELECT SUSER_SID('London\Workstation1');
GO
D. Usar SUSER_SID como DEFAULT restrição
O exemplo a seguir usa SUSER_SID como uma DEFAULT restrição em uma CREATE TABLE instrução.
USE AdventureWorks2022;
GO
CREATE TABLE sid_example
(
login_sid VARBINARY(85) DEFAULT SUSER_SID(),
login_name VARCHAR(30) DEFAULT SYSTEM_USER,
login_dept VARCHAR(10) DEFAULT 'SALES',
login_date DATETIME DEFAULT GETDATE()
);
GO
INSERT sid_example DEFAULT VALUES;
GO
E. Compare o nome de logon do Windows com o nome de logon armazenado no SQL Server
Aplica-se a: SQL Server 2012 (11.x) e versões posteriores
O exemplo a seguir mostra como usar Param2 para obter o SID do Windows e usa esse SID como uma entrada para a SUSER_SNAME função. O exemplo fornece o logon no formato em que ele é armazenado no Windows (TestComputer\User), e retorna o logon no formato em que ele é armazenado no SQL Server (TESTCOMPUTER\User).
SELECT SUSER_SNAME(SUSER_SID('TestComputer\User', 0));