Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL databáze v Microsoft Fabric
Vrátí identifikační číslo zabezpečení (SID) pro zadané přihlašovací jméno.
Syntaxe
SUSER_SID ( [ 'login' ] [ , Param2 ] )
Arguments
'* přihlášení *'
Platí pro: SQL Server 2008 (10.0.x) a novější verze
Přihlašovací jméno uživatele.
Přihlášení je sysname.
přihlášení, které je volitelné, může být přihlášení k SQL Serveru nebo uživatel nebo skupina systému Microsoft Windows. Pokud není zadané přihlášení , vrátí se informace o aktuálním kontextu zabezpečení. Pokud parametr obsahuje NULL, SUSER_SID vrátí NULL.
Param2
Platí pro: SQL Server 2012 (11.x) a novější verze
Určuje, jestli je přihlašovací jméno ověřeno. Parametr param2 je typu int a je volitelný. Pokud je parametr Param2 0, přihlašovací jméno se neověří. Pokud parametr Param2 není zadán jako 0, ověří se, že přihlašovací jméno systému Windows je naprosto stejné jako přihlašovací jméno uložené na SQL Serveru.
Návratové typy
varbinary(85)
Poznámky
SUSER_SID lze použít jako DEFAULT omezení v obou ALTER TABLE nebo CREATE TABLE.
SUSER_SID lze použít v seznamu select, v WHERE klauzuli a kdekoli je povolený výraz.
SUSER_SID musí vždy následovat závorky, i když není zadán žádný parametr.
Při zavolání bez argumentu SUSER_SID vrátí identifikátor SID aktuálního kontextu zabezpečení. Při volání bez argumentu v dávce, která přepnul kontext pomocí , EXECUTE ASSUSER_SID vrátí identifikátor SID zosobněného kontextu. Při zavolání z zosobněného kontextu SUSER_SID(ORIGINAL_LOGIN()) vrátí identifikátor SID původního kontextu.
Pokud se kolace SQL Serveru a kolace Windows liší, může dojít k selhání, SUSER_SID když SQL Server a Windows uloží přihlášení v jiném formátu. Pokud má například počítač TestComputer s Windows přihlašovací jméno a SQL Server uloží přihlášení User jako TESTCOMPUTER\User, vyhledávání přihlášení TestComputer\User se nemusí podařit správně přeložit přihlašovací jméno. Pokud chcete toto ověření přihlašovacího jména přeskočit, použijte parametr Param2. Rozdílové kolace jsou často příčinou chyby SQL Serveru 15401: Windows NT user or group '%s' not found. Check the name again.
Poznámky ke službě Azure SQL Database, databázi SQL v prostředcích infrastruktury
SUSER_SID vždy vrátí identifikátor SID přihlášení pro aktuální kontext zabezpečení. K získání identifikátoru SID jiného přihlášení použijte sys.database_principals .
Příkaz SUSER_SID nepodporuje provádění pomocí zosobněného kontextu zabezpečení prostřednictvím EXECUTE AS.
Examples
A. Použití SUSER_SID
Následující příklad vrátí identifikační číslo zabezpečení (SID) pro aktuální kontext zabezpečení.
SELECT SUSER_SID();
B. Použití SUSER_SID s konkrétním přihlášením
Platí pro: SQL Server 2012 (11.x) a novější verze
Následující příklad vrátí identifikační číslo zabezpečení pro přihlášení k SQL Serveru sa .
SELECT SUSER_SID('sa');
GO
C. Použití SUSER_SID s uživatelským jménem systému Windows
Platí pro: SQL Server 2012 (11.x) a novější verze
Následující příklad vrátí identifikační číslo zabezpečení pro uživatele London\Workstation1systému Windows .
SELECT SUSER_SID('London\Workstation1');
GO
D. Použití SUSER_SID jako výchozího omezení
Následující příklad používá SUSER_SID jako DEFAULT omezení v CREATE TABLE příkazu.
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. Porovnání přihlašovacího jména Windows s přihlašovacím jménem uloženým na SQL Serveru
Platí pro: SQL Server 2012 (11.x) a novější verze
Následující příklad ukazuje, jak pomocí Param2 získat IDENTIFIKÁTOR SID ze systému Windows a používá tento identifikátor SID jako vstup do SUSER_SNAME funkce. Příklad poskytuje přihlášení ve formátu, ve kterém je uložen ve Windows (TestComputer\User) a vrátí přihlášení ve formátu, ve kterém je uložen v SQL Serveru (TESTCOMPUTER\User).
SELECT SUSER_SNAME(SUSER_SID('TestComputer\User', 0));