MySQL và MariaDB là hai hệ quản trị cơ sở dữ liệu (CSDL) phổ biến được sử dụng rộng rãi để lưu trữ dữ liệu cho cá nhân và doanh nghiệp. Trong hướng dẫn này, chúng tôi sẽ hướng dẫn bạn cách tạo và cấp quyền cho người dùng trong MySQL hoặc MariaDB.
Để bắt đầu, truy cập vào MySQL hoặc MariaDB bằng tài khoản root bằng lệnh dòng lệnh Linux sau:
“`
mysql -u root -p
“`
Nếu bạn chưa đặt mật khẩu cho tài khoản root, bạn có thể sử dụng lệnh sau với “sudo” để đăng nhập:
“`
sudo mysql
“`
Chắc chắn rằng bạn đã đăng nhập thành công vào hệ thống quản trị CSDL của bạn trước khi tiếp tục.
Vậy chúng ta đã truy cập vào chế độ shell của MySQL/MariaDB
Tạo mới user
Để tạo mới một user chúng ta sử dụng lệnh SQL sau:
CREATE USER '<user_name>'@'<hostname>' IDENTIFIED BY '<user_password>';
VD: Tạo user có tên là vinasupport và host là localhost
MariaDB [(none)]> CREATE USER 'vinasupport'@'localhost' IDENTIFIED BY '12345678';
Sau đó ta kiểm tra xem User mới đã được tạo thành công chưa bằng lệnh SQL sau:
MariaDB [(none)]> SELECT user,host FROM mysql.user;
Kết quả chúng ta có:
User có host là localhost chỉ có thể kết nối từ server, nếu các bạn muốn remote từ một server khác thì sử dụng host là %, VD: ‘vinasupport’@’%’
Gán quyền cho user
Bây giờ chúng ta cần phải gán quyền cho user để user có thể kết nối và có quyền thao tác với database hiện tại.
GRANT <permision> ON <database name>.<table name> TO <user name>@<host name>;
Ví dụ gán toàn bộ quyền cho user vinasupport ta sử dụng lệnh SQL sau:
MariaDB [(none)]> GRANT ALL PRIVILEGES ON * . * TO 'vinasupport'@'localhost';
Kết quả:
Bạn có thể chỉ định chỉ gán một số quyền nhất định, như chỉ được select, insert, update thôi chẳng hạn.
MariaDB [(none)]> GRANT SELECT, INSERT, UPDATE ON * . * TO 'vinasupport'@'localhost';
Sau khi hoàn tất cần reload lại toàn bộ quyền của User
MariaDB [(none)]> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.001 sec)
Gỡ bỏ quyền của 1 user
Sử dụng lệnh sql revoke để gỡ bỏ quyền:
REVOKE <permission> ON <database name>.<table name> FROM <user name>@<host name>;
VD: Gỡ bỏ toàn bộ quyền của user
MariaDB [(none)]> REVOKE ALL PRIVILEGES ON * . * TO 'vinasupport'@'localhost';