Để cấp quyền cho người dùng trong MySQL, bạn có thể sử dụng lệnh GRANT để định nghĩa các quyền cụ thể mà người dùng có thể thực hiện trên cơ sở dữ liệu hoặc bảng. Lệnh GRANT cho phép bạn linh hoạt trong việc phân quyền cho từng người dùng.
GRANT quyền ON cơ_sở_dữ_liệu.bảng TO 'tên_người_dùng'@'host' IDENTIFIED BY 'mật_khẩu';
SELECT
, INSERT
, UPDATE
, DELETE
, hoặc tất cả các quyền với từ khóa ALL PRIVILEGES
).*.*
nếu bạn muốn cấp quyền trên tất cả cơ sở dữ liệu và bảng).localhost
hoặc %
cho mọi địa chỉ IP).GRANT SELECT ON mydatabase.* TO 'myuser'@'localhost';
mydatabase
cho người dùng myuser
trên máy chủ localhost
.GRANT INSERT, UPDATE ON mydatabase.mytable TO 'myuser'@'localhost';
mytable
thuộc cơ sở dữ liệu mydatabase
cho người dùng myuser
.GRANT ALL PRIVILEGES ON mydatabase.* TO 'myuser'@'localhost';
mydatabase
cho người dùng myuser
.GRANT SELECT, INSERT ON mydatabase.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword';
mydatabase
cho người dùng myuser
với khả năng đăng nhập từ mọi địa chỉ IP (%
đại diện cho tất cả host).GRANT CREATE, DROP ON mydatabase.* TO 'myuser'@'localhost';
mydatabase
cho người dùng myuser
.GRANT SUPER ON *.* TO 'adminuser'@'localhost';
adminuser
để thực hiện các tác vụ quản trị trên toàn bộ server MySQL.Để các quyền đã cấp có hiệu lực ngay lập tức, bạn cần chạy lệnh:
FLUSH PRIVILEGES;
Nếu bạn cần thu hồi quyền của một người dùng, bạn sử dụng lệnh REVOKE theo cấu trúc sau:
REVOKE quyền ON cơ_sở_dữ_liệu.bảng FROM 'tên_người_dùng'@'host';
Thu hồi quyền SELECT từ người dùng:
REVOKE SELECT ON mydatabase.* FROM 'myuser'@'localhost';
Lệnh GRANT trong MySQL là cách để cấp quyền truy cập cụ thể cho người dùng vào các bảng hoặc cơ sở dữ liệu. Bạn có thể cấp quyền từ đơn giản như SELECT cho đến phức tạp như ALL PRIVILEGES, và lệnh này cũng cho phép kiểm soát chi tiết về quyền mà người dùng có thể sử dụng. Việc sử dụng đúng lệnh GRANT sẽ giúp bảo vệ và quản lý hệ thống MySQL một cách hiệu quả.