Bước 1: Hãy đảm bảo máy tính chứa cơ sở dữ liệu (máy chủ) đã tắt tường lửa
Bước 2: Xác định địa chỉ IP (có thể lấy tên máy)
Bước 3: Tạo tài khoản cho phép kết nối từ xa
CREATE USER 'master'@'localhost' IDENTIFIED BY '123123';
GRANT ALL PRIVILEGES ON *.* TO 'master'@'localhost' WITH GRANT OPTION;
CREATE USER 'master'@'%' IDENTIFIED BY '123123';
GRANT ALL PRIVILEGES ON *.* TO 'master'@'%' WITH GRANT OPTION ;
FLUSH PRIVILEGES;
Giải thích câu lệnh
Câu lệnh 1:
Tạo tài khoản người dùng có tên là master có thể đăng nhập trên máy localhost có mật khẩu là 123123
Câu lệnh 2:
Xác định các quyền mà người dùng có thể tương tác với bảng nào thuộc database nào trong csdl. dấu (*) là biểu thị áp dùng cho tất cả.
Câu lệnh 2 - cấp quyền cho người dùng master có tất cả các quyền như người dùng root
Cấu trúc: databasename.table
All là biểu thị người dùng có thể thực hiện mọi quyền. Một số quyền: Create, alter, drop (database); Insert, delete, update, references, reload.
Ví dụ:
GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES, RELOAD on *.* TO 'sammy'@'localhost' WITH GRANT OPTION;
Lưu ý rằng tuyên bố này cũng bao gồm WITH GRANT OPTION. Điều này sẽ cho phép người dùng MySQL của bạn cấp bất kỳ quyền nào mà họ có cho những người dùng khác trên hệ thống.
Câu lệnh 3:
Câu lệnh SQL này được sử dụng để tạo một người dùng mới trong cơ sở dữ liệu MySQL.
Dưới đây là giải thích chi tiết từng phần của câu lệnh:
CREATE USER
: Đây là từ khóa bắt đầu câu lệnh, nó báo hiệu rằng bạn đang tạo một người dùng mới.'master'
: Tên người dùng mà bạn muốn tạo là "master".'@%'
: Biểu thị rằng người dùng này có thể kết nối từ bất kỳ địa chỉ IP nào. Dấu %
là ký tự đại diện (wildcard) cho tất cả địa chỉ IP.IDENTIFIED BY '123123'
: Chỉ định mật khẩu cho người dùng mới là "123123".Như vậy, câu lệnh trên sẽ tạo ra một người dùng mới có tên "master" với mật khẩu "123123" và có thể đăng nhập từ bất kỳ địa chỉ IP nào. Bạn nên thay đổi mật khẩu để đảm bảo an toàn.
Câu lệnh 4:
Câu lệnh SQL này được sử dụng để cấp mọi quyền (all privileges) cho người dùng mới tạo trong cơ sở dữ liệu MySQL. Dưới đây là giải thích chi tiết từng phần của câu lệnh:
GRANT ALL PRIVILEGES
: Đây là từ khóa bắt đầu câu lệnh, nó báo hiệu rằng bạn đang cấp tất cả các quyền cho người dùng.ON *.*
: Biểu thị rằng các quyền này sẽ được cấp trên tất cả các cơ sở dữ liệu (*
) và tất cả các bảng (*
) trong cơ sở dữ liệu đó.TO 'master'@'%'
: Chỉ định người dùng mà bạn muốn cấp quyền là "master" và người dùng này có thể kết nối từ bất kỳ địa chỉ IP nào (%
).WITH GRANT OPTION
: Tùy chọn này cho phép người dùng "master" có thể cấp lại các quyền mà họ đã nhận được cho những người dùng khác.Như vậy, câu lệnh trên sẽ cấp tất cả các quyền trên tất cả các cơ sở dữ liệu và bảng cho người dùng "master", và người dùng này cũng có quyền cấp lại các quyền đó cho những người khác. Bạn nên cẩn thận khi sử dụng câu lệnh này vì nó cấp quyền cao nhất và có thể ảnh hưởng đến bảo mật của cơ sở dữ liệu.
Câu lệnh 5:
Câu lệnh FLUSH PRIVILEGES;
được sử dụng trong MySQL để làm mới (reload) các quyền người dùng mà không cần khởi động lại máy chủ cơ sở dữ liệu. Khi bạn thực hiện thay đổi về quyền (ví dụ như sử dụng câu lệnh GRANT
hoặc REVOKE
), bạn cần phải sử dụng câu lệnh FLUSH PRIVILEGES
để các thay đổi này có hiệu lực.
Nói cách khác, câu lệnh này sẽ tải lại các bảng quyền từ các tệp quyền của MySQL, đảm bảo rằng bất kỳ thay đổi nào về quyền người dùng đều được áp dụng ngay lập tức.
Bước 4: Thu hồi quyền của người dùng
REVOKE type_of_permission ON *.* FROM 'master'@'localhost';
Ví dụ:
REVOKE Delete,alter ON 'music'.'nhacsi' FROM 'master'@'localhost';
Thu hồi quyền Delete và alter của người dùng 'master' trên bảng nhacsi trong database ‘music’
Bước 5: Xem các quyền của người dùng:
SHOW GRANTS FOR 'username'@'host';
Bước 6: Xóa người dùng
DROP USER 'username'@'localhost';
Trên đây là các bước tạo người dùng kết nối từ xa, thu hồi quyền của người dùng và xóa người dùng trong Mysql
Ứng dụng để tạo quyền cho người có tên: ‘guest’ với mật khẩu là '123123' dùng chỉ được phép quản lý và sử dụng CSDL “THU_VIEN”
CREATE USER 'guest'@'localhost' IDENTIFIED BY '123123';
GRANT ALL PRIVILEGES ON THU_VIEN.* TO 'master'@'localhost' WITH GRANT OPTION;
CREATE USER 'guest'@'%' IDENTIFIED BY '123123';
GRANT ALL PRIVILEGES ON *.* TO 'guest'@'%' WITH GRANT OPTION ;
FLUSH PRIVILEGES;
Xem hướng dẫn chi tiết qua Clip sau: Xem