MariaDB CREATE USER и GRANT PERMISSION не работают для меня - PullRequest
0 голосов
/ 17 января 2020

Я пытаюсь добавить пользователя с именем admin в mariadb и предоставить им все разрешения с любого хоста.

Я вижу, как пользователи добавляются, просматривая строки в mysql .user и после создания пользователь, которого я вижу записи для 'admin' @ 'localost' и 'admin' @ '%', но когда я пытаюсь выполнить гранты, они не получают действия;

Вот что я делаю как пользователь root.

MariaDB [mysql]> CREATE USER 'admin'@'localhost' IDENTIFIED BY 'mypswd';
Query OK, 0 rows affected (0.000 sec)

MariaDB [mysql]> select user, host, password from mysql.user;
+-------+-----------+-------------------------------------------+
| user  | host      | password                                  |
+-------+-----------+-------------------------------------------+
| root  | localhost |                                           |
| root  | 127.0.0.1 |                                           |
| root  | ::1       |                                           |
| admin | localhost | *81C702316842FA904B04F249E80134D93FEDB64C |
+-------+-----------+-------------------------------------------+
4 rows in set (0.000 sec)

MariaDB [mysql]> CREATE USER 'admin' IDENTIFIED BY 'mypswd';
Query OK, 0 rows affected (0.000 sec)

MariaDB [mysql]> select user, host, password from mysql.user;
+-------+-----------+-------------------------------------------+
| user  | host      | password                                  |
+-------+-----------+-------------------------------------------+
| root  | localhost |                                           |
| root  | 127.0.0.1 |                                           |
| root  | ::1       |                                           |
| admin | %         | *81C702316842FA904B04F249E80134D93FEDB64C |
| admin | localhost | *81C702316842FA904B04F249E80134D93FEDB64C |
+-------+-----------+-------------------------------------------+
5 rows in set (0.000 sec)

MariaDB [mysql]> GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%'  IDENTIFIED BY 'mypswd';
Query OK, 0 rows affected (0.000 sec)

MariaDB [mysql]> GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost'  IDENTIFIED BY 'mypswd';
Query OK, 0 rows affected (0.000 sec)

MariaDB [(none)]> show grants;
+----------------------------------------------------------------------------------------------------------------------------------------+
| Grants for root@localhost                                                                                                              |
+----------------------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*4B431B2B44AFED5F3EBCF1E6DFB60B3164A4B0D4' WITH GRANT OPTION |
| GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION                                                                          |
+----------------------------------------------------------------------------------------------------------------------------------------+
2 rows in set (0.000 sec)

Почему мой GRANT не работает?

1 Ответ

0 голосов
/ 17 января 2020

Извините, мой плохой. Я довольно тяжело искал ответ, но я только что обнаружил, что если вы вошли как root с локального хоста и просто используете SHOW GRANTS; он покажет вам только те гранты для'root'@'localhost'.

Мне нужно было сделать это:

MariaDB [mysql]> SHOW GRANTS FOR 'admin'@'%';
+---------------------------------------------------------------------------------------------------------------+
| Grants for admin@%                                                                                            |
+---------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' IDENTIFIED BY PASSWORD '*81C702316842FA904B04F249E80134D93FEDB64C' |
+---------------------------------------------------------------------------------------------------------------+
1 row in set (0.000 sec)

MariaDB [mysql]> SHOW GRANTS FOR 'admin'@'localhost';
+-----------------------------------------------------------------------------------------------------------------------+
| Grants for admin@localhost                                                                                            |
+-----------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' IDENTIFIED BY PASSWORD '*81C702316842FA904B04F249E80134D93FEDB64C' |
+-----------------------------------------------------------------------------------------------------------------------+
1 row in set (0.000 sec)

Я не нашел это интуитивно понятным.

...