Create New User

MySQL là một hệ quản trị cơ sở dữ liệu nguồn mở, hỗ trợ người dùng lưu trữ, tổ chức, và tìm kiếm thông tin. Nó có một loạt các tùy chọn để cấp quyền người dùng để làm việc với bảng và cơ sở dữ liệu. Bài viết này tổng hợp và hướng dẫn sử dụng lệnh tạo user và cấp quyền trong MySQL.

1. Tạo User mới

Chúng ta tạo user mới trong tình huống cần hạn chế một vài quyền, có nhiều cách để tạo ra user với các quyền là tùy chỉnh.

Lệnh sau tạo ra user mới có tên là newuser trên localhost:

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

Tệ là tại thời điểm này, newuser không có quyền để làm bất cứ điều gì với cơ sở dữ liệu. Thực tế thì, thậm chí nếu newuser cố gắng thử đăng nhập (với mật khẩu là password), họ cũng không thể vào được shell điều khiển của MySQL.

Vì vậy, điều đầu tiên cần làm là cung cấp cho người dùng truy cập vào các thông tin mà họ cần:

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

Các dấu sao (*) trong lệnh này liên quan đến cơ sở dữ liệu và bảng (tương ứng) mà họ có thể truy cập – cụ thể lệnh này cho phép người dùng đọc, chỉnh sửa, ,thực thi tất cả các task trên tất cả cơ sở dữ liệu và bảng.

Một khi hoàn tất các quyền gán cho user, và bạn muốn thiết lập quyền mới cho tài khoản mới khác, hãy thực hiện lệnh sau để đảm bảo các quyền được thiết lập lại từ đầu cho user mới.

FLUSH PRIVILEGES;

Các thay đổi của bạn bây giờ sẽ có hiệu lực !

2. Gán quyền cho User

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

  • 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 người dùng với môt vài quyền cụ thể, hãy dùng mẫu 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 trở lại bằng lệnh

mysql -u [username] -p

About The Author