Đặt mật khẩu thành giá trị được băm trước trong mysql


3

Làm cách nào tôi có thể đặt mật khẩu người dùng mysql bằng mật khẩu được băm trước?

=====

Tôi đã có một cơ sở dữ liệu mysql phiên bản 5.1.73.

Theo tài liệu của mysql, trong các phiên bản mới hơn của mysql, tạo người dùng bằng mật khẩu được làm sẵn

CREATE USER 'ans'@'localhost'
    IDENTIFIED BY PASSWORD 'hash_string'

không được chấp nhận và sẽ bị xóa trong bản phát hành MySQL trong tương lai.

Tuy nhiên, tôi không thể tìm ra cái gì (nếu có) là cách mới để thực hiện điều này.

Chúng tôi sử dụng cobbler để thiết lập cơ sở dữ liệu của mình và tôi muốn điền trước cơ sở dữ liệu của mình các tài khoản họ sẽ cần, cùng với mật khẩu họ sẽ sử dụng mà không cần mật khẩu văn bản rõ ràng trong tập lệnh của mình. Tôi đã có thể nghĩ

update mysql.user
    set password = '*E8D46CE25265E545D225A8A6F1BAF642FEBEE5CB'
    where user = 'ans';

sẽ thực hiện thủ thuật, nhưng từ thử nghiệm của tôi, điều đó không thực sự thay đổi mật khẩu đăng nhập mysql.

mysql> create user 'ans'@'localhost' identified by 'foo';
mysql> select user,host,password from mysql.user;
+------+-----------+-------------------------------------------+
| user | host      | password                                  |
+------+-----------+-------------------------------------------+
| ans  | localhost | *F3A2A51A9B0F2BE2468926B4132313728C250DBF |
+------+-----------+-------------------------------------------+
mysql> update mysql.user set password = password('bar') where user = 'ans';
Query OK, 1 row affected (0.00 sec)
mysql> select user,host,password from mysql.user;
+------+-----------+-------------------------------------------+
| user | host      | password                                  |
+------+-----------+-------------------------------------------+
| ans  | localhost | *E8D46CE25265E545D225A8A6F1BAF642FEBEE5CB |
+------+-----------+-------------------------------------------+
mysql> quit
$ mysql -uans -pbar
ERROR 1045 (28000): Access denied for user 'ans'@'localhost' (using password: YES)
$ mysql -uans -pfoo
Welcome to the MySQL monitor.  Commands end with ; or \g.

Câu trả lời:


0

Khi bạn hack mật khẩu vào mysql.user, bạn phải chạy

mysql> FLUSH PRIVILEGES;

Theo Tài liệu MySQL về FLUSH

QUYỀN RIÊNG TƯ

Tải lại các đặc quyền từ các bảng cấp trong cơ sở dữ liệu mysql.

Máy chủ lưu trữ thông tin trong bộ nhớ là kết quả của các câu lệnh GRANT, CREATE USER, CREATE SERVER và INSTALL PLUGIN. Bộ nhớ này không được phát hành bởi các câu lệnh REVOKE, DROP USER, DROP SERVER và UNINSTALL PLUGIN tương ứng, do đó, đối với một máy chủ thực thi nhiều trường hợp của các câu lệnh gây ra bộ nhớ đệm, sẽ có sự gia tăng sử dụng bộ nhớ. Bộ nhớ được lưu trong bộ nhớ cache này có thể được giải phóng với tính năng RIÊNG TƯ.

Bây giờ, bạn phải khởi động lại MySQL để mật khẩu có hiệu lực.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.