Người dùng root mysql không thể cấp đặc quyền

Bài viết này cung cấp tổng quan đầy đủ về cách tạo tài khoản người dùng mới trong MySQL và cấp các loại đặc quyền khác nhau trên cơ sở dữ liệu MySQL. Tìm hiểu kiến ​​thức cơ bản về quản lý tài khoản người dùng và tìm gợi ý

Người dùng root mysql không thể cấp đặc quyền

Giới thiệu

Trước tiên, hãy tìm hiểu lý do tại sao chúng ta cần người dùng và đặc quyền. Khi bạn cài đặt Máy chủ MySQL trên hệ thống của mình và tạo cơ sở dữ liệu MySQL, bạn chạy các lệnh cần thiết trong trình bao MySQL với tư cách là người dùng gốc hoặc quản trị viên, nghĩa là bạn có toàn quyền kiểm soát mọi khía cạnh của cơ sở dữ liệu của mình

Tuy nhiên, khi bạn quyết định cho phép nhiều người truy cập và sửa đổi cơ sở dữ liệu MySQL của mình, bạn cần tạo người dùng và cấp cho họ đặc quyền. Bằng cách đó, bạn có thể cấp quyền hoặc đưa ra các hạn chế trong cơ sở dữ liệu hoặc các đối tượng cơ sở dữ liệu nhất định. Nói một cách đơn giản, bạn sẽ quyết định ai có thể làm gì và với loại đối tượng nào

Bài viết này cung cấp thông tin chi tiết về cách tạo người dùng mới và cấp các đặc quyền phù hợp trên cơ sở dữ liệu MySQL. Nhưng không chỉ vậy. Bạn cũng sẽ tìm hiểu thêm về việc tạo các đặc quyền tùy chỉnh và tìm hiểu các loại đặc quyền tồn tại trong MySQL. Hơn nữa, bạn sẽ có thêm thực hành về cách thu hồi đặc quyền và xóa người dùng khỏi MySQL

nội dung

Trên hết, bạn sẽ có cơ hội xem các ví dụ trong MySQL shell (máy khách dòng lệnh MySQL) cũng như trong dbForge Studio cho MySQL, một công cụ GUI để phát triển, quản lý và quản trị cơ sở dữ liệu MySQL và MariaDB

1. Tạo tài khoản người dùng MySQL mới qua MySQL Shell
2. Cấp đặc quyền và thêm quyền cho người dùng
3. Hiển thị tất cả các đặc quyền của tài khoản người dùng MySQL
4. Thu hồi tất cả các đặc quyền từ người dùng
5. Xóa người dùng khỏi MySQL
6. Quản lý người dùng và đặc quyền thông qua dbForge Studio dành cho MySQL
7. Tạo tài khoản người dùng qua Trình quản lý bảo mật
8. Cấp và thu hồi đặc quyền thông qua Trình quản lý bảo mật

Cách tạo tài khoản người dùng MySQL mới thông qua MySQL Shell

Để bắt đầu, bạn cần kết nối với phiên bản Máy chủ MySQL của mình và đăng nhập với tư cách người dùng root thông qua giao diện dòng lệnh MySQL

mysql -u root -p

Khi thực hiện, bạn cũng cần nhập mật khẩu cho tài khoản root và nhấn Enter

Enter password: ********

Để tạo tài khoản người dùng MySQL mới thông qua MySQL shell, bạn cần thực thi câu lệnh CREATE USER. Hãy xem cú pháp cơ bản của nó

CREATE USER [IF NOT EXISTS] 'new_user_name'@'host_name'
IDENTIFIED BY 'user_password'

Trong cú pháp trên, thay thế new_user_name bằng tên của người dùng mới và host_name bằng tên của máy chủ lưu trữ mà người dùng kết nối với Máy chủ MySQL

Tùy chọn, đặt host_name thành ‘localhost’ nếu bạn muốn người dùng chỉ có thể kết nối với Máy chủ MySQL từ localhost, có nghĩa là “máy tính này”. Nếu không phải như vậy, bạn có thể sử dụng địa chỉ IP của máy từ xa làm tên máy chủ chẳng hạn

CREATE USER 'new_user_name'@'10.8.0.5'
IDENTIFIED BY 'user_password';

Nếu bạn muốn người dùng có thể kết nối từ bất kỳ máy chủ nào, hãy sử dụng ký tự đại diện '%' làm host_name

Cuối cùng, đặt mật khẩu cho người dùng mới sau từ khóa IDENTIFIED BY

Lưu ý rằng tùy chọn IF NOT EXISTS cho phép đảm bảo rằng cùng một người dùng chưa được tạo trước đó

Khi bạn đã hoàn tất việc tạo người dùng mới, hãy nhớ cấp đặc quyền cho người dùng để cho phép họ truy cập cơ sở dữ liệu MySQL. Nếu không, người dùng sẽ không có bất kỳ quyền nào để tiếp cận hoặc thao tác với cơ sở dữ liệu theo bất kỳ cách nào

Cách cấp đặc quyền và thêm quyền cho người dùng

Để cung cấp cho người dùng quyền truy cập vào cơ sở dữ liệu và cấp quyền, thông thường bạn cần sử dụng câu lệnh GRANT sau

GRANT permission_type
ON privilege_level
TO 'new_user_name'@'host_name';

Mặc dù cú pháp được đề cập ở trên khá cơ bản và không thể hiện hết sự tinh tế, nhưng nó chỉ ra kết luận rằng có nhiều loại đặc quyền (hoặc quyền) có thể được cung cấp cho người dùng mới. Do đó, hãy minh họa các loại đặc quyền được phép phổ biến nhất có thể được sử dụng cho câu lệnh GRANT và REVOKE

  • TẤT CẢ CÁC ĐẶC QUYỀN – Người dùng nhận được tất cả các đặc quyền ở cấp độ truy cập được chỉ định
  • TẠO – Người dùng có quyền tạo cơ sở dữ liệu và bảng
  • DROP – Người dùng có quyền bỏ cơ sở dữ liệu và bảng
  • XÓA – Người dùng có quyền xóa các hàng khỏi một bảng cụ thể
  • CHÈN – Người dùng có quyền chèn hàng vào một bảng cụ thể
  • CHỌN – Người dùng có quyền đọc cơ sở dữ liệu
  • CẬP NHẬT - Người dùng có quyền cập nhật các hàng của bảng

Vì vậy, chúng tôi đã làm rõ những loại quyền tồn tại và xác định những gì cần đặt trong phần đầu tiên của lệnh GRANT. Bây giờ, hãy nói về phần thứ hai theo sau từ khóa ON, cụ thể là mức đặc quyền. Bằng mức đặc quyền, bạn có thể xác định đối tượng MySQL nào có thể được thao tác bởi tài khoản người dùng. tất cả cơ sở dữ liệu, cơ sở dữ liệu được chỉ định, bảng được chỉ định, cột nhất định hoặc quy trình được lưu trữ nhất định trong cơ sở dữ liệu. Trong đoạn sau, chúng tôi sẽ nói về điều đó chi tiết hơn và cung cấp các ví dụ

Cấp đặc quyền trên cơ sở dữ liệu cho người dùng

Để cấp tất cả các đặc quyền cho tài khoản người dùng trên tất cả các cơ sở dữ liệu thông qua dấu nhắc lệnh của MySQL, bạn cần gán các đặc quyền toàn cầu và sử dụng dấu *. * cú pháp sau từ khóa ON

GRANT ALL PRIVILEGES 
ON *.* 
TO [email protected]_name;

Trong ví dụ này, người dùng mới được cấp mức đặc quyền tối đa có thể. họ có quyền đọc, sửa đổi, thực thi lệnh và thực hiện bất kỳ tác vụ nào trên tất cả các cơ sở dữ liệu và bảng. Hãy cẩn thận vì điều này có thể ảnh hưởng đến bảo mật cơ sở dữ liệu của bạn và dẫn đến hậu quả tiêu cực

Thay vào đó, bạn có thể muốn cấp quyền hạn chế. Chẳng hạn, bạn muốn cho phép người dùng mới của mình chỉ truy cập một bảng nhất định trong cơ sở dữ liệu

GRANT ALL PRIVILEGES 
ON database_name.table_name 
TO [email protected]_name;

Trong trường hợp này, người dùng được cấp đặc quyền cấp bảng, áp dụng cho tất cả các cột trong bảng. Do đó, họ có quyền đọc, chỉnh sửa và sửa đổi bảng theo yêu cầu

Tuy nhiên, cũng có thể cần phải hạn chế quyền truy cập đó và cung cấp khả năng thực hiện các thao tác nhất định trong các đối tượng cơ sở dữ liệu được chỉ định

Ví dụ bên dưới, bạn có thể thấy rằng người dùng được cấp nhiều quyền. họ có quyền sử dụng câu lệnh CHỌN trên hai cột trong cơ sở dữ liệu, thực hiện CẬP NHẬT trên cột thứ ba và chạy CHÈN trên cột thứ tư trong cùng một cơ sở dữ liệu

GRANT 
SELECT (column1,column2), 
UPDATE(column3),
INSERT (column4) 
ON database_name
TO [email protected]_name;

Ngay khi bạn hoàn thành việc cung cấp quyền truy cập cơ sở dữ liệu cho người dùng mới, hãy đảm bảo tải lại tất cả các đặc quyền bằng cách chạy

________số 8

Sau đó, các thay đổi của bạn sẽ có hiệu lực

Hiển thị tất cả các đặc quyền tài khoản người dùng MySQL

Để hiển thị các đặc quyền được cấp cho tài khoản người dùng MySQL, bạn cần áp dụng lệnh SHOW GRANTS

SHOW GRANTS FOR [email protected]_name;

Đầu ra của lệnh trông tương tự như sau

Enter password: ********
0

Ngoài ra, bạn có thể tìm hiểu thêm về cách tạo danh sách quyền của người dùng cơ sở dữ liệu MySQL

Cách thu hồi tất cả các đặc quyền từ người dùng

Nếu bạn cần thu hồi đặc quyền từ tài khoản người dùng trên cơ sở dữ liệu, hãy áp dụng cú pháp tương tự như cú pháp bạn đã sử dụng khi cấp quyền

Enter password: ********
1

Vì vậy, nếu bạn, ví dụ, có ý định thu hồi tất cả các quyền từ người dùng trên một cơ sở dữ liệu cụ thể, hãy sử dụng cách sau

Enter password: ********
2

Xóa người dùng khỏi MySQL

Nếu bạn quyết định xóa tài khoản người dùng MySQL, hãy thực hiện lệnh DROP USER thông qua dòng lệnh

Enter password: ********
3

Lệnh trên sẽ xóa tài khoản người dùng cùng với tất cả các đặc quyền của nó

Quản lý người dùng và đặc quyền thông qua dbForge Studio cho MySQL

Mặc dù có thể quản lý người dùng và các đặc quyền của họ thông qua giao diện dòng lệnh của Máy chủ MySQL, nhưng sẽ thuận tiện và an toàn hơn rất nhiều khi thực hiện các tác vụ tương tự với sự trợ giúp của một công cụ quản trị cơ sở dữ liệu đáng tin cậy

Lý do cho điều đó là việc quản lý chính xác tài khoản người dùng đóng một vai trò quan trọng trong bảo mật cơ sở dữ liệu và vì số lượng tài khoản như vậy có thể đạt đến số lượng lớn nên DBA có thể khó kiểm soát ổn định đối với chúng

Do đó, nếu bạn đang tìm cách tăng cường bảo mật cơ sở dữ liệu và cải thiện quản trị, bạn có thể sử dụng một công cụ chuyên nghiệp để dễ dàng quản lý tài khoản người dùng MySQL. dbForge Studio cho MySQL là một giải pháp toàn cầu để phát triển, quản lý và quản trị cơ sở dữ liệu có công cụ Trình quản lý bảo mật tích hợp

Công cụ Security Manager được thiết kế để đơn giản hóa việc quản trị và tránh lỗi. Trong giao diện đồ họa tiện dụng, bạn có khả năng tạo, chỉnh sửa và xóa tài khoản người dùng cũng như cấp hoặc thu hồi các đặc quyền ở cấp độ toàn cầu hoặc đối tượng chỉ bằng một vài cú nhấp chuột. Để mở Trình quản lý bảo mật, hãy chuyển đến tab Quản trị của trang Bắt đầu và chọn Quản lý bảo mật máy chủ

Người dùng root mysql không thể cấp đặc quyền

Sau đó, cửa sổ Trình quản lý bảo mật sẽ mở ra. Nó bao gồm hai phần — phần bên trái hiển thị danh sách tất cả các tài khoản người dùng và phần bên phải cho phép bạn nhập và sửa đổi dữ liệu của tài khoản người dùng

Người dùng root mysql không thể cấp đặc quyền

Như có thể thấy ở trên, dữ liệu của tài khoản người dùng được chia thành sáu nhóm được đặt trên các tab riêng biệt. Chúng như sau

  • Chung — chứa tên, máy chủ, mật khẩu, số lượng kết nối/truy vấn/cập nhật tối đa mỗi giờ liên quan đến tài khoản người dùng
  • Vai trò — chứa các vai trò có thể được gán cho tài khoản người dùng (điều này chỉ đề cập đến các kết nối MariaDB)
  • Người dùng  — cho phép áp dụng các đặc quyền được cấp của người dùng khác cho tài khoản người dùng
  • Đặc quyền toàn cầu - cho phép đặt đặc quyền toàn cầu cho tài khoản người dùng
  • Đặc quyền đối tượng - cho phép đặt đặc quyền đối tượng cho tài khoản người dùng
  • SSL – chứa các tùy chọn kết nối SSL liên quan đến tài khoản người dùng

Tạo tài khoản người dùng thông qua Trình quản lý bảo mật

Tạo tài khoản người dùng mới trong Trình quản lý bảo mật dễ dàng như ABC. Nhấp vào nút Tạo người dùng phía trên danh sách tài khoản người dùng và ngay lập tức bắt đầu chèn thông tin cần thiết và tùy chọn cài đặt trên các tab tương ứng

Người dùng root mysql không thể cấp đặc quyền

Trên tab Chung, nhập các thông số tài khoản người dùng đã nói ở trên vào các trường tương ứng và nhấp vào Lưu trên thanh công cụ. Vậy là xong, bây giờ bạn có thể thấy tài khoản mới tạo ở phần bên trái của cửa sổ Trình quản lý bảo mật

Lần tới khi bạn cần sửa đổi bất kỳ tham số nào của người dùng, hãy chọn người dùng được yêu cầu ở phần bên trái của cửa sổ Trình quản lý bảo mật và dễ dàng chỉnh sửa các tham số của nó ở phần bên phải

Cấp và thu hồi đặc quyền thông qua Trình quản lý bảo mật

Với Security Manager, việc quản lý tài khoản người dùng trở nên tiết kiệm thời gian và hiệu quả. Hãy xem xét một ví dụ. Giả sử bạn muốn cấp một số đặc quyền toàn cầu (e. g. , Tạo và Chèn) và phản đối những cái đó đối với người dùng [email protected]%. Thay vì đi vào chi tiết của câu lệnh GRANT và chạy lệnh thông qua dấu nhắc lệnh, bạn chỉ cần điều hướng đến các tab bên trong dbForge Studio cho MySQL và chọn các tùy chọn cần thiết

Trên tab Người dùng của Trình quản lý Bảo mật, bạn có thể chọn áp dụng các đặc quyền được cấp cho người dùng khác chỉ bằng một cú nhấp chuột đơn giản vào hộp kiểm tương ứng

Người dùng root mysql không thể cấp đặc quyền

Trên tab Đặc quyền toàn cầu, chọn các hộp kiểm thích hợp để cấp các đặc quyền toàn cầu được yêu cầu và xóa lựa chọn để thu hồi các đặc quyền từ tài khoản người dùng. Trong ví dụ bên dưới, chúng tôi chọn cung cấp cho người dùng [email được bảo vệ]% các đặc quyền CREATE và INSERT áp dụng cho tất cả các cơ sở dữ liệu

Người dùng root mysql không thể cấp đặc quyền

Tiếp theo, chuyển sang tab Đặc quyền đối tượng. Tại đây, bạn có thể cấp đặc quyền ở cấp độ đối tượng. Đầu tiên, chọn lược đồ cần thiết ở bên trái và mở rộng cây lược đồ. Chọn các đối tượng (chẳng hạn như bảng, dạng xem, v.v. )  và chỉ định các đặc quyền bắt buộc bằng cách chọn các hộp kiểm

Ở dưới cùng của cửa sổ, bạn có thể thấy danh sách các đặc quyền đối tượng cho tài khoản người dùng hiện tại. Ngoài ra, bạn có thể nhấn vào biểu tượng Cancel để thu hồi các đặc quyền đã chọn hoặc thu hồi tất cả các đặc quyền của đối tượng

Như bạn có thể thấy trên ảnh chụp màn hình bên dưới, tài khoản người dùng [email protected]% có quyền chạy các tập lệnh CHỌN, CHÈN VÀ CẬP NHẬT trên bảng Tác nhân. Ngoài ra, TÙY CHỌN CẤP đã bật cho phép người dùng cấp quyền trên bảng này cho người dùng khác

Người dùng root mysql không thể cấp đặc quyền

Bạn có thể lưu các thay đổi ngay lập tức bằng cách nhấp vào Lưu hoặc xem trước tập lệnh bằng cách nhấp vào Thay đổi tập lệnh để làm mới tất cả các thay đổi trong bộ nhớ của bạn

Người dùng root mysql không thể cấp đặc quyền

Hơn nữa, dbForge Studio cho MySQL cho phép bạn tạo người dùng mới dựa trên người dùng hiện có, do đó, tiết kiệm thời gian và công sức của bạn. Để thực hiện việc này, nhấp chuột phải vào tài khoản người dùng và chọn Nhân đôi đối tượng trên menu lối tắt

Người dùng root mysql không thể cấp đặc quyền

Sự kết luận

Tóm lại, chúng tôi đã cung cấp tổng quan chi tiết về cách quản lý người dùng và đặc quyền tốt nhất trong MySQL. Thông tin này sẽ hữu ích cho người mới bắt đầu cũng như DBA có kinh nghiệm vì nó chứa thông tin cơ bản và mẹo hữu ích về quản lý hiệu quả tài khoản của người dùng trong cơ sở dữ liệu MySQL. Sử dụng dbForge Studio cho MySQL để đưa bảo mật cơ sở dữ liệu của bạn lên một cấp độ hoàn toàn mới và tăng cường đáng kể việc quản trị cơ sở dữ liệu của bạn. Ngoài ra, bạn có thể xem video hướng dẫn này

Người dùng root mysql không thể cấp đặc quyền

  • Tác giả
  • Bài viết gần đây

Người dùng root mysql không thể cấp đặc quyền

Nhóm dbForge

Bài đăng mới nhất của Nhóm dbForge (xem tất cả)

  • SSMSBoost vs dbForge SQL Complete - Ngày 1 tháng 12 năm 2022
  • 15 Ứng dụng khách MySQL GUI tốt nhất cho macOS - Ngày 28 tháng 11 năm 2022
  • Gửi Nhật ký so sánh lược đồ và dữ liệu tới email - Ngày 28 tháng 11 năm 2022

tạo tài khoản người dùng, dbForge Studio cho MySQL, cấp đặc quyền, mysql, thu hồi đặc quyền, tài khoản người dùng