Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-database in Microsoft Fabric Preview
Retourneert het beveiligingsidentificatienummer (SID) voor de opgegeven aanmeldingsnaam.
Transact-SQL syntaxis-conventies
Syntaxis
SUSER_SID ( [ 'login' ] [ , Param2 ] )
Arguments
'* aanmelden *'
Van toepassing op: SQL Server 2008 (10.0.x) en latere versies
De aanmeldingsnaam van de gebruiker.
aanmelden is sysname.
aanmelden, optioneel, kan een SQL Server-aanmelding of Microsoft Windows-gebruiker of -groep zijn. Als aanmelding niet is opgegeven, wordt informatie over de huidige beveiligingscontext geretourneerd. Als de parameter bevat NULL, SUSER_SID wordt deze geretourneerd NULL.
Param2
Van toepassing op: SQL Server 2012 (11.x) en latere versies
Hiermee geeft u op of de aanmeldingsnaam is gevalideerd. Param2 is van het type int en is optioneel. Wanneer Param2 0 is, wordt de aanmeldingsnaam niet gevalideerd. Wanneer Param2 niet is opgegeven als 0, wordt gecontroleerd of de Windows-aanmeldingsnaam exact hetzelfde is als de aanmeldingsnaam die is opgeslagen in SQL Server.
Retourtypen
varbinary(85)
Opmerkingen
SUSER_SID kan worden gebruikt als een DEFAULT beperking in ALTER TABLE of CREATE TABLE.
SUSER_SID kan worden gebruikt in een selectielijst, in een WHERE component en overal waar een expressie is toegestaan.
SUSER_SID moet altijd worden gevolgd door haakjes, zelfs als er geen parameter is opgegeven.
Wanneer aangeroepen zonder argument, SUSER_SID retourneert u de SID van de huidige beveiligingscontext. Wanneer aangeroepen zonder argument in een batch die context heeft gewijzigd met behulp EXECUTE ASvan, SUSER_SID retourneert u de SID van de geïmiteerde context. Wanneer aangeroepen vanuit een geïmiteerde context, SUSER_SID(ORIGINAL_LOGIN()) wordt de SID van de oorspronkelijke context geretourneerd.
Wanneer de SQL Server-sortering en de Windows-sortering verschillen, SUSER_SID kan dit mislukken wanneer SQL Server en Windows de aanmelding in een andere indeling opslaan. Als de Windows-computer TestComputer bijvoorbeeld de aanmelding User heeft en SQL Server de aanmelding TESTCOMPUTER\Useropslaat als, kan het opzoeken van de aanmelding TestComputer\User de aanmeldingsnaam mogelijk niet correct oplossen. Als u deze validatie van de aanmeldingsnaam wilt overslaan, gebruikt u Param2. Verschillende sorteringen zijn vaak een oorzaak van SQL Server-fout 15401: Windows NT user or group '%s' not found. Check the name again.
Opmerkingen voor Azure SQL Database, SQL Database in Fabric
SUSER_SID retourneert altijd de aanmeldings-SID voor de huidige beveiligingscontext. Gebruik sys.database_principals om de SID van een andere aanmelding te verkrijgen.
De SUSER_SID instructie biedt geen ondersteuning voor uitvoering met behulp van een geïmiteerde beveiligingscontext via EXECUTE AS.
Voorbeelden
Eén. SUSER_SID gebruiken
In het volgende voorbeeld wordt het beveiligingsidentificatienummer (SID) geretourneerd voor de huidige beveiligingscontext.
SELECT SUSER_SID();
B. Gebruik SUSER_SID met een specifieke aanmelding
Van toepassing op: SQL Server 2012 (11.x) en latere versies
In het volgende voorbeeld wordt het beveiligingsidentificatienummer voor de SQL Server-aanmelding sa geretourneerd.
SELECT SUSER_SID('sa');
GO
C. Gebruik SUSER_SID met een Windows-gebruikersnaam
Van toepassing op: SQL Server 2012 (11.x) en latere versies
In het volgende voorbeeld wordt het beveiligingsidentificatienummer voor de Windows-gebruiker London\Workstation1geretourneerd.
SELECT SUSER_SID('London\Workstation1');
GO
D. Gebruik SUSER_SID als standaardbeperking
In het volgende voorbeeld wordt een DEFAULT beperking in een CREATE TABLE instructie gebruiktSUSER_SID.
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. Vergelijk de Windows-aanmeldingsnaam met de aanmeldingsnaam die is opgeslagen in SQL Server
Van toepassing op: SQL Server 2012 (11.x) en latere versies
In het volgende voorbeeld ziet u hoe u Param2 gebruikt om de SID van Windows te verkrijgen en die SID als invoer voor de SUSER_SNAME functie gebruikt. Het voorbeeld bevat de aanmelding in de indeling waarin deze is opgeslagen in Windows (TestComputer\User) en retourneert de aanmelding in de indeling waarin deze is opgeslagen in SQL Server (TESTCOMPUTER\User).
SELECT SUSER_SNAME(SUSER_SID('TestComputer\User', 0));