目录
创建用户
创建用户注意事项:
- 区分大小写
- 不超过32个字符
创建用户方式一: create user
create USER [IF NOT exists]
账户名 [1.用户身份验证选项] ...
[2.with 资源控制选项] [3.密码管理选项|4.账户锁定选项]
例如
CREATE USER user1@’localhost’ IDENTIFIED BY ‘123456’;
1.用户身份验证选项 由default_authentication_plugin系统变量定义的插件进行身份验证
2.with 资源控制选项 N(表示无限制)
3.密码管理选项 password expire default
4.账户锁定选项 account unlock
创建简单用户
#举例
#创建最简单的用户 (不限定客户端,不需要密码,没有任何限制)
create user "jojo1";
不写主机名创建完成后 该用户host值为% 与""等价且可以在任何主机中连接mysql
当值为localhost时,当前用户只能从本地主机连接mysql
用户名和主机名在创建的时候,如果不包含空格 - 等 可以省略引号"" 用户名为空字符串时代表一个匿名用户
创建带有密码的用户——identified with
#语法——在创建用户时添加identified by 关键字
例如
create user "jojo2"@"localhost" identified by "123456";
也可以同时指定用户身份验证选项的插件
#用户身份验证选项
identified with 验证插件名
identified with 验证插件名 by "明文密码"
identified with 验证插件名 as "哈希字符串"
identified by password "哈希字符串"
设置用户可操作性范围
可选项 | 含义 |
max_questions_per_hour | 每小时的最大查询数 |
max_updates_per_hour | 每小时时的最大更新数 |
max_connections_per_hour | 每小时时的最大建立连接数 |
max_user_connections | 同时的用户的最大连接数 为0的时候会看系统变量 都为0表示没有限制 |
#可选项
max_questions_per_hour 每小时的最大查询数
max_updates_per_hour 每小时时的最大更新数
max_connections_per_hour 每小时时的最大建立连接数
max_user_connections 同时的用户的最大连接数
max_user_connections 为0的时候会看系统变量 都为0表示没有限制
例如:
create user "jojo3"@"localhost" identified by "555555" with max_updates_per_hour 10;
设置密码管理选项
可选项 | 含义 |
password expire | 将密码标注为过期 |
password expire DEFAULT | 根据password_lifetime系统变量指定密码有效性 |
password expire never | 密码永不过期 |
password expire interval n day | 将生命周期设置为n天 |
#例如
create user "jojo4"@'localhost' identified by '666666' password expire interval 180 day;
注意:
1.密码过期以后用户登陆后必须重置密码才能执行sql语句
2.重置密码时,操作用户需要有create user 权限或者 mysql的update权限
用户锁定
被锁定的用户不能在客户端登陆mysql
关键字<account>
锁定:lock
解锁:unlock
#创建用户时锁定
create user 'jojo5'@'localhost' identified by '777777'
password expire account lock;
#解锁用户
alter user 'jojo5'@'localhost' account unlock;
创建用户方式二: insert
#使用insert创建用户
INSERT INTO mysql.user(user,host, authentication_string,ssl_cipher,
x509_issuer,x509_subject)
VALUES('user2','localhost',password('ABCabc123!'),'','','');
#刷新权限
FLUSH PRIVILEGES;
创建用户方法三:grant
使用grant语句创建用户
GRANT SELECT ON *.* TO user3@’localhost’ IDENTIFIED BY ‘123456’;
#刷新权限
FLUSH PRIVILEGES;
修改用户
alter USER [IF NOT exists]
账户名 [1.用户身份验证选项] ...
[2.with 资源控制选项] [3.密码管理选项|4.账户锁定选项]
修改验证插件 identified with ...by
alter user jojo1 identified with sha256_password by "123456" password expire;
解锁用户
alter user 'jojo5'@'localhost' account unlock;
同时修改多个参数
alter user
'jojo1' identified with mysql_native_password,
'jojo2'@'localhost' identified by '222222'.
with max_user_connections 2;