如果我们只使用root用户就会存在安全隐患。为了解决这一问题,就出现了MySQL的用户管理。
1. 用户信息
MySQL中的用户,都存储在系统数据库mysql的user表中。
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> select host,user,authentication_string from user;
+-----------+------------------+------------------------------------------------------------------------+
| host | user | authentication_string |
+-----------+------------------+------------------------------------------------------------------------+
| localhost | debian-sys-maint | $A$005$m9a
VO7b;@OQ\OF ZUgVAO8yA/Uc0ymZ1Vm33s2QGo.ZJYcxOTjLtQ/MaIu9 |
| localhost | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.session | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.sys | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | root | |
+-----------+------------------+------------------------------------------------------------------------+
5 rows in set, 1 warning (0.01 sec)
2. 用户操作
• 添加用户
mysql> create user 'caryon'@'localhost' identified by 'www123abc';
Query OK, 0 rows affected (0.04 sec)
mysql> select host,user,authentication_string from user;
+-----------+------------------+----------------------------------------------------------------
| host | user | authentication_string
+-----------+------------------+----------------------------------------------------------------
W|BoStiz~'U'E caQy2rzeYOb4NxpnCBPtztTrB7hzsZoAQZUmGAzG9v2FED |
| localhost | debian-sys-maint | $A$005$m9a
VO7b;@OQ\OF ZUgVAO8yA/Uc0ymZ1Vm33s2QGo.ZJYcxOTjLtQ/MaIu9 |
| localhost | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERB
| localhost | mysql.session | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERB
| localhost | mysql.sys | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERB
| localhost | root |
+-----------+------------------+----------------------------------------------------------------
6 rows in set, 1 warning (0.01 sec)
• 删除用户
mysql> drop user 'caryon'@'localhost';
Query OK, 0 rows affected (0.02 sec)
mysql> select host,user,authentication_string from user;
+-----------+------------------+------------------------------------------------------------------------+
| host | user | authentication_string |
+-----------+------------------+------------------------------------------------------------------------+
| localhost | debian-sys-maint | $A$005$m9a
VO7b;@OQ\OF ZUgVAO8yA/Uc0ymZ1Vm33s2QGo.ZJYcxOTjLtQ/MaIu9 |
| localhost | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.session | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.sys | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | root | |
+-----------+------------------+------------------------------------------------------------------------+
5 rows in set, 1 warning (0.00 sec)
• 修改密码
mysql> alter user 'root'@'localhost' identified by '20233962Myl';
Query OK, 0 rows affected (0.01 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
3. 权限操作
MySQL数据库提供的权限列表:
• 授权
mysql> grant all on test.* to 'caryon'@'%';
Query OK, 0 rows affected (0.01 sec)
• 收权
mysql> revoke all on test.* from 'caryon'@'%';
Query OK, 0 rows affected (0.00 sec)