Mysql thiếu đặc quyền GRANT OPTION

Khi bạn tạo phiên bản CSDL mới, người dùng chính mặc định mà bạn sử dụng sẽ nhận được các đặc quyền nhất định cho phiên bản CSDL đó. Bạn không thể thay đổi tên người dùng chính sau khi phiên bản CSDL được tạo

Chúng tôi thực sự khuyên bạn không nên sử dụng người dùng chính trực tiếp trong các ứng dụng của mình. Thay vào đó, hãy tuân theo phương pháp hay nhất là sử dụng người dùng cơ sở dữ liệu được tạo với các đặc quyền tối thiểu cần thiết cho ứng dụng của bạn

Nếu vô tình xóa quyền của người dùng chính, bạn có thể khôi phục chúng bằng cách sửa đổi phiên bản CSDL và đặt mật khẩu người dùng chính mới. Để biết thêm thông tin về cách sửa đổi phiên bản CSDL, xem Sửa đổi phiên bản CSDL Amazon RDS

Bảng sau đây hiển thị các đặc quyền và vai trò cơ sở dữ liệu mà người dùng chính nhận được đối với từng công cụ cơ sở dữ liệu

Cơ sở dữ liệu

Đặc quyền hệ thống

Vai trò cơ sở dữ liệu

MySQL và MariaDB

_______40, _______41, _______42, _______43, _______44, _______45, _______46, _______47, _______48, _______49, _______410, _______411, _______412, _______413, _______414, _______415, _______416, _______417, _______418, _______419, _______420, _______421, _______422, _______423

PostgreSQL

$ mysql --user=username
24,
$ mysql --user=username
25,
$ mysql --user=username
26,
$ mysql --user=username
27,
$ mysql --user=username
28,
$ mysql --user=username
29,
$ mysql --user=username
30,
$ mysql --user=username
31,
$ mysql --user=username
32,
$ mysql --user=username
33,
$ mysql --user=username
34,
$ mysql --user=username
35,
$ mysql --user=username
36,
$ mysql --user=username
37,
$ mysql --user=username
38,
$ mysql --user=username
39,
$ mysql --user=username
40

$ mysql --user=username
41

Để biết thêm thông tin về RDS_SUPERUSER, hãy xem Tìm hiểu về vai trò và quyền của PostgreSQL

tiên tri

$ mysql --user=username
42,
$ mysql --user=username
43,
$ mysql --user=username
44,
$ mysql --user=username
45,
$ mysql --user=username
46,
$ mysql --user=username
47,
$ mysql --user=username
48,
$ mysql --user=username
49

_______450, _______451, _______452, _______453, _______454, _______455, _______456, _______457, _______458

Máy chủ Microsoft SQL

_______459, _______460, _______461, _______462, _______463, _______464, _______465, _______466, _______467, _______468, _______469, _______470, _______471, _______472, _______473, _______474

$ mysql --user=username
75 [vai trò cấp cơ sở dữ liệu],
$ mysql --user=username
76 [vai trò cấp máy chủ],
$ mysql --user=username
77 [vai trò cấp máy chủ],
$ mysql --user=username
78 [vai trò cấp cơ sở dữ liệu]

Để bắt đầu chỉnh sửa các đặc quyền trong MySQL, trước tiên bạn phải đăng nhập vào máy chủ của mình, sau đó kết nối với máy khách

$ mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 112813
Server version: 5.5.43-0ubuntu0.14.04.1 [Ubuntu]
[...]
mysql>
19. Thông thường, bạn sẽ muốn kết nối với
$ mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 112813
Server version: 5.5.43-0ubuntu0.14.04.1 [Ubuntu]
[...]
mysql>
20 hoặc bất kỳ tài khoản nào là tài khoản 'siêu người dùng' chính, ban đầu của bạn có toàn quyền truy cập trong toàn bộ quá trình cài đặt MySQL

Thông thường, người dùng

$ mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 112813
Server version: 5.5.43-0ubuntu0.14.04.1 [Ubuntu]
[...]
mysql>
20 sẽ được chỉ định mật khẩu xác thực khi MySQL được cài đặt, nhưng nếu không phải như vậy, bạn nên thực hiện các bước để tăng cường bảo mật của mình bằng cách thêm mật khẩu
$ mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 112813
Server version: 5.5.43-0ubuntu0.14.04.1 [Ubuntu]
[...]
mysql>
20 như được minh họa trong tài liệu chính thức

Kết nối với Công cụ dòng lệnh MySQL

Đối với ví dụ này, chúng tôi sẽ giả sử

$ mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 112813
Server version: 5.5.43-0ubuntu0.14.04.1 [Ubuntu]
[...]
mysql>
20 là tài khoản MySQL chính. Để bắt đầu sử dụng MySQL Command-Line Tool [_______01], hãy kết nối với máy chủ của bạn với tư cách là người dùng
$ mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 112813
Server version: 5.5.43-0ubuntu0.14.04.1 [Ubuntu]
[...]
mysql>
20, sau đó đưa ra lệnh
$ mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 112813
Server version: 5.5.43-0ubuntu0.14.04.1 [Ubuntu]
[...]
mysql>
19

$ mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 112813
Server version: 5.5.43-0ubuntu0.14.04.1 [Ubuntu]
[...]
mysql>

Nếu thành công, bạn sẽ thấy một số đầu ra về kết nối MySQL của mình và hướng xuống dấu nhắc

$ mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 112813
Server version: 5.5.43-0ubuntu0.14.04.1 [Ubuntu]
[...]
mysql>
19

Ghi chú. Trong trường hợp bạn không thể kết nối trực tiếp với máy chủ với tư cách là người dùng

$ mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 112813
Server version: 5.5.43-0ubuntu0.14.04.1 [Ubuntu]
[...]
mysql>
20 trước khi kết nối với
$ mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 112813
Server version: 5.5.43-0ubuntu0.14.04.1 [Ubuntu]
[...]
mysql>
19, bạn có thể chỉ định người dùng mà bạn muốn kết nối bằng cách thêm cờ
$ mysql --user=username
7

$ mysql --user=username

Cấp đặc quyền

Bây giờ bạn đang ở dấu nhắc

$ mysql --user=username
1, bạn chỉ cần đưa ra lệnh
$ mysql --user=username
9 với các tùy chọn cần thiết để áp dụng các quyền thích hợp

Các loại đặc quyền

Lệnh

$ mysql --user=username
9 có khả năng áp dụng nhiều đặc quyền khác nhau, mọi thứ từ khả năng
mysql> GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';
1 bảng và cơ sở dữ liệu, đọc hoặc viết
mysql> GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';
2 và thậm chí cả máy chủ
mysql> GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';
3. Có nhiều loại cờ và tùy chọn có sẵn cho lệnh, vì vậy bạn có thể muốn tự làm quen với những gì
$ mysql --user=username
9 thực sự có thể làm bằng cách duyệt qua tài liệu chính thức

Đặc quyền dành riêng cho cơ sở dữ liệu

Trong hầu hết các trường hợp, bạn sẽ cấp đặc quyền cho người dùng MySQL dựa trên

mysql> GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';
5 cụ thể mà tài khoản đó sẽ có quyền truy cập. Ví dụ, thông lệ phổ biến là mỗi MySQL
mysql> GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';
5 duy nhất trên máy chủ có một
mysql> GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';
7 duy nhất của riêng nó được liên kết với nó, sao cho chỉ một
mysql> GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';
7 duy nhất có quyền truy cập xác thực vào một
mysql> GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';
5 duy nhất và ngược lại

Để

$ mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 112813
Server version: 5.5.43-0ubuntu0.14.04.1 [Ubuntu]
[...]
mysql>
60 đặc quyền cho một
mysql> GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';
7, cho phép người dùng đó toàn quyền kiểm soát một
mysql> GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';
5 cụ thể, hãy sử dụng cú pháp sau

mysql> GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';

Với lệnh đó, chúng tôi đã nói với MySQL để

  • $ mysql --user=username
    
    9
    $ mysql
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 112813
    Server version: 5.5.43-0ubuntu0.14.04.1 [Ubuntu]
    [...]
    mysql>
    
    64 của loại
    $ mysql
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 112813
    Server version: 5.5.43-0ubuntu0.14.04.1 [Ubuntu]
    [...]
    mysql>
    
    65 [do đó tất nhiên là mọi thứ]. Ghi chú. Hầu hết các bản cài đặt MySQL hiện đại không yêu cầu từ khóa
    $ mysql
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 112813
    Server version: 5.5.43-0ubuntu0.14.04.1 [Ubuntu]
    [...]
    mysql>
    
    64 tùy chọn
  • Các đặc quyền này dành cho
    $ mysql
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 112813
    Server version: 5.5.43-0ubuntu0.14.04.1 [Ubuntu]
    [...]
    mysql>
    
    67 và nó áp dụng cho tất cả các bảng của cơ sở dữ liệu đó, được biểu thị bằng
    $ mysql
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 112813
    Server version: 5.5.43-0ubuntu0.14.04.1 [Ubuntu]
    [...]
    mysql>
    
    68 theo sau
  • Các đặc quyền này được gán cho
    $ mysql
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 112813
    Server version: 5.5.43-0ubuntu0.14.04.1 [Ubuntu]
    [...]
    mysql>
    
    69 khi
    $ mysql
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 112813
    Server version: 5.5.43-0ubuntu0.14.04.1 [Ubuntu]
    [...]
    mysql>
    
    69 đó được kết nối thông qua cục bộ, như được chỉ định bởi
    $ mysql --user=username
    
    81. Để chỉ định bất kỳ máy chủ hợp lệ nào, hãy thay thế
    $ mysql --user=username
    
    82 bằng
    $ mysql --user=username
    
    83

Thay vì cung cấp tất cả các đặc quyền cho toàn bộ cơ sở dữ liệu, có lẽ bạn chỉ muốn cung cấp cho người dùng

$ mysql --user=username
84 khả năng đọc dữ liệu [
$ mysql --user=username
85] từ bảng
$ mysql --user=username
86 của cơ sở dữ liệu
$ mysql --user=username
87. Điều đó sẽ dễ dàng được thực hiện như vậy

$ mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 112813
Server version: 5.5.43-0ubuntu0.14.04.1 [Ubuntu]
[...]
mysql>
6

Tạo một siêu người dùng khác

Mặc dù không đặc biệt an toàn, nhưng trong một số trường hợp, bạn có thể muốn tạo một 'siêu người dùng' khác, có TẤT CẢ các đặc quyền trên TẤT CẢ các cơ sở dữ liệu trên máy chủ. Điều đó có thể được thực hiện tương tự như trên, nhưng bằng cách thay thế

$ mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 112813
Server version: 5.5.43-0ubuntu0.14.04.1 [Ubuntu]
[...]
mysql>
67 bằng dấu hoa thị ký tự đại diện

$ mysql --user=username
8

Bây giờ

$ mysql --user=username
84 có các đặc quyền giống như tài khoản
$ mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 112813
Server version: 5.5.43-0ubuntu0.14.04.1 [Ubuntu]
[...]
mysql>
20 mặc định, hãy cẩn thận

Lưu thay đổi của bạn

Là bước cuối cùng sau bất kỳ cập nhật nào đối với đặc quyền của người dùng, hãy đảm bảo lưu các thay đổi bằng cách đưa ra lệnh

$ mysql --user=username
91 từ dấu nhắc
$ mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 112813
Server version: 5.5.43-0ubuntu0.14.04.1 [Ubuntu]
[...]
mysql>
19

Chủ Đề