我不清楚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 举报,一经查实,本站将立刻删除。