Khác với những version trước đây, MariaDB 10.4 bản ổn định có thêm nhiều cải tiến. Một trong những khác biệt rõ ràng nhất trong MariaDB 10.4 mà bạn có thể dễ dàng kiểm tra đó là truy cập vào database bằng user root mà không cần đến mật khẩu. Vậy nếu trong trường hợp bạn vẫn muốn đặt password cho user root của MariaDB thì phải làm như nào? Cùng đọc bài viết để tìm hiểu nhé!

Tổng quan

  • MariaDB 10.4 có khả năng sử dụng nhiều hơn một plugin xác thực cho mỗi tài khoản. Khi cài đặt MariaDB, mặc định sẽ tạo ra 1 root@localhost user và cũng sẽ có 2 plugin xác thực cho user root được bật mặc định là unix_socketmysql_native_password
    • unix_socket cho phép root@localhost user đăng nhập mà không cần mật khẩu thông qua local Unix socket file được xác định bởi  socket biến hệ thống, miễn là root user của OS cũng có thể đăng nhập.
    • mysql_native_password được khuyến khích sử dụng khi xác thực thất bại với  unix_socket. Plugin này sử dụng password để xác thực nên bạn sẽ cần SET PASSWORD.
  • Tất cả user, password, privileges được lưu trữ trong bảng mysql.global_priv. Bảng mysql.user vẫn tồn tại với đủ các cột như trước nhưng bạn không thể thực hiện các thao tác chỉnh sửa trên bảng.
  • MariaDB hỗ trợ thiết lập thời gian hết hạn password của người dùng.

Theo mặc định plugin unix_socket sẽ được sử dụng do đó bạn có thể trực tiếp truy cập vào database mà không cần password. Bạn có thể thử sử dụng mysql -u root -p và nhập vào password sai vẫn có thể truy cập bình thường.

Reset password

  • Truy cập vào database
mysql -u root
  • Đặt mật khẩu
SET PASSWORD FOR 'user_name'@'hostname' = PASSWORD('newpass');

Ví dụ: Đặt lại password cho root MariaDB user

 SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass'); 
  • Tắt plugin unix_socket trong file /etc/my.cnf.d/server.cnf
[mariadb]
...
unix_socket=OFF

hoặc

[mariadb]
...
disable_unix_socket
  • Restart MariaDB để nhận cấu hình mới
systemctl restart mariadb
  • Kiểm tra hoạt động của password vừa tạo
mysql -u root -p

Vì bạn đã tắt plugin unix_socket ở trên nên ở bước kiểm tra này nếu không nhập chính xác password bạn sẽ không thể truy cập vào database.

Lời kết

Nhà phát triển MariaDB khuyến khích mọi người sử dụng plugin unix socket và chỉ nên sử dụng password cho root MariaDB user khi thật sự cần thiết vì khi bạn cài đặt password mặc dù password đó đã được mã hóa nhưng khi bạn backup database nó sẽ backup luôn dữ liệu về password của bạn. Hacker có thể tấn công để lấy được dữ liệu này và biết được Password của bạn. “Remember, the best way to keep your password safe is not to have one!

Tham khảo các bài viết khác