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
Azure SQL Database
Azure SQL Managed Instance
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. Use SUSER_SID como uma restrição DEFAULT
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));