How To Create a New User and Grant Permissions in MySQL

About MySQL

MYSQL là một hệ quản trị cơ sở dữ liệu mã nguồn mở giúp cho người dùng lưu trữ, tổ chức và sau đó lấy dữ liệu. Nó có nhiều lựa chọn cung cấp cho người dùng để thao tao với bảng và cơ sở dữ liệu. Bài viết này hướng dẫn việc tạo user và cấp quyền trong MYSQL.

How to Create a New User

Thông thường chúng ta thường thao tác với database với đầy đủ các quyền, nhưng nhiều trường hợp chúng ta không muốn ai đó truy cập với đầy đủ các quyền. Tạo mới user bằng câu lệnh sau:

CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

Thật tệ, ngay trong thời điểm vừa mới tạo mới user thì user chưa có quyền gì. Ngay cả khi cố đăng nhập vào thì cung khỗng thể vào được màn hình shell. Vì thế chúng ta cần cung cấp quyền cho họ để có thể truy cập thông tin mà họ cần.

GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';

dấu * ở trên tương ứng với cơ sở dữ liệu và bảng mà user có thể truy cập - cụ thể là lệnh này cho phép người dùng thêm, sửa, xóa thực thi các công việc trên tất cả các bảng trong cơ sở dữ liệu. Để các quyền trên có hiệu lực thì bạn dùng lệnh:

FLUSH PRIVILEGES;

How To Grant Different User Permissions

Dưới đây là danh sách các lệnh thường dùng để gán quyền cho user.

  • ALL PRIVILEGES – như ở trên ta thấy, lệnh này cho phép MySQL user thực hiện toàn quyền trên databases (hoặc 1 vài db được thiết lập)
  • CREATE – Cho phép user tạo mới tables hoặc databases
  • DROP – Cho phép xóa tables hoặc databases
  • DELETE – Cho phép xóa bản ghi dữ liệu trong bảng tables
  • INSERT – Cho phép thêm bản ghi mới vào bảng csdl
  • SELECT – Cho phép sử dụng lệnh Select để tìm kiếm dữ liệu
  • UPDATE – Cho phép cập nhật csdl
  • GRANT OPTION – Cho phép gán hoặc xóa quyền của người dùng khác.

Để thiết lập quyền cụ thể cho user thì dùng lệnh sau:

GRANT [type of permission] ON [database name].[table name] TO ‘[username]’@'localhost’;

Nếu bạn muốn cho phép user truy cập tất cả databases hoặc tất cả bảng, hãy dùng dấu sao (*) thay cho tên database hoặc table.

Mỗi lần bạn cập nhật hay thay đổi quyền hãy dùng lệnh Flush Privileges đảm bảo các thay đổi có hiệu lực.

Nếu cần thu hồi lại quyền của user, hãy dùng lệnh REVOKE với biểu mẫu lệnh sau đây:

REVOKE [type of permission] ON [database name].[table name] FROM '[username]'@'localhost';

Hoặc có thể xóa cơ sở dữ liệu với lệnh DROP, bạn cũng có thể dùng lệnh để xóa hẳn user đó đi.

DROP USER 'demo'@'localhost';

Để kiểm tra user mới được tạo, logout bằng lệnh

quit

và login lại bằng lệnh:

mysql -u[username] -p

sau đó nhập password.

Trên đây là hướng dẫn tạo mới user và custom permissions cho user. Hi vọng giúp ích được phần nào cho các bạn. Link source: https://www.digitalocean.com/community/tutorials/how-to-create-a-new-user-and-grant-permissions-in-mysql