Tìm User trong SQL Server

Có truy vấn nào trên SQL Server trả về tất cả những User đã được tạo ra hay không?

Trên SQL Server có một bảng hệ thống được gọi là sys.database_principals. Bạn có thể chạy truy vấn trên đây và kết quả trả về là tất cả các User đã được tạo ra trên cơ sở dữ liệu và thông tin về chúng.

Để lấy tất cả các User trong SQL Server, chạy lệnh dưới đây:

SELECT *
FROM master.sys.database_principals;

Hệ thống sys.database_principals gồm các cột sau:

CỘT CHÚ THÍCH
name Tên User đã được tạo trong lệnh CREATE USER
principal_id Mã principal (giá trị số)
type

Loại principal:

S = User của SQL Server
U = User của Windows 
G = Windows group
A = Application role
R = Database role
C = Certificate đã ánh xạ
K = Asymmetric key (Khóa bất đối xứng) đã ánh xạ

type_desc

Mô tả các loại principal:

SQL_USER
WINDOWS_USER
WINDOWS_GROUP
APPLICATION_ROLE
DATABASE_ROLE
CERTIFICATE_MAPPED_USER
ASSYMETRIC_KEY_MAPPED_USER

default_schema_name Tên sử dụng khi schema không xác định
create_date Ngày/Thời gian tạo User bằng lệnh CREATE USER
modify_date Ngày/Thời gian chỉnh sửa User
owning_principal_id Id principal của User này
sid Giá trị sid được chỉ định trong lệnh CREATE LOGIN 
is_fixed_role Giá trị 0 hoặc 1
authentication_type NONE, WINDOWS, INSTANCE 
default_language_name  
default_language_lcid  

Đối với các phiên bản cũ

Ở các bản SQL Server phiên bản cũ, bạn có thể truy xuất tất cả các User bằng cách sử dụng bảng sys.sysusers trong SQL Server 2000. Lệnh như sau:

SELECT *
FROM master.sys.sysusers;
CỘT CHÚ THÍCH
uid Id của user (Giá trị số duy nhất)
status Không áp dụng
name Tên User đã được tạo trong lệnh CREATE USER
sid Giá trị sid được chỉ định trong lệnh CREATE LOGIN
roles Không áp dụng
createdate Ngày/Thời gian tạo User bằng lệnh CREATE USER
updatedate Ngày/Thời gian chỉnh sửa User
altuid Không áp dụng
password Không áp dụng
gid Id của nhóm được gán cho User
environ Không áp dụng
hasdbaccess Giá trị 0 hoặc 1
islogin Giá trị 0 hoặc 1
isntname Giá trị 0 hoặc 1
isntgroup Giá trị 0 hoặc 1
isntuser Giá trị 0 hoặc 1
issqluser Giá trị 0 hoặc 1
isaliased Giá trị 0 hoặc 1
issqlrole Giá trị 0 hoặc 1
isapprole Giá trị 0 hoặc 1

Xem thêm: 

Bài trước: Lệnh DROP USER trong SQL Server

Bài sau: Sử dụng chú thích trong SQL Server

Thứ Năm, 22/08/2019 11:06
31 👨 1.052