13.7.1.10 & NBSP; Đặt câu lệnh Mật khẩu
SET PASSWORD [FOR user] auth_option
[REPLACE 'current_auth_string']
[RETAIN CURRENT PASSWORD]
auth_option: {
= 'auth_string'
| TO RANDOM
}
Câu lệnh SET PASSWORD
gán mật khẩu cho tài khoản người dùng MySQL. Mật khẩu có thể được chỉ định rõ ràng trong câu lệnh hoặc được tạo ngẫu nhiên bởi MySQL. Câu lệnh cũng có thể bao gồm một mệnh đề xác nhận mật khẩu chỉ định mật khẩu hiện tại tài khoản sẽ được thay thế và một điều khoản quản lý liệu tài khoản có mật khẩu phụ hay không. '
auth_string
'và '
current_auth_string
' Mỗi đại diện cho một mật khẩu Cleartext [không được mã hóa].
Ghi chú
Thay vì sử dụng SET PASSWORD
để gán mật khẩu,
ALTER USER user IDENTIFIED BY 'auth_string';
0 là câu lệnh ưa thích cho các thay đổi tài khoản, bao gồm cả việc gán mật khẩu. Ví dụ:ALTER USER user IDENTIFIED BY 'auth_string';
Ghi chú
Thay vì sử dụng SET PASSWORD
để gán mật khẩu,
ALTER USER user IDENTIFIED BY 'auth_string';
0 là câu lệnh ưa thích cho các thay đổi tài khoản, bao gồm cả việc gán mật khẩu. Ví dụ:Các điều khoản để tạo mật khẩu ngẫu nhiên, xác minh mật khẩu và mật khẩu thứ cấp chỉ áp dụng cho các tài khoản sử dụng plugin xác thực lưu trữ thông tin đăng nhập nội bộ cho MySQL. Đối với các tài khoản sử dụng plugin thực hiện xác thực đối với hệ thống thông tin đăng nhập bên ngoài MySQL, quản lý mật khẩu cũng phải được xử lý bên ngoài chống lại hệ thống đó. Để biết thêm thông tin về lưu trữ thông tin nội bộ, xem Phần & NBSP; 6.2.15, Quản lý mật khẩu trực tuyến.
Điều khoản
1 'thực hiện xác minh mật khẩu và có sẵn kể từ MySQL 8.0.13. Nếu được đưa ra:ALTER USER user IDENTIFIED BY 'auth_string';
2 Chỉ định mật khẩu hiện tại tài khoản sẽ được thay thế, dưới dạng chuỗi Cleartext [không được mã hóa].ALTER USER user IDENTIFIED BY 'auth_string';
Điều khoản phải được đưa ra nếu cần thay đổi mật khẩu cho tài khoản để chỉ định mật khẩu hiện tại, vì xác minh rằng người dùng đang cố gắng thực hiện thay đổi thực sự biết mật khẩu hiện tại.
Điều khoản là tùy chọn nếu mật khẩu thay đổi cho tài khoản có thể nhưng không cần chỉ định mật khẩu hiện tại.
Câu lệnh không thành công nếu mệnh đề được đưa ra nhưng không khớp với mật khẩu hiện tại, ngay cả khi mệnh đề là tùy chọn.
ALTER USER user IDENTIFIED BY 'auth_string';
2 chỉ có thể được chỉ định khi thay đổi mật khẩu tài khoản cho người dùng hiện tại.Để biết thêm thông tin về xác minh mật khẩu bằng cách chỉ định mật khẩu hiện tại, hãy xem Phần & NBSP; 6.2.15, Quản lý mật khẩu.
Điều khoản
4 thực hiện khả năng từ bi kép và có sẵn kể từ MySQL 8.0.14. Nếu được đưa ra:ALTER USER user IDENTIFIED BY 'auth_string';
4 giữ lại mật khẩu hiện tại của tài khoản làm mật khẩu phụ, thay thế bất kỳ mật khẩu phụ hiện có nào. Mật khẩu mới trở thành mật khẩu chính, nhưng máy khách có thể sử dụng tài khoản để kết nối với máy chủ bằng mật khẩu chính hoặc mật khẩu chính. .ALTER USER user IDENTIFIED BY 'auth_string';
Nếu bạn chỉ định
4 cho một tài khoản có mật khẩu chính trống, câu lệnh sẽ không thành công.ALTER USER user IDENTIFIED BY 'auth_string';
Nếu một tài khoản có mật khẩu phụ và bạn thay đổi mật khẩu chính của nó mà không cần chỉ định
ALTER USER user IDENTIFIED BY 'auth_string';
9, mật khẩu phụ vẫn không thay đổi.Để biết thêm thông tin về việc sử dụng mật khẩu kép, hãy xem Phần & NBSP; 6.2.15, Quản lý mật khẩu trực tuyến.
SET PASSWORD
cho phép các cú pháp
1 này:SET PASSWORD FOR 'jeffrey'@'localhost' = 'auth_string';
2 'SET PASSWORD FOR 'jeffrey'@'localhost' = 'auth_string';
Chỉ định tài khoản mật khẩu theo nghĩa đen đã cho.
3SET PASSWORD FOR 'jeffrey'@'localhost' = 'auth_string';
Gán tài khoản một mật khẩu được tạo ngẫu nhiên bởi MySQL. Câu lệnh cũng trả về mật khẩu ClearText trong một kết quả được đặt để cung cấp cho người dùng hoặc ứng dụng thực thi câu lệnh.
Để biết chi tiết về tập kết quả và đặc điểm của mật khẩu được tạo ngẫu nhiên, hãy xem tạo mật khẩu ngẫu nhiên.
Tạo mật khẩu ngẫu nhiên có sẵn kể từ MySQL 8.0.18.
Quan trọng
Trong một số trường hợp,
SET PASSWORD FOR 'jeffrey'@'localhost' = 'auth_string';
4 có thể được ghi lại trong nhật ký máy chủ hoặc ở phía máy khách trong một tệp lịch sử như SET PASSWORD FOR 'jeffrey'@'localhost' = 'auth_string';
5, điều đó có nghĩa là mật khẩu ClearText có thể được đọc bởi bất kỳ ai có quyền truy cập vào thông tin đó. Để biết thông tin về các điều kiện theo đó điều này xảy ra đối với nhật ký máy chủ và cách kiểm soát nó, xem Phần & NBSP; 6.1.2.3, mật khẩu và đăng nhập. Để biết thông tin tương tự về ghi nhật ký phía máy khách, xem Phần & NBSP; 4.5.1.3, Mang MySQL Client ghi nhật ký.SET PASSWORD
có thể được sử dụng có hoặc không có mệnh đề
7 đặt tên rõ ràng một tài khoản người dùng:SET PASSWORD FOR 'jeffrey'@'localhost' = 'auth_string';
SET PASSWORD FOR 'jeffrey'@'localhost' = 'auth_string';
Với mệnh đề
8, câu lệnh đặt mật khẩu cho tài khoản được đặt tên, phải tồn tại:SET PASSWORD FOR 'jeffrey'@'localhost' = 'auth_string';
SET PASSWORD = 'auth_string';
Không có điều khoản
8, câu lệnh đặt mật khẩu cho người dùng hiện tại:SET PASSWORD FOR 'jeffrey'@'localhost' = 'auth_string';
SELECT CURRENT_USER[];
Bất kỳ máy khách nào kết nối với máy chủ bằng tài khoản không đồng nghĩa đều có thể thay đổi mật khẩu cho tài khoản đó. .
SET PASSWORD FOR 'bob'@'%.example.org' = 'auth_string';
Tên máy chủ một phần của tên tài khoản, nếu bị bỏ qua, mặc định là
SET PASSWORD = 'auth_string';
2. SET PASSWORD
diễn giải chuỗi dưới dạng chuỗi ClearText, chuyển nó đến plugin xác thực được liên kết với tài khoản và lưu trữ kết quả được trả về bởi plugin trong hàng tài khoản trong bảng hệ thống
SET PASSWORD = 'auth_string';
4. .Đặt mật khẩu cho một tài khoản được đặt tên [với mệnh đề
SET PASSWORD FOR 'jeffrey'@'localhost' = 'auth_string';
7] yêu cầu đặc quyền SET PASSWORD = 'auth_string';
6 cho lược đồ hệ thống SET PASSWORD = 'auth_string';
7. Đặt mật khẩu cho chính mình [đối với một tài khoản không ẩn danh không có mệnh đề SET PASSWORD FOR 'jeffrey'@'localhost' = 'auth_string';
7] không yêu cầu đặc quyền đặc biệt.Các câu lệnh sửa đổi mật khẩu thứ cấp yêu cầu các đặc quyền này:
Đặc quyền
9 được yêu cầu sử dụng mệnh đềSET PASSWORD = 'auth_string';
9 cho các câu lệnhALTER USER user IDENTIFIED BY 'auth_string';
1 áp dụng cho tài khoản của riêng bạn. Đặc quyền được yêu cầu để thao tác mật khẩu phụ của riêng bạn vì hầu hết người dùng chỉ yêu cầu một mật khẩu.SELECT CURRENT_USER[];
Nếu một tài khoản được phép thao tác mật khẩu thứ cấp cho tất cả các tài khoản, thì nó sẽ được cấp đặc quyền
2 thay vìSELECT CURRENT_USER[];
9.SET PASSWORD = 'auth_string';
Khi biến hệ thống
SELECT CURRENT_USER[];
4 được bật, SET PASSWORD
yêu cầu đặc quyền SELECT CURRENT_USER[];
6 [hoặc đặc quyền SELECT CURRENT_USER[];
7 không dùng nữa], ngoài bất kỳ đặc quyền cần thiết nào khác.Để biết thêm thông tin về việc thiết lập mật khẩu và các plugin xác thực, xem Phần & NBSP; 6.2.14, Gán mật khẩu tài khoản, và Phần & NBSP; 6.2.17, Xác thực có thể cắm được.