22/08/2018, 11:18

Tìm Login trong SQL Server

Có truy vấn nào trong SQL Server giúp trả về tất cả các tài khoản đăng nhập cùng các thông tin về chúng không? Trên SQL Server có một bảng ảo danh mục (là một VIEW, hay bảng hệ thống) gọi là sys.sql_logins. Bạn có thể chạy truy vấn trên đây và kết quả sẽ trả về ...

Có truy vấn nào trong SQL Server giúp trả về tất cả các tài khoản đăng nhập cùng các thông tin về chúng không? Trên SQL Server có một bảng ảo danh mục (là một VIEW, hay bảng hệ thống) gọi là sys.sql_logins. Bạn có thể chạy truy vấn trên đây và kết quả sẽ trả về tất cả các Login được tạo trong SQL Server cùng thông tin về chúng.

Để lấy tất cả các tài khoản đăng nhập trong SQL Server, chạy lệnh dưới đây.

SELECT * 
FROM master.sys.sql_logins;

VIEW sys.sql_logins gồm các cột dưới đây

Cột  Giải thích
ten  Đây là ten_dangnhap được chỉ định trong lệnh CREATE LOGIN
id_uynhiem  Giá trị số
giatri_duynhat  Giá trị duy nhất được chỉ định trong lệnh CREATE LOGIN
loai 

Loại ủy nhiệm

S = người dùng SQL Server
U = người dùng Windows
G = nhóm Windows
A = quyền ứng dụng
R = quyền cơ sở dữ liệu
C = chứng thực được ánh xạ
K = khóa bất đối xứng được ánh xạ

loai_desc 

Mô tả cho các loại ủy nhiệm

SQL_USER
WINDOWS_USER
WINDOWS_GROUP
APPLICATION_ROLE
DATABASE_ROLE
CERTIFICATE_MAPPED_USER
ASSYMETRIC_KEY_MAPPED_USER

vohieuhoa  0 hoặc 1
ngay_tao  Ngày/thời gian tạo Login bằng lệnh CREATE LOGIN
ngay_chinhsua  Ngày/thời gian chỉnh sửa Login lần cuối bằng lệnh ALTER LOGIN
ten_cosodulieu_macdinh   Đây là cơ sở dữ liệu mặc định trong lệnh CREATE LOGIN hoặc ALTER LOGIN
ten_ngonngu_macdinh  Ngôn ngữ mặc định trong lệnh CREATE LOGIN hoặc ALTER LOGIN
id_chungthuc  Đây là chứng thực được dùng trong lệnh CREATE LOGIN hoặc ALTER LOGIN
kiemtra_chinhsach  0 hoặc 1, được chỉ định trong lệnh CREATE LOGIN hoặc ALTER LOGIN
kiemtra_thoihan  0 hoặc 1, được chỉ định trong lệnh CREATE LOGIN hoặc ALTER LOGIN
makhau_bam  Giá trị băm của mật khẩu

Tương thích trong các phiên bản cũ

Ở các bản SQL Server cũ, bạn có thể lấy thông tin của tất cả các Login bằng bảng hệ thống SQL Server 2000 như sys.syslogins, bằng lệnh dưới đây.

SELECT *
FROM master.sys.syslogins;

Bảng hệ thống sys.syslogins (SQL Server 2000) chứa các cột sau.

Cột  Giải thích
giatri_duynhat  Giá trị duy nhất được chỉ định trong lệnh CREATE LOGIN
trangthai  Không áp dụng
ngaytao  Ngày/thời gian tạo Login bằng lệnh CREATE LOGIN
ngaycapnhat  Ngày/thời gian chỉnh sửa Login lần cuối bằng lệnh ALTER LOGIN
accdate  Không áp dụng
totcpu Không áp dụng
totio Không áp dụng
spacelimit Không áp dụng
timelimit Không áp dụng
resultlimit Không áp dụng
ten  Đây là ten_dangnhap được chỉ định trong lệnh CREATE LOGIN.
tendb  Cơ sở dữ liệu mặc định
matkhau  NULL
ngonngu  Ngôn ngữ mặc định
tuchoidangnhap  0 hoặc 1
duoctruycap 0 hoặc 1
khongphaiten 0 hoặc 1
khongphainhom 0 hoặc 1
khongphainguoidung 0 hoặc 1
adminhethong 0 hoặc 1
adminbaomat 0 hoặc 1
adminsetup 0 hoặc 1
adminquytrinh 0 hoặc 1
adminodia 0 hoặc 1
nguoitaodb 0 hoặc 1
adminbulk 0 hoặc 1
tendangnhap  Đây là ten_dangnhap được chỉ định trong lệnh CREATE LOGIN.

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

Bài sau: Lệnh CREATE USER trong SQL Server

0