07/11/2018, 23:31

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ó 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ỘTCHÚ THÍCH
nameTên User đã được tạo trong lệnh CREATE USER
principal_idMã 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_nameTên sử dụng khi schema không xác định
create_dateNgày/Thời gian tạo User bằng lệnh CREATE USER
modify_dateNgày/Thời gian chỉnh sửa User
owning_principal_idId principal của User này
sidGiá trị sid được chỉ định trong lệnh CREATE LOGIN 
is_fixed_roleGiá trị 0 hoặc 1
authentication_typeNONE, 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ỘTCHÚ THÍCH
uidId của user (Giá trị số duy nhất)
statusKhông áp dụng
nameTên User đã được tạo trong lệnh CREATE USER
sidGiá trị sid được chỉ định trong lệnh CREATE LOGIN
rolesKhông áp dụng
createdateNgày/Thời gian tạo User bằng lệnh CREATE USER
updatedateNgày/Thời gian chỉnh sửa User
altuidKhông áp dụng
passwordKhông áp dụng
gidId của nhóm được gán cho User
environKhông áp dụng
hasdbaccessGiá trị 0 hoặc 1
isloginGiá trị 0 hoặc 1
isntnameGiá trị 0 hoặc 1
isntgroupGiá trị 0 hoặc 1
isntuserGiá trị 0 hoặc 1
issqluserGiá trị 0 hoặc 1
isaliasedGiá trị 0 hoặc 1
issqlroleGiá trị 0 hoặc 1
isapproleGiá trị 0 hoặc 1
0