Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Database SQL di Microsoft Fabric
Mengembalikan nomor identifikasi keamanan (SID) untuk nama masuk yang ditentukan.
Sintaks
SUSER_SID ( [ 'login' ] [ , Param2 ] )
Argumen
'* login *'
Berlaku untuk: SQL Server 2008 (10.0.x) dan versi yang lebih baru
Nama login pengguna.
login adalah sysname.
login, yang bersifat opsional, dapat berupa login SQL Server atau pengguna atau grup Microsoft Windows. Jika login tidak ditentukan, informasi tentang konteks keamanan saat ini dikembalikan. Jika parameter berisi NULL, SUSER_SID mengembalikan NULL.
Param2
Berlaku untuk: SQL Server 2012 (11.x) dan versi yang lebih baru
Menentukan apakah nama masuk divalidasi. Param2 berjenis int dan bersifat opsional. Ketika Param2 adalah 0, nama login tidak divalidasi. Ketika Param2 tidak ditentukan sebagai 0, nama login Windows diverifikasi persis sama dengan nama masuk yang disimpan di SQL Server.
Tipe pengembalian
varbinary(85)
Keterangan
SUSER_SID dapat digunakan sebagai DEFAULT batasan dalam atau ALTER TABLECREATE TABLE.
SUSER_SID dapat digunakan dalam daftar pemilihan, dalam WHERE klausa, dan di mana saja ekspresi diizinkan.
SUSER_SID harus selalu diikuti oleh tanda kurung, meskipun tidak ada parameter yang ditentukan.
Ketika dipanggil tanpa argumen, SUSER_SID mengembalikan SID dari konteks keamanan saat ini. Ketika dipanggil tanpa argumen dalam batch yang telah beralih konteks dengan menggunakan EXECUTE AS, SUSER_SID mengembalikan SID dari konteks yang ditiru. Saat dipanggil dari konteks yang ditiru, SUSER_SID(ORIGINAL_LOGIN()) mengembalikan SID dari konteks asli.
Ketika kolase SQL Server dan kolase Windows berbeda, SUSER_SID dapat gagal ketika SQL Server dan Windows menyimpan login dalam format yang berbeda. Misalnya, jika komputer TestComputer Windows memiliki login User dan SQL Server menyimpan login sebagai TESTCOMPUTER\User, pencarian login TestComputer\User mungkin gagal menyelesaikan nama masuk dengan benar. Untuk melewati validasi nama masuk ini, gunakan Param2. Kolase yang berbeda sering menjadi penyebab kesalahan SQL Server 15401: Windows NT user or group '%s' not found. Check the name again.
Keterangan untuk Azure SQL Database, database SQL di Fabric
SUSER_SID selalu kembalikan SID masuk untuk konteks keamanan saat ini. Gunakan sys.database_principals untuk mendapatkan SID dari login yang berbeda.
Pernyataan ini SUSER_SID tidak mendukung eksekusi menggunakan konteks keamanan yang ditiru melalui EXECUTE AS.
Contoh
J. Gunakan SUSER_SID
Contoh berikut mengembalikan nomor identifikasi keamanan (SID) untuk konteks keamanan saat ini.
SELECT SUSER_SID();
B. Menggunakan SUSER_SID dengan login tertentu
Berlaku untuk: SQL Server 2012 (11.x) dan versi yang lebih baru
Contoh berikut mengembalikan nomor identifikasi keamanan untuk login SQL Server sa .
SELECT SUSER_SID('sa');
GO
C. Menggunakan SUSER_SID dengan nama pengguna Windows
Berlaku untuk: SQL Server 2012 (11.x) dan versi yang lebih baru
Contoh berikut mengembalikan nomor identifikasi keamanan untuk pengguna London\Workstation1Windows .
SELECT SUSER_SID('London\Workstation1');
GO
D. Menggunakan SUSER_SID sebagai batasan DEFAULT
Contoh berikut menggunakan SUSER_SID sebagai DEFAULT batasan dalam pernyataan 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. Membandingkan nama masuk Windows dengan nama masuk yang disimpan di SQL Server
Berlaku untuk: SQL Server 2012 (11.x) dan versi yang lebih baru
Contoh berikut menunjukkan cara menggunakan Param2 untuk mendapatkan SID dari Windows dan menggunakan SID tersebut sebagai input ke SUSER_SNAME fungsi. Contoh menyediakan login dalam format di mana ia disimpan di Windows (TestComputer\User), dan mengembalikan login dalam format di mana ia disimpan di SQL Server (TESTCOMPUTER\User).
SELECT SUSER_SNAME(SUSER_SID('TestComputer\User', 0));