рддреЗ рдореНрд╣рдгрддрд╛рдд рдХреА рд╕рд░реНрд╡реЛрддреНрддрдо рдкрд╛рд╕рд╡рд░реНрдб рд╣рд╛ рдЖрд╣реЗ рдЬреЛ рддреБрдореНрд╣рд╛рд▓рд╛ рд▓рдХреНрд╖рд╛рдд рдареЗрд╡рдгреНрдпрд╛рдЪреА рдЧрд░рдЬ рдирд╛рд╣реА. MySQL рдЪреНрдпрд╛ рдмрд╛рдмрддреАрдд рдкреНрд▓рдЧрдЗрдирдореБрд│реЗ рд╣реЗ рд╢рдХреНрдп рдЖрд╣реЗ
рд╣реЗ рджреЛрдиреНрд╣реА рдкреНрд▓рдЧрдЗрди рдЕрдЬрд┐рдмрд╛рдд рдирд╡реАрди рдирд╛рд╣реАрдд; рддреНрдпрд╛рдВрдЪреНрдпрд╛рдмрджреНрджрд▓ рдпрд╛рдЪ рдмреНрд▓реЙрдЧрдордзреНрдпреЗ рдмрд░реЗрдЪ рдХрд╛рд╣реА рд╕рд╛рдВрдЧрд┐рддрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде рдпрд╛рд╡рд┐рд╖рдпреАрдЪреНрдпрд╛ рд▓реЗрдЦрд╛рдд
рдореА рдореНрд╣рдЯрд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ, рд╣реА рдмрд╛рддрдореА рдирд╛рд╣реА рдЖрдгрд┐ рдбреЗрдмрд┐рдпрди рдЯреАрдорджреНрд╡рд╛рд░реЗ рд╕рдорд░реНрдерд┐рдд .deb рдкреЕрдХреЗрдЬреЗрд╕ рд╡рд╛рдкрд░реВрди MySQL рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛рдирд╛, рд╕реЙрдХреЗрдЯ рдкреНрд░рдорд╛рдгреАрдХрд░рдгрд╛рд╕рд╛рдареА рд░реВрдЯ рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рддрдпрд╛рд░ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ. рд╣реЗ MySQL рдЖрдгрд┐ MariaDB рджреЛрдиреНрд╣реАрд╕рд╛рдареА рдЦрд░реЗ рдЖрд╣реЗ.
root@app:~# apt-cache show mysql-server-5.7 | grep -i maintainers
Original-Maintainer: Debian MySQL Maintainers <[email protected]>
Original-Maintainer: Debian MySQL Maintainers <<a href="mailto:[email protected]">[email protected]</a>>
MySQL рд╕рд╛рдареА рдбреЗрдмрд┐рдпрди рдкреЕрдХреЗрдЬреЗрд╕рд╕рд╣, рд░реВрдЯ рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдЦрд╛рд▓реАрд▓рдкреНрд░рдорд╛рдгреЗ рдкреНрд░рдорд╛рдгреАрдХреГрдд рдЖрд╣реЗ:
root@app:~# whoami
root=
root@app:~# mysql
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 4
Server version: 5.7.27-0ubuntu0.16.04.1 (Ubuntu)
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
mysql> select user, host, plugin, authentication_string from mysql.user where user = 'root';
+------+-----------+-------------+-----------------------+
| user | host | plugin | authentication_string |
+------+-----------+-------------+-----------------------+
| root | localhost | auth_socket | |
+------+-----------+-------------+-----------------------+
1 row in set (0.01 sec)
MariaDB рд╕рд╛рдареА .deb рдкреЕрдХреЗрдЬрдЪреНрдпрд╛ рдмрд╛рдмрддреАрддрд╣реА рдЕрд╕реЗрдЪ рдЖрд╣реЗ:
10.0.38-MariaDB-0ubuntu0.16.04.1 Ubuntu 16.04
MariaDB [(none)]> show grants;
+------------------------------------------------------------------------------------------------+
| Grants for root@localhost |
+------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED VIA unix_socket WITH GRANT OPTION |
| GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION |
+------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
рдЕрдзрд┐рдХреГрдд рдкрд░реНрдХреЛрдирд╛ рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрдордзреАрд▓ .deb рдкреЕрдХреЗрдЬреЗрд╕ рджреЗрдЦреАрд▓ рдСрде-рд╕реЙрдХреЗрдЯ рдЕрдВрддрд░реНрдЧрдд рдЖрдгрд┐ рдкрд░реНрдХреЛрдирд╛ рд╕рд░реНрд╡реНрд╣рд░рд╕рд╛рдареА рд░реВрдЯ рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рддрд╛рдд. рд╕рд╣ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдК
root@app:~# whoami
root
root@app:~# mysql
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 9
Server version: 8.0.16-7 Percona Server (GPL), Release '7', Revision '613e312'
Copyright (c) 2009-2019 Percona LLC and/or its affiliates
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
mysql> select user, host, plugin, authentication_string from mysql.user where user ='root';
+------+-----------+-------------+-----------------------+
| user | host | plugin | authentication_string |
+------+-----------+-------------+-----------------------+
| root | localhost | auth_socket | |
+------+-----------+-------------+-----------------------+
1 row in set (0.00 sec)
рдордЧ рдЬрд╛рджреВ рдХрд╛рдп рдЖрд╣реЗ? рдкреНрд▓рдЧрдЗрди рддрдкрд╛рд╕рддреЗ рдХреА рд▓рд┐рдирдХреНрд╕ рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдХреНрд▓рд╛рдпрдВрдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЪрд╛рд▓рд╡рдгрд╛рд░реНтАНрдпрд╛ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдЪреА рдорд╛рд╣рд┐рддреА рдЧреЛрд│рд╛ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА SO_PEERCRED рд╕реЙрдХреЗрдЯ рдкрд░реНрдпрд╛рдп рд╡рд╛рдкрд░реВрди MySQL рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рд╢реА рдЬреБрд│рддреЛ. рдЕрд╢рд╛рдкреНрд░рдХрд╛рд░реЗ, рдкреНрд▓рдЧрдЗрди рдлрдХреНрдд рд▓рд┐рдирдХреНрд╕ рд╕рд╛рд░рдЦреНрдпрд╛ SO_PEERCRED рдкрд░реНрдпрд╛рдпрд╛рд▓рд╛ рд╕рдкреЛрд░реНрдЯ рдХрд░рдгрд╛рд░реНтАНрдпрд╛ рд╕рд┐рд╕реНрдЯреАрдорд╡рд░рдЪ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ. SO_PEERCRED рд╕реЙрдХреЗрдЯ рдкрд░реНрдпрд╛рдп рддреБрдореНрд╣рд╛рд▓рд╛ рд╕реЙрдХреЗрдЯрд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдкреНрд░рдХреНрд░рд┐рдпреЗрдЪрд╛ uid рд╢реЛрдзрдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЛ. рдЖрдгрд┐ рдордЧ рддреНрдпрд╛рд▓рд╛ рдЖрдзреАрдЪ рдпрд╛ uid рд╢реА рд╕рдВрдмрдВрдзрд┐рдд рд╡рд╛рдкрд░рдХрд░реНрддрд╛рдирд╛рд╡ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЗ.
рдпреЗрдереЗ "vagrant" рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдЪреЗ рдЙрджрд╛рд╣рд░рдг рдЖрд╣реЗ:
vagrant@mysql1:~$ whoami
vagrant
vagrant@mysql1:~$ mysql
ERROR 1698 (28000): Access denied for user 'vagrant'@'localhost'
MySQL рдордзреНтАНрдпреЗ рдХреЛрдгреАрд╣реА "рд╡рд╛рдЧреНрд░рдВрдЯ" рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдирд╕рд▓реНрдпрд╛рдореБрд│реЗ, рдЖрдореНрд╣рд╛рд▓рд╛ рдкреНрд░рд╡реЗрд╢ рдирд╛рдХрд╛рд░рд▓рд╛ рдЬрд╛рддреЛ. рдЪрд▓рд╛ рдЕрд╕рд╛ рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рддрдпрд╛рд░ рдХрд░реВ рдЖрдгрд┐ рдкреБрдиреНрд╣рд╛ рдкреНрд░рдпрддреНрди рдХрд░рд╛:
MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'vagrant'@'localhost' IDENTIFIED VIA unix_socket;
Query OK, 0 rows affected (0.00 sec)
vagrant@mysql1:~$ mysql
Welcome to the MariaDB monitor. Commands end with ; or g.
Your MariaDB connection id is 45
Server version: 10.0.38-MariaDB-0ubuntu0.16.04.1 Ubuntu 16.04
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
MariaDB [(none)]> show grants;
+---------------------------------------------------------------------------------+
| Grants for vagrant@localhost |
+---------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'vagrant'@'localhost' IDENTIFIED VIA unix_socket |
+---------------------------------------------------------------------------------+
1 row in set (0.00 sec)
рдЭрд╛рд▓реЗ!
рдмрд░рдВ, рдиреЙрди-рдбреЗрдмрд┐рдпрди рд╡рд┐рддрд░рдгрд╛рдЪреЗ рдХрд╛рдп рдЬреЗрдереЗ рд╣реЗ рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░ рдкреНрд░рджрд╛рди рдХреЗрд▓реЗрд▓реЗ рдирд╛рд╣реА? CentOS 8 рд╡рд░ рд╕реНрдерд╛рдкрд┐рдд MySQL 7 рд╕рд╛рдареА Percona рд╕рд░реНрд╡реНрд╣рд░ рд╡рд╛рдкрд░реВрди рдкрд╛рд╣реВ:
mysql> show variables like '%version%comment';
+-----------------+---------------------------------------------------+
| Variable_name | Value |
+-----------------+---------------------------------------------------+
| version_comment | Percona Server (GPL), Release 7, Revision 613e312 |
+-----------------+---------------------------------------------------+
1 row in set (0.01 sec)
mysql> CREATE USER 'percona'@'localhost' IDENTIFIED WITH auth_socket;
ERROR 1524 (HY000): Plugin 'auth_socket' is not loaded
рдмрдорд░. рдХрд╛рдп рдЧрд╣рд╛рд│ рд╣реЛрддреЗ? рдкреНрд▓рдЧрдЗрди рд▓реЛрдб рдХреЗрд▓реЗ рдирд╛рд╣реА:
mysql> pager grep socket
PAGER set to 'grep socket'
mysql> show plugins;
47 rows in set (0.00 sec)
рдкреНрд░рдХреНрд░рд┐рдпреЗрдд рдкреНрд▓рдЧрдЗрди рдЬреЛрдбреВрдпрд╛:
mysql> nopager
PAGER set to stdout
mysql> INSTALL PLUGIN auth_socket SONAME 'auth_socket.so';
Query OK, 0 rows affected (0.00 sec)
mysql> pager grep socket; show plugins;
PAGER set to 'grep socket'
| auth_socket | ACTIVE | AUTHENTICATION | auth_socket.so | GPL |
48 rows in set (0.00 sec)
рдЖрддрд╛ рдЖрдордЪреНрдпрд╛рдХрдбреЗ рд╕рд░реНрд╡ рдХрд╛рд╣реА рдЖрд╣реЗ. рдЪрд▓рд╛ рдкреБрдиреНрд╣рд╛ рдкреНрд░рдпрддреНрди рдХрд░реВрдпрд╛:
mysql> CREATE USER 'percona'@'localhost' IDENTIFIED WITH auth_socket;
Query OK, 0 rows affected (0.01 sec)
mysql> GRANT ALL PRIVILEGES ON *.* TO 'percona'@'localhost';
Query OK, 0 rows affected (0.01 sec)
рддреБрдореНрд╣реА рдЖрддрд╛ тАЬperconaтАЭ рд╡рд╛рдкрд░рдХрд░реНрддрд╛рдирд╛рд╡ рд╡рд╛рдкрд░реВрди рд▓реЙрдЧ рдЗрди рдХрд░реВ рд╢рдХрддрд╛.
[percona@ip-192-168-1-111 ~]$ whoami
percona
[percona@ip-192-168-1-111 ~]$ mysql -upercona
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 19
Server version: 8.0.16-7 Percona Server (GPL), Release 7, Revision 613e312
Copyright (c) 2009-2019 Percona LLC and/or its affiliates
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
mysql> select user, host, plugin, authentication_string from mysql.user where user ='percona';
+---------+-----------+-------------+-----------------------+
| user | host | plugin | authentication_string |
+---------+-----------+-------------+-----------------------+
| percona | localhost | auth_socket | |
+---------+-----------+-------------+-----------------------+
1 row in set (0.00 sec)
рдЖрдгрд┐ рддреЗ рдкреБрдиреНрд╣рд╛ рдХрд╛рдо рдХреЗрд▓реЗ!
рдкреНрд░рд╢реНрди: рддреНрдпрд╛рдЪ рдкрд░реНрдХреЛрдирд╛ рд▓реЙрдЧрд┐рди рдЕрдВрддрд░реНрдЧрдд рд╕рд┐рд╕реНрдЯрдордордзреНрдпреЗ рд▓реЙрдЧ рдЗрди рдХрд░рдгреЗ рд╢рдХреНрдп рд╣реЛрдИрд▓, рдкрд░рдВрддреБ рднрд┐рдиреНрди рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдореНрд╣рдгреВрди?
[percona@ip-192-168-1-111 ~]$ logout
[root@ip-192-168-1-111 ~]# mysql -upercona
ERROR 1698 (28000): Access denied for user 'percona'@'localhost'
рдирд╛рд╣реА, рддреЗ рдЪрд╛рд▓рдгрд╛рд░ рдирд╛рд╣реА.
рдирд┐рд╖реНрдХрд░реНрд╖
MySQL рдЕрдиреЗрдХ рдкреИрд▓реВрдВрдордзреНрдпреЗ рд▓рд╡рдЪрд┐рдХ рдЖрд╣реЗ, рддреНрдпрд╛рдкреИрдХреА рдПрдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкрджреНрдзрдд рдЖрд╣реЗ. рддреБрдореНрд╣реА рдпрд╛ рдкреЛрд╕реНрдЯрд╡рд░реВрди рдкрд╛рд╣реВ рд╢рдХрддрд╛ рдХреА, OS рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрд╡рд░ рдЖрдзрд╛рд░рд┐рдд, рдкрд╛рд╕рд╡рд░реНрдбрд╢рд┐рд╡рд╛рдп рдкреНрд░рд╡реЗрд╢ рдорд┐рд│реВ рд╢рдХрддреЛ. рд╣реЗ рдХрд╛рд╣реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд░рд┐рд╕реНрдерд┐рддреАрдВрдордзреНрдпреЗ рдЙрдкрдпреБрдХреНрдд рдард░реВ рд╢рдХрддреЗ, рдЖрдгрд┐ рддреНрдпрд╛рдкреИрдХреА рдПрдХ рдореНрд╣рдгрдЬреЗ RDS/Aurora рдордзреВрди рдирд┐рдпрдорд┐рдд MySQL рд╡рд░ рд╕реНрдерд▓рд╛рдВрддрд░ рдХрд░рддрд╛рдирд╛
рд╕реНрддреНрд░реЛрдд: www.habr.com