Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

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

MySQL là một hệ quản trị cơ sở dữ liệu phổ biến và được sử dụng rộng rãi để lưu trữ và tổ chức dữ liệu và cho phép người dùng truy xuất nó. Nó đi kèm với một loạt các tùy chọn cấp cho người dùng các quyền nhất định đối với các bảng và cơ sở dữ liệu.

Trong hướng dẫn này, bạn sẽ học cách tạo người dùng mới và cấp quyền trong MySQL cơ sở dữ liệu.

Cách tạo người dùng mới trong MySQL

Để tạo người dùng mới, trước tiên hãy đăng nhập vào MySQL shell.

$ sudo mysql -u root -p

Cung cấp mật khẩu sudo theo sau là mật khẩu được cung cấp khi thiết lập cơ sở dữ liệu MySQL và nhấn ENTER . Sau đó, bạn sẽ nhận được lời nhắc này.

Để tạo người dùng mới, hãy sử dụng cú pháp được hiển thị bên dưới:

MariaDB [none]> CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

Ví dụ:để tạo người dùng mới có tên là ‘ tecmint 'Trong cơ sở dữ liệu, gọi lệnh:

MariaDB [none]> CREATE USER 'tecmint'@'localhost' IDENTIFIED BY 'QkYKmw$5tec';

Một vài điểm cần lưu ý

Khi thêm người dùng cục bộ, tức là trên hệ thống mà bạn đã cài đặt MySQL , máy chủ của người dùng được chỉ định là localhost chứ không phải địa chỉ IP. Từ khóa ‘ localhost ‘Dịch sang‘ máy tính này ‘Và MySQL xử lý nó một cách độc đáo. Về cơ bản, localhost được ứng dụng khách mysql sử dụng để thiết lập kết nối với máy chủ cơ sở dữ liệu MySQL được cài đặt cục bộ.

Cho đến nay, tecmint người dùng không có bất kỳ quyền nào để tương tác với cơ sở dữ liệu. Trên thực tế, người dùng thậm chí không thể truy cập vào MySQL shell.

Để cấp cho người dùng quyền truy cập đầy đủ vào tất cả các cơ sở dữ liệu, bao gồm cả các bảng, hãy chạy.

MariaDB [none]> GRANT ALL PRIVILEGES ON * . * TO 'tecmint'@'localhost';

Trong lệnh trên, các dấu hoa thị lần lượt trỏ đến cơ sở dữ liệu và bảng mà người dùng có thể truy cập. Nó cấp cho người dùng tất cả các quyền trên cơ sở dữ liệu - đọc , viết , chỉnh sửa, thực thi bao gồm cả việc thực hiện tất cả các tác vụ trên các cơ sở dữ liệu và bảng khác.

Cho đến nay, chúng tôi đã cấp cho người dùng toàn quyền truy cập vào cơ sở dữ liệu. Mặc dù điều này rất hữu ích trong việc giải thích các khái niệm MySQL, nhưng nó thường không được khuyến khích vì nó có thể gây ra rủi ro bảo mật cho cơ sở dữ liệu của bạn. Chỉ cần nghĩ về những gì có thể xảy ra nếu một tin tặc nắm được mật khẩu của người dùng. Chúng tôi sẽ tiến hành thêm và thảo luận về cách chỉ định các quyền cụ thể trong phần tiếp theo.

Khi bạn hoàn tất việc gán quyền cho người dùng, hãy tải lại tất cả các đặc quyền như được hiển thị để các thay đổi có hiệu lực.

MariaDB [none]> FLUSH PRIVILEGES

Cách cấp quyền cho người dùng khác nhau

Dưới đây là bảng phân tích các quyền khả thi mà bạn có thể cấp cho người dùng:

  • TẤT CẢ CÁC QUYỀN RIÊNG TƯ - Như đã thấy trước đây, điều này cấp cho người dùng MySQL toàn quyền truy cập vào một cơ sở dữ liệu cụ thể.
  • TẠO - Cho phép người dùng tạo cơ sở dữ liệu hoặc bảng mới.
  • DROP - Cho phép người dùng xóa cơ sở dữ liệu hoặc người dùng.
  • CHÈN - Cho phép người dùng chèn các hàng trong bảng.
  • XÓA - Cho phép người dùng xóa các hàng khỏi bảng.
  • CHỌN - với quyền 'SELECT', người dùng có thể đọc nội dung của bảng.
  • CẬP NHẬT - Cho phép người dùng cập nhật các hàng trong bảng.
  • TÙY CHỌN CẤP - Người dùng có thể cấp hoặc xóa các đặc quyền của những người dùng khác.

Để cấp quyền cho người dùng cụ thể, hãy sử dụng cú pháp:

MariaDB [none]> GRANT permission_type ON database_name.table_name TO 'username'@'localhost';

Ngoài ra, bạn có thể gán quyền cho tất cả các bảng trong cơ sở dữ liệu bằng một biểu tượng dấu hoa thị như được hiển thị:

MariaDB [none]> GRANT permission_type ON database_name.* TO 'username'@'localhost';

Ví dụ:để gán CHỌN quyền đối với ‘ tecmint ‘Người dùng trên tất cả các bảng của cơ sở dữ liệu testdb , chạy lệnh.

MariaDB [none]> GRANT SELECT ON testdb.* TO 'tecmint'@'localhost';

Sau đó, cấp các đặc quyền để các thay đổi có hiệu lực.

MariaDB [none]> FLUSH PRIVILEGES;

Ngoài ra, bạn có thể chỉ định nhiều quyền cùng lúc bằng cách phân tách chúng bằng dấu phẩy như được hiển thị.

MariaDB [none]> GRANT INSERT, UPDATE ON testdb.* TO 'tecmint'@'localhost';

Cách thu hồi quyền của MySQL

Để thu hồi quyền từ người dùng, hãy sử dụng cú pháp:

MariaDB [none]> REVOKE permission_type ON database_name.table_name FROM 'username'@'localhost';

Ví dụ:để thu hồi INSERT quyền từ người dùng ‘ tecmint ', Chạy lệnh.

MariaDB [none]> REVOKE INSERT ON testdb.* FROM tecmint'@'localhost';
MariaDB [none]> FLUSH PRIVILEGES

Để xem các quyền hiện tại của người dùng, hãy thực thi:

MariaDB [none]> SHOW GRANTS FOR 'username'@'localhost';

Từ đầu ra bên dưới, chúng ta có thể thấy rằng INSERT quyền đã bị xóa khỏi ‘ tecmint Người dùng chỉ rời khỏi CHỌN CẬP NHẬT quyền trên testdb cơ sở dữ liệu.

Để kiểm tra việc đăng nhập vào MySQL shell bằng người dùng mới, trước tiên hãy đăng xuất.

MariaDB [none]> quit;

Sau đó đăng nhập lại.

$ sudo mysql -u tecmint -p

Cung cấp mật khẩu của người dùng và nhấn ENTER để truy cập shell.

Để loại bỏ một người dùng, hãy sử dụng DROP , giống như cách bạn làm khi xóa cơ sở dữ liệu.

MariaDB [none]> DROP USER 'username'@'localhost';

Bạn cũng có thể muốn đọc các bài viết liên quan đến MySQL sau:

  • Mẹo hữu ích để khắc phục các lỗi thường gặp trong MySQL
  • Mytop - Một Công cụ Hữu ích để Giám sát Hiệu suất MySQL / MariaDB trong Linux
  • Cách thay đổi cổng MySQL / MariaDB mặc định trong Linux
  • Cách đặt lại mật khẩu gốc MySQL hoặc MariaDB trong Linux
Kết luận

Hy vọng rằng bây giờ, bạn có thể tạo người dùng trong máy chủ cơ sở dữ liệu MySQL của mình và thoải mái gán hoặc thu hồi quyền.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kết xuất tất cả các bảng ở định dạng CSV bằng cách sử dụng 'mysqldump'

  2. Đã vượt quá thời gian chờ nhận được Khóa; thử bắt đầu lại giao dịch mặc dù tôi không sử dụng giao dịch

  3. Phân vùng bảng dữ liệu bóng đá hàng tỷ hàng sử dụng ngữ cảnh dữ liệu

  4. Sử dụng CPU cao của MySQL

  5. Máy chủ MySQL đã biến mất khi nhập tệp sql lớn