微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MySQL / MariaDB用户帐户名中允许哪些字符?

我不清楚MySQL / MariaDB用户帐户名中可能出现哪些字符,哪些字符是非法的.我在MysqL文档中阅读了第6.3.1 “User Names and Passwords”节.此部分包含有关字符编码和最大名称长度的信息,但它没有说明可以在帐户名称中使用的字符是否受到限制(或者我是否错过了该部分?).

那么,MysqL / MariaDB中是否有任何特殊的字符串不能用于用户帐户名?例如,控制字符(如换行符)或通配符(如星号)是非法字符吗?

解决方法:

用户名存储在MysqL.user表中.在我的系统(mariadb 10.3)上,该表创建为带有utf8字符集的CHAR(80).您可以通过运行来检查您的:

MariaDB [(none)]> SHOW CREATE TABLE MysqL.user\G
*************************** 1. row ***************************
       Table: user
Create Table: CREATE TABLE `user` (
  `Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
  `User` char(80) COLLATE utf8_bin NOT NULL DEFAULT '',

这意味着,对于我的版本,用户名可以是0到80个字符,这些字符是有效的utf8字符串,但不在基本多语言平面之外(只有3个字节的字符).

所以控制和通配符是有效的,但是,例如,不是表情符号:

MariaDB [(none)]> CREATE USER 'a*b';
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> CREATE USER 'a
    '> b';
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> CREATE USER '
                
                                 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐