代码改变世界

MySQL 的保留账号

2024-01-19 09:05  abce  阅读(21)  评论(0编辑  收藏  举报

以下账号是 MySQL 中的保留账号,在mysql初始化的时候创建。

>select user,host,authentication_string,account_locked from mysql.user where account_locked='Y';
+------------------+-----------+------------------------------------------------------------------------+----------------+
| user             | host      | authentication_string                                                  | account_locked |
+------------------+-----------+------------------------------------------------------------------------+----------------+
| mysql.infoschema | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | Y              |
| mysql.session    | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | Y              |
| mysql.sys        | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | Y              |
+------------------+-----------+------------------------------------------------------------------------+----------------+

 

这些用户是默认被锁定的,不能用于客户端建立连接。这些用户的密码是无效密码,即使有人尝试登录,也是不可能的

其中:
mysql.sys@localhost:被sys库中的视图、过程和函数使用,作为sys库中对象的定义者。使用mysql.sys@localhost,可以避免dba重命名或删除root用户后遇到问题。
mysql.session@localhost:被访问mysql server的内部插件使用
mysql.infoschema@localhost:information_schema中视图的定义者。可以避免dba重命名或删除root用户后遇到问题。

删除了mysql.sys@localhost后,sys系统库中的视图、过程和函数就不可以用了。因此,不建议删除这些系统用户。

>drop user `mysql.sys`@localhost;
ERROR 1396 (HY000): Operation DROP USER failed for 'mysql.sys'@'localhost'