Cách tạo người dùng mới và cấp quyền trong MySQL

1. Giới thiệu MySQL

Là một hệ thống quản lý cơ sở dữ liệu quan hệ mã nguồn mở. Nó thường được triển khai như một phần của ngăn xếp LAMP (viết tắt của L inux, A pache, M ySQL và P HP) và, tính đến thời điểm viết bài này, là cơ sở dữ liệu nguồn mở phổ biến nhất trên thế giới.

2. Tạo người dùng mới

sudo mysql

Lưu ý: Nếu người dùng MySQL gốc của bạn được định cấu hình để xác thực bằng mật khẩu, bạn sẽ cần sử dụng một lệnh khác để truy cập trình bao MySQL. Phần sau đây sẽ chạy ứng dụng khách MySQL của bạn với các đặc quyền của người dùng thông thường và bạn sẽ chỉ nhận được các đặc quyền của quản trị viên trong cơ sở dữ liệu bằng cách xác thực bằng mật khẩu chính xác:

mysql -u root -p

Khi bạn có quyền truy cập vào lời nhắc của MySQL, bạn có thể tạo một người dùng mới bằng một CREATE USER câu lệnh. 

CREATE USER username@host IDENTIFIED WITH authentication_plugin BY password;

Sau CREATE USER, bạn chỉ định tên người dùng. Chạy lệnh sau để tạo người dùng xác thực bằng caching_sha2_password. Đảm bảo thay đổi sammythành tên người dùng của bạn.

CREATE USER sammy@‘localhost’ IDENTIFIED BY password;

Lưu ý : Có một sự cố đã biết với một số phiên bản PHP gây ra sự cố với caching_sha2_password. Nếu bạn dự định sử dụng cơ sở dữ liệu này với một ứng dụng PHP — chẳng hạn như phpMyAdmin — bạn có thể muốn tạo một người dùng sẽ xác thực với mysql_native_passwordplugin cũ hơn, mặc dù vẫn an toàn, thay vào đó:

  1. CREATE USER sammy@‘localhost’ IDENTIFIED WITH mysql_native_password BY password;
Nếu bạn không chắc chắn, bạn luôn có thể tạo một người dùng xác thực caching_sha2_pluginvà sau đó xác thực ALTERnó sau bằng lệnh này:

ALTER USER sammy@‘localhost’ IDENTIFIED WITH mysql_native_password BY password;

Sau khi tạo người dùng mới, bạn có thể cấp cho họ các đặc quyền thích hợp.

3. Cấp quyền cho người dùng

Cú pháp chung để cấp quyền cho người dùng như sau:

GRANT PRIVILEGE ON database.table TO username@host;

Chạy GRANTcâu lệnh này, thay thế sammybằng tên người dùng MySQL của riêng bạn, để cấp các đặc quyền này cho người dùng của bạn:

GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES, RELOAD on *.* TO sammy@‘localhost’ WITH GRANT OPTION;

GRANT ALL PRIVILEGES ON *.* TO sammy@‘localhost’ WITH GRANT OPTION;

Nhiều hướng dẫn đề xuất chạy FLUSH PRIVILEGESlệnh ngay sau câu lệnh CREATE USERhoặc GRANTđể tải lại các bảng cấp phép nhằm đảm bảo rằng các đặc quyền mới có hiệu lực:

FLUSH PRIVILEGES;

Nếu bạn cần thu hồi quyền, cấu trúc gần giống với việc cấp quyền:

REVOKE type_of_permission ON database_name.table_name FROM username@host;

Lưu ý rằng khi thu hồi quyền, cú pháp yêu cầu bạn sử dụng FROM, thay vì TObạn đã sử dụng khi cấp quyền.

Bạn có thể xem lại các quyền hiện tại của người dùng bằng cách chạy SHOW GRANTSlệnh:

SHOW GRANTS FOR username@host;

Giống như bạn có thể xóa cơ sở dữ liệu bằng DROP, bạn có thể sử dụng DROPđể xóa người dùng:

DROP USER username@‘localhost’;

Sau khi tạo người dùng MySQL của bạn và cấp cho họ các đặc quyền, bạn có thể thoát khỏi ứng dụng khách MySQL:

exit

Trong tương lai, để đăng nhập với tư cách người dùng MySQL mới của bạn, bạn sẽ sử dụng một lệnh như sau:

mysql -u sammy -p

 

Leave a Reply