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
Endpoint de SQL Analytics no Microsoft Fabric
Armazém no Microsoft Fabric
Banco de Dados SQL no Microsoft Fabric
Retorna o SID (número de identificação de segurança) para o nome de logon especificado.
Convenções de sintaxe de Transact-SQL
Sintaxe
SUSER_SID ( [ 'login' ] [ , Param2 ] )
Argumentos
'* logon *'
Aplica-se a: SQL Server 2008 (10.0.x) e versões posteriores
O nome de logon do usuário.
login é sysname.
login, que é opcional, pode ser um logon do SQL Server ou um usuário ou grupo do Microsoft Windows. Se login não for especificado, serão retornadas informações sobre o contexto de segurança atual. 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 logon é validado. Param2 é do tipo int e é opcional. Quando Param2 for 0, o nome de logon não será validado. QuandoParam2 não estiver especificado como 0, será verificado se o nome de logon do Windows é exatamente igual ao nome de logon armazenado no SQL Server.
Tipos de retorno
varbinary(85)
Comentários
SUSER_SID pode ser usado como uma DEFAULT restrição em um ALTER TABLE ou CREATE TABLE.
SUSER_SID pode ser usado em uma lista de seleção, em uma WHERE cláusula e em qualquer lugar em que uma expressão é permitida.
SUSER_SID sempre deve ser seguido por 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 em um lote que alternou o 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 a ordenação do SQL Server e a ordenação 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 poderá falhar ao resolver o nome de logon corretamente. Para ignorar essa validação do nome de logon, use Param2. Ordenações 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 sobre o Banco de Dados SQL do Azure, o Banco de Dados SQL no Fabric
SUSER_SID sempre retorne o SID de logon para o contexto de segurança atual. Use sys.database_principals para obter o SID de um logon diferente.
A SUSER_SID instrução não dá suporte à execução usando um contexto de segurança representado por meio EXECUTE ASde .
Exemplos
a. Usar SUSER_SID
O exemplo a seguir retorna o SID (número de identificação de segurança) para o contexto de segurança atual.
SELECT SUSER_SID();
B. Usar SUSER_SID com um logon 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 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 do Windows London\Workstation1.
SELECT SUSER_SID('London\Workstation1');
GO
D. Use SUSER_SID como restrição DEFAULT
O exemplo a seguir usa SUSER_SID como uma restrição DEFAULT em uma instrução CREATE TABLE.
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. Comparar 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 função SUSER_SNAME. O exemplo fornece o logon no formato em que está armazenado no Windows (TestComputer\User) e o retorna no formato em que está armazenado no SQL Server (TESTCOMPUTER\User).
SELECT SUSER_SNAME(SUSER_SID('TestComputer\User', 0));