Thay đổi mật khẩu user, login trong SQL Server

Việc đổi mật khẩu người dùng hoặc đổi mật khẩu login là trường hợp không thể tránh khỏi trong quá trình làm việc trên SQL Server. Bạn có thể phải đổi mật khẩu vì lý do bảo mật hay những lý do cụ thể khác. Vậy làm sao để có thể đổi mật khẩu cho user/login trong SQL Server?

Trong SQL Server, mật khẩu được liên kết với SQL Server Login. Login sau đó được ánh xạ đến database user. Vì thế, để đổi password trong SQL Server, bạn cần thực thi lệnh ALTER LOGIN mà Quantrimang.com đã giới thiệu trong những bài trước. Lệnh này được dùng để chỉnh sửa định danh đã dùng để kết nối tới SQL Server.

Lệnh thay đổi mật khẩu trong SQL Server

Như đã nói, ta sẽ sử dụng lệnh ALTER LOGIN để thay đổi mật khẩu trong SQL Server, cụ thể cách dùng lệnh này như sau:

ALTER LOGIN login_name
WITH PASSWORD = 'password' | hashed_password HASHED
 [ OLD_PASSWORD = 'old_password' ]
 | MUST_CHANGE
 | UNLOCK
[ CHECK_EXPIRATION = ON ];

Tham số:

  • login_name: Tên Login có password cần thay đổi. Login này được liên kết với database user có mật khẩu bạn muốn đổi.
  • password: Password mới muốn gán.
  • hashed_password: Giá trị hash mới của mật khẩu muốn gán vào Login.
  • old_password: Password cũ.
  • MUST_CHANGE: Bạn sử dụng tham số này để buộc password phải được thay đổi khi Login được sử dụng lần đầu tiên, sau khi chạy lệnh ALTER LOGIN.
  • UNLOCK: Mở khóa Login đã bị khóa.
  • CHECK_EXPIRATION: Theo mặc định tham số này được đặt là OFF. Nó sẽ quyết định xem chính sách hết hạn mật khẩu có được thực thi hay không. Bạn phải chỉ định CHECK_EXPIRATION = ON khi sử dụng tham số MUST_CHANGE.

Ví dụ thay đổi mật khẩu trong SQL Server

Ví dụ 1: Ta sẽ sử dụng lệnh ALTER LOGIN để thay đổi mật khẩu của login qtm thành quantrimang (thay đổi mật khẩu bình thường):

ALTER LOGIN qtm;
WITH PASSWORD = 'quantrimang';

Ví dụ 2: Thay đổi mật khẩu và buộc mật khẩu phải được thay đổi khi đăng nhập lần đầu, sau khi lệnh ALTER LOGIN được thực thi trên SQL Server:

ALTER LOGIN qtm
WITH PASSWORD = 'quantrimang' MUST_CHANGE,
CHECK_EXPIRATION = ON;

Lệnh trên sẽ thay đổi Login có tên là qtm, và đổi mật khẩu của Login này thành ‘quantrimang’. Nhưng vì có sự xuất hiện của tùy chọn MUST CHANGE và CHECK_EXPIRATION được thiết lập là ON, sau khi lệnh được thực thi, mật khẩu sẽ bị buộc phải thay đổi trong phiên đăng nhập đầu tiên vào SQL SERVER. Bạn có thể dùng lệnh này để reset lại mật khẩu khi đã tạo mật khẩu tạm cho Login.