目录
用户账户管理
用户名和密码
TiDB 将用户账户存储在 mysql.user 系统表里面。每个账户由用户名和 host 作为标识。每个账户可以设置一个密码。每个用户名最长为 32 个字符。
- 通过 MySQL 客户端连接到 TiDB 服务器,通过指定的账户和密码登录:
mysql --port 4000 --user xxx --password
- 使用缩写的命令行参数则是:
mysql -P 4000 -u xxx -p
添加用户
- 添加用户有两种方式:
- 通过标准的用户管理的 SQL 语句创建用户以及授予权限,比如 CREATE USER 和 GRANT。
- 直接通过 INSERT、UPDATE 和 DELETE 操作授权表。不推荐使用这种方式添加用户,因为容易导致修改不完整。
除以上两种方法外,你还可以使用第三方图形化界面工具来添加用户。
- 语法:
CREATE USER [IF NOT EXISTS] user [IDENTIFIED BY 'auth_string'];
设置登录密码后,auth_string 会被 TiDB 经过加密存储在 mysql.user 表中。
CREATE USER 'test'@'127.0.0.1' IDENTIFIED BY 'xxx';
- 说明:
- TiDB 的用户账户名由一个用户名和一个主机名组成。账户名的语法为 'user_name'@'host_name'。
- user_name 大小写敏感。
- host_name 可以是一个主机名或 IP 地址。主机名或 IP 地址中允许使用通配符 % 和 _。例如,名为 '%' 的主机名可以匹配所有主机,'192.168.1.%' 可以匹配子网中的所有主机。
- host 支持模糊匹配,比如:
CREATE USER 'test'@'192.168.10.%';
允许 test 用户从 192.168.10 子网的任何一个主机登录。
如果没有指定 host,则默认是所有 IP 均可登录。如果没有指定密码,默认为空:
CREATE USER 'test';
等价于:
CREATE USER 'test'