展开
拓展 关闭
订阅号推广码
GitHub
视频
公告栏 关闭

用户管理

  • 登录mysql服务
mysql –h hostname|hostIP –P port –u username –p DatabaseName –e "SQL语句"

-h参数 后面接主机名或者主机IP,hostname为主机,hostIP为主机IP
-P参数 后面接MySQL服务的端口,通过该参数连接到指定的端口。MySQL服务的默认端口是3306,不使用该参数时自动连接到3306端口,port为连接的端口号
-u参数 后面接用户名,username为用户名
-p参数 会提示输入密码
DatabaseName参数 指明登录到哪一个数据库中。如果没有该参数,就会直接登录到MySQL数据库中,然后可以使用USE命令来选择数据库
-e参数 后面可以直接加SQL语句。登录MySQL服务器以后即可执行这个SQL语句,然后退出MySQL服务器
  • 创建用户
CREATE USER 用户名 [IDENTIFIED BY '密码'][,用户名 [IDENTIFIED BY '密码']];

1、用户名参数表示新建用户的账户,由 用户(User) 和 主机名(Host) 构成
2、“[ ]”表示可选,也就是说,可以指定用户登录时需要密码验证,也可以不指定密码验证,这样用户可以直接登录。
不过,不指定密码的方式不安全,不推荐使用。如果指定密码值,这里需要使用IDENTIFIED BY指定明文密码值
3、CREATE USER语句可以同时创建多个用户
  • 代码案例
CREATE USER zhang3 IDENTIFIED BY '123123'; # 默认host是 %

CREATE USER 'kangshifu'@'localhost' IDENTIFIED BY '123456';
  • 修改用户
# 修改mysql库的user表
UPDATE mysql.user SET USER='li4' WHERE USER='wang5';

# 刷新
FLUSH PRIVILEGES;
  • 删除用户
DROP USER user[,user]…;
  • 代码案例
DROP USER li4 ; # 默认删除host为%的用户

# 案例2
DROP USER 'kangshifu'@'localhost';
  • 删除用户方式2(不推荐)
DELETE FROM mysql.user WHERE Host=’hostname’ AND User=’username’;

FLUSH PRIVILEGES;
  • 代码案例
DELETE FROM mysql.user WHERE Host='localhost' AND User='Emily';

FLUSH PRIVILEGES;
  • 使用root用户登录后重置密码
ALTER USER USER() IDENTIFIED BY 'new_password';

# 方式2
SET PASSWORD='new_password';
  • 使用root用户登录后重置其他用户的密码
# 方式1
ALTER USER user [IDENTIFIED BY '新密码']
[,user[IDENTIFIED BY '新密码']]…;

# 方式2
SET PASSWORD FOR 'username'@'hostname'='new_password';

# 方式3,不推荐使用
UPDATE MySQL.user SET authentication_string=PASSWORD("123456")
WHERE User = "username" AND Host = "hostname";
  • 密码过期策略
1、在MySQL中,数据库管理员可以 手动设置 账号密码过期,也可以建立一个 自动 密码过期策略。
2、过期策略可以是 全局的 ,也可以为 每个账号 设置单独的过期策略
  • 手动设置密码过期
ALTER USER user PASSWORD EXPIRE;

# 案例
ALTER USER 'kangshifu'@'localhost' PASSWORD EXPIRE;
  • 使用命令全局设置密码有效期
# 建立全局策略,设置密码每隔180天过期
SET PERSIST default_password_lifetime = 180; 
  • 配置文件my.cnf中设置密码有效期
[mysqld]
default_password_lifetime=180 # 建立全局策略,设置密码每隔180天过期
  • 为单个账号的密码设置过期时间
# 设置kangshifu账号密码每90天过期:
CREATE USER 'kangshifu'@'localhost' PASSWORD EXPIRE INTERVAL 90 DAY;
ALTER USER 'kangshifu'@'localhost' PASSWORD EXPIRE INTERVAL 90 DAY;

# 设置密码永不过期:
CREATE USER 'kangshifu'@'localhost' PASSWORD EXPIRE NEVER;
ALTER USER 'kangshifu'@'localhost' PASSWORD EXPIRE NEVER;

# 延用全局密码过期策略:
CREATE USER 'kangshifu'@'localhost' PASSWORD EXPIRE DEFAULT;
ALTER USER 'kangshifu'@'localhost' PASSWORD EXPIRE DEFAULT;
  • 密码重用策略(全局)
SET PERSIST password_history = 6; # 设置不能选择最近使用过的6个密码
SET PERSIST password_reuse_interval = 365; # 设置不能选择最近一年内的密码
  • 方式2,my.cnf配置文件中配置
[mysqld]
password_history=6
password_reuse_interval=365
  • 为单个用户指定密码重用策略
# 不能使用最近5个密码:
CREATE USER 'kangshifu'@'localhost' PASSWORD HISTORY 5;      # 创建用户时指定
ALTER USER 'kangshifu'@'localhost' PASSWORD HISTORY 5;      # 创建用户后设置

# 不能使用最近365天内的密码:
CREATE USER 'kangshifu'@'localhost' PASSWORD REUSE INTERVAL 365 DAY;
ALTER USER 'kangshifu'@'localhost' PASSWORD REUSE INTERVAL 365 DAY;

# 既不能使用最近5个密码,也不能使用365天内的密码
CREATE USER 'kangshifu'@'localhost'
PASSWORD HISTORY 5
PASSWORD REUSE INTERVAL 365 DAY;

ALTER USER 'kangshifu'@'localhost'
PASSWORD HISTORY 5
PASSWORD REUSE INTERVAL 365 DAY;
posted @ 2022-06-07 13:55  DogLeftover  阅读(18)  评论(0编辑  收藏  举报