มีคำสั่งใน SQL Server ที่คืนค่าผู้ใช้ (User) ที่สร้างทั้งหมดหรือไม่?
ใน SQL Server มีตารางระบบชื่อ sys.database_principals คุณสามารถรันคำสั่งด้านบนและผลลัพธ์คือ User ทั้งหมดที่สร้างบนฐานข้อมูลและข้อมูลเกี่ยวกับพวกเขา
เพื่อดึง User ทั้งหมดใน SQL Server ให้รันคำสั่งต่อไปนี้:
SELECT *
FROM master.sys.database_principals;
ระบบ sys.database_principals ประกอบด้วยคอลัมน์ต่อไปนี้:
| คอลัมน์ | หมายเหตุ |
|---|---|
| name | ชื่อผู้ใช้ที่สร้างในคำสั่ง CREATE USER |
| principal_id | รหัส principal (ค่าตัวเลข) |
| type | ประเภท principal: S=SQL User, U=Windows User, G=Windows Group, A=Application Role, R=Database Role, C=Certificate Mapped, K=Asymmetric Key Mapped |
| type_desc | คำอธิบายประเภท: SQL_USER, WINDOWS_USER, WINDOWS_GROUP, APPLICATION_ROLE, DATABASE_ROLE, CERTIFICATE_MAPPED_USER, ASSYMETRIC_KEY_MAPPED_USER |
| default_schema_name | ชื่อที่ใช้เมื่อไม่ได้ระบุ schema |
| create_date | วันที่/เวลาสร้าง User ด้วย CREATE USER |
| modify_date | วันที่/เวลาแก้ไข User |
| owning_principal_id | ID principal ของ User |
| sid | ค่า SID ที่ระบุในคำสั่ง CREATE LOGIN |
| is_fixed_role | 0 หรือ 1 |
| authentication_type | NONE, WINDOWS, INSTANCE |
| default_language_name | ชื่อภาษาเริ่มต้น |
| default_language_lcid | LCID ภาษาเริ่มต้น |
สำหรับเวอร์ชันเก่า
ใน SQL Server เวอร์ชันเก่า สามารถดึง User ทั้งหมดได้โดยใช้ตาราง sys.sysusers ใน SQL Server 2000 คำสั่งดังนี้:
SELECT *
FROM master.sys.sysusers;
ตาราง sys.sysusers มีคอลัมน์: uid, status, name, sid, roles, createdate, updatedate, altuid, password, gid, environ, hasdbaccess, islogin, isntname, isntgroup, isntuser, issqluser, isaliased, issqlrole, isapprole
ดูเพิ่มเติม:
- ค้นหา Login ใน SQL Server
- คำสั่ง CREATE USER ใน SQL Server