Câu lệnh SET PASSWORD
gán mật khẩu cho tài khoản người dùng MySQL, được chỉ định dưới dạng văn bản rõ ràng [không được mã hóa] hoặc giá trị được mã hóa
'
auth_string
' đại diện cho mật khẩu văn bản rõ ràng'
hash_string
' đại diện cho một mật khẩu được mã hóa
Trong một số trường hợp, SET PASSWORD
có thể được ghi lại trong nhật ký máy chủ hoặc phía máy khách trong tệp lịch sử, chẳng hạn như
SET PASSWORD FOR 'jeffrey'@'localhost' = password_option
;
1, có nghĩa là bất kỳ ai có quyền truy cập vào thông tin đó đều có thể đọc được mật khẩu văn bản rõ ràng. Để biết thông tin về các điều kiện xảy ra điều này đối với nhật ký máy chủ và cách kiểm soát, hãy xem Phần 6. 1. 2. 3, “Mật khẩu và ghi nhật ký”. Để biết thông tin tương tự về ghi nhật ký phía máy khách, hãy xem Phần 4. 5. 1. 3, “Ghi nhật ký máy khách mysql”SET PASSWORD
có thể được sử dụng có hoặc không có mệnh đề
SET PASSWORD FOR 'jeffrey'@'localhost' = password_option
;
3 nêu rõ tên tài khoản người dùngVới mệnh đề
SET PASSWORD FOR 'jeffrey'@'localhost' =
4, câu lệnh đặt mật khẩu cho tài khoản được đặt tên, tài khoản này phải tồn tạipassword_option
;SET PASSWORD FOR 'jeffrey'@'localhost' =
password_option
;Không có mệnh đề
SET PASSWORD FOR 'jeffrey'@'localhost' =
4, câu lệnh đặt mật khẩu cho người dùng hiện tạipassword_option
;SET PASSWORD =
password_option
;Bất kỳ khách hàng nào kết nối với máy chủ bằng tài khoản không ẩn danh đều có thể thay đổi mật khẩu cho tài khoản đó. [Đặc biệt, bạn có thể thay đổi mật khẩu của chính mình. ] Để xem máy chủ đã xác thực bạn là tài khoản nào, hãy gọi hàm
SELECT CURRENT_USER[];
Nếu một mệnh đề
SET PASSWORD FOR 'jeffrey'@'localhost' = password_option
;
4 được đưa ra, thì tên tài khoản sẽ sử dụng định dạng được mô tả trong Phần 6. 2. 4, “Chỉ định tên tài khoản”. Ví dụ________số 8_______Phần tên máy chủ của tên tài khoản, nếu bỏ qua, sẽ mặc định là
SET PASSWORD FOR 'jeffrey'@'localhost' = password_option
;
8Đặt mật khẩu cho tài khoản được đặt tên [với mệnh đề
SET PASSWORD FOR 'jeffrey'@'localhost' = password_option
;
3] yêu cầu đặc quyền cho cơ sở dữ liệu hệ thống SET PASSWORD = password_option
;
1. Đặt mật khẩu cho chính bạn [đối với tài khoản không ẩn danh không có mệnh đề SET PASSWORD FOR 'jeffrey'@'localhost' = password_option
;
3] không yêu cầu đặc quyền. Khi biến hệ thống được bật, SET PASSWORD
yêu cầu đặc quyền ngoài bất kỳ đặc quyền bắt buộc nào khácMật khẩu có thể được chỉ định theo những cách này
sử dụng chức năng
Đối số là mật khẩu văn bản rõ ràng [không được mã hóa]. băm mật khẩu và trả về chuỗi mật khẩu được mã hóa để lưu trữ trong hàng tài khoản trong bảng hệ thống
SET PASSWORD =
9password_option
;Hàm băm mật khẩu sử dụng phương pháp băm được xác định bởi giá trị của giá trị biến hệ thống. Nếu
SET PASSWORD
từ chối giá trị mật khẩu băm được trả về là không đúng định dạng, có thể cần phải thay đổi để thay đổi phương pháp băm. Ví dụ: nếu tài khoản sử dụng pluginSELECT CURRENT_USER[];
5 thì giá trị phải là 0SET old_passwords = 0; SET PASSWORD FOR 'jeffrey'@'localhost' = PASSWORD['
password
'];Nếu giá trị khác với giá trị mà plugin xác thực yêu cầu, thì giá trị mật khẩu băm được trả về không được chấp nhận đối với plugin đó và cố gắng đặt mật khẩu sẽ tạo ra lỗi. Ví dụ
mysql>
SET old_passwords = 1;
mysql>SET PASSWORD FOR 'jeffrey'@'localhost' = PASSWORD['
ERROR 1372 [HY000]: Password hash should be a 41-digit hexadecimal numberpassword
'];Các giá trị được phép được mô tả sau trong phần này
sử dụng chức năng
Đối số của hàm
'
auth_string
' là mật khẩu văn bản rõ ràng [không được mã hóa]. băm mật khẩu bằng pre-4. 1 băm và trả về chuỗi mật khẩu được mã hóa để lưu trữ trong hàng tài khoản trong bảng hệ thốngSET PASSWORD =
9. Phương pháp băm này chỉ phù hợp với các tài khoản sử dụng plugin xác thựcpassword_option
;SET PASSWORD FOR 'bob'@'%.example.org' = PASSWORD['
4auth_string
'];Sử dụng chuỗi mật khẩu đã được mã hóa
Mật khẩu được chỉ định dưới dạng một chuỗi ký tự. Nó phải đại diện cho giá trị mật khẩu đã được mã hóa, ở định dạng băm theo yêu cầu của phương thức xác thực được sử dụng cho tài khoản
Bảng sau đây hiển thị, đối với mỗi phương pháp băm mật khẩu, giá trị được phép của
SELECT CURRENT_USER[];1 và plugin xác thực nào sử dụng phương pháp băm
Phương thức băm mật khẩuold_passwords ValueAssociated Authentication PluginMySQL 4. 1 hàm băm gốc0____6_______5Pre-4. Băm 1 [“cũ”]1_______8_______4Băm SHA-2562
SET PASSWORD FOR 'bob'@'%.example.org' = PASSWORD['auth_string
'];
8Nếu bạn đang kết nối với MySQL 4. 1 hoặc máy chủ mới hơn sử dụng máy chủ trước 4. 1 chương trình khách, không thay đổi mật khẩu của bạn khi chưa đọc Phần 6 trước. 1. 2. 4, “Băm mật khẩu trong MySQL”. Định dạng băm mật khẩu mặc định đã thay đổi trong MySQL 4. 1 và nếu bạn thay đổi mật khẩu của mình, nó có thể được lưu trữ bằng định dạng băm trước 4. 1 máy khách không thể tạo, do đó khiến bạn không thể kết nối với máy chủ sau đó
Để biết thêm thông tin về cách đặt mật khẩu và plugin xác thực, hãy xem Phần 6. 2. 9, “Chỉ định mật khẩu tài khoản” và Phần 6. 2. 11, “Xác thực có thể cắm”