用户管理
一、用户管理
普通用户、root 用户。
1、登录 MySQL
mysql -h hostname|hostIP -P port -u username -p DatabaseName -e "SQL 语句"
-h
后面接主机名或IP
-P
MySQL
服务的端口-u
用户名-p
提示输入密码DatabaseName
可以指定登录到哪一个数据库-e
后面接SQL
语句,登录MySQL
服务器以后即可执行这个SQL
语句,然后退出MySQL
服务器。
mysql -h localhost -P 3306 -u root -p mysql -e "select host,user from user"
2、创建用户
-- 查询所有用户
select * from user;
-- host 默认是 %
create user user1 identified by '123456';
-- 指定 host 为 localhost
create user 'user1'@'localhost' identified by '1234';
这两条新建用户的 SQL
都会执行成功。通过 desc user; 可以查看到 user
表采用的是 host + user
作为联合主键的。
3、修改用户
update mysql.user set user = 'user2' where user = 'user1' and host = 'localhost';
flush privileges;
4、删除用户
-- 直接删除用户,默认删除 host 为 % 的用户
drop user username;
drop user 'user1'@'localhost','user2'@'localhost';
-- 在 user 表中删除(不推荐,1. 有潜在风险删除多个用户。 2. 不利于审计,这种方式删除不会留下记录/日志。 3. 不灵活。)
delete from user where user='user2';
5、设置当前用户密码
1、修改当前用户密码
-- 推荐
alter user user() identified by 'new_password';
set password='new_password';
-- 在 8.0 中执行失败,5.7 中有效。
set password=password('new_password');
2、修改其他用户密码
-- 推荐
alter user 'username'@'host' identified by 'password';
set passowrd for 'username'@'host'='new_password';
3、通过 update
语句修改密码
-- 不建议 MySQL8.0 不支持
update mysql.user set authentication_string = password('new_password')
where user='username' ans host= 'host';
flush privileges;
6、密码管理
1、密码过期策略
设置账号密码过期
-- 需要用户修改之后才能进行其他操作。
alter user username password expire;
-- 默认单位是天
-- default_password_lifetime
-- 密码每隔 180 天过期。
set persist default_password_lifetime=180;
单独设置用户的密码有效期
-- 90 天有效期
create user 'user1'@'localhost' identified by 'password' password expire interval 90 day;
alter user 'user1'@'localhost' password expire interval 90 day;
-- 永不过期
create user 'user1'@'localhost' identified by 'password' password expire never;
alter user 'user1'@'localhost' password expire never;
-- 使用默认过期策略
create user 'user1'@'localhost' identified by 'password' password expire default;
alter user 'user1'@'localhost' password expire default;
2、密码重用策略
password_history
:密码重用的数量
password_reuse_interval
:规定密码的重用周期