MySQL8用户密码及权限管理 |
您所在的位置:网站首页 › newpassword什么意思 › MySQL8用户密码及权限管理 |
MySQL8用户密码及权限管理
MySQL用户和权限管理禁止mysql用户使用特定的密码列表修改初始化密码创建用户创建本地用户创建远程用户查看用户的登录权限创建从指定地址登录的用户远程登录测试
修改用户密码修改本地用户密码修改密码永不过期修改远程用户密码
授权管理授予本地用户权限撤销本地用户权限授予远程用户权限为root远程用户授权所有权限
撤销远程用户的权限
删除用户删除本地用户删除远程用户
锁定用户将指定的MySQL用户设置为不可登录
自动为所有用户授予所有角色精细授权
MySQL用户和权限管理
https://juejin.cn/post/7198476152632000567 禁止mysql用户使用特定的密码列表将不允许使用的密码存储在mysql.user_invalid_passwords表中。 MySQL提供了一个名为mysql.user_invalid_passwords的系统表,用于存储不允许使用的密码列表。您可以将不允许使用的密码添加到该表中,以防止用户使用这些密码。当用户尝试使用该列表中的密码时,MySQL将拒绝该密码并返回“无效的口令”的错误消息。 要将密码添加到mysql.user_invalid_passwords表中,您可以使用INSERT语句。 -- 如果没有该表可以创建---未验证 CREATE TABLE mysql.user_invalid_passwords ( id INT NOT NULL AUTO_INCREMENT, password VARCHAR(1024) NOT NULL, PRIMARY KEY (id), UNIQUE INDEX (password) );例如: -- 禁止mysql用户使用"password123"密码 INSERT INTO mysql.user_invalid_passwords (password) VALUES ('password123'); -- 添加多个 INSERT INTO mysql.user_invalid_passwords (password) VALUES ('password1'), ('password2');请注意,为了使用mysql.user_invalid_passwords表,您需要具有足够的权限。 在MySQL配置文件中设置validate_password_policy参数 [mysqld] # 配置MySQL密码强度检查的级别 ## LOW 策略要求密码至少长度为8个字符。 ## MEDIUM 策略要求密码至少长度为8个字符,包含字母,数字和特殊字符。 ## STRONG 策略要求密码至少长度为12个字符,包含大写字母、小写字母、数字和特殊字符。 ## INVALID_PASSWORDS 策略要求MySQL不允许使用事先定义的无效口令列表中的任何一项作为密码(例如,123456等常见弱密码)。 # validate_password_policy=LOW, MEDIUM, STRONG, INVALID_PASSWORDS # 配置MySQL密码强度检查的级别 ## STRONG策略要求密码至少长度为12个字符,包含大写字母、小写字母、数字和特殊字符。 validate_password_policy=STRONG # 密码长度至少为8位 validate_password_length= 8 # 密码应包含至少一个数字 validate_password_number_count= 1 # 密码应包含至少一个特殊字符 validate_password_special_char_count= 1 # 密码应包含至少一个大写或小写字母 validate_password_mixed_case_count= 1 # 指定了一个自定义的密码字典文件,用于检查密码是否出现在字典中。 validate_password_dictionary_file=dictionary.txt 修改初始化密码mysql_native_password 是在MySQL5.5.3版本中引入的一种身份验证插件,可以使用原始密码方式来加密、验证密码. -- 以初始化密码登录mysql mysql -uroot -p -- 进入mysql库 use mysql; -- 修改初始化密码 -- 'localhost'表示本地登录--可以省略 -- IDENTIFIED BY 关键字用于指定用户的密码 -- IDENTIFIED WITH 指定密码插件 -- mysql_native_password 使用旧版密码认证,支持简单密码 alter user 'root'@'localhost' identfiled with mysql_native_password by '新密码'; -- 应用配置--将内存中的配置写入磁盘 FLUSH PRIVILEGES; 创建用户https://www.cnblogs.com/chanshuyi/p/mysql_user_mng.html 创建本地用户 -- 创建用户不设定密码 -- IF NOT EXISTS若果不存在就创建 CREATE IF NOT EXISTS USER laozhang@'localhost' ; -- 创建zhangsan用户并指定密码 CREATE USER zhangsan IDENTIFIED BY '密码'; -- 创建zhangsan用户并指定密码--完整命令 -- 'localhost'表示本地登录--可以省略 CREATE USER 'zhangsan'@'localhost' IDENTIFIED BY '密码'; -- 应用配置--将内存中的配置写入磁盘 FLUSH PRIVILEGES; 创建远程用户 -- 为用户设置远程登录密码 -- 创建远程用户zhangsan并指定密码 CREATE USER zhangsan@'%' IDENTIFIED BY '密码'; -- '%'表示从所有IP地址远程登录 -- WITH mysql_native_password 使用旧版密码认证插件--支持简单密码 create user 'root'@'%' identified with mysql_native_password by '新密码'; -- 应用配置--将内存中的配置写入磁盘 FLUSH PRIVILEGES;https://blog.csdn.net/omaidb/article/details/120022524 修改本地用户密码https://blog.csdn.net/omaidb/article/details/120022524 -- 进入指定数据库 USE ; -- 查看该数据库下的所有用户 SELECT User FROM mysql.user; -- 修改远程用户密码 ALTER USER ''@'%' IDENTIFIED BY ''; -- WITH mysql_native_password 使用旧版密码认证插件--支持简单密码 ALTER USER ''@'%' IDENTIFIED WITH mysql_native_password BY ''; -- 应用配置--将内存中的配置写入磁盘 FLUSH PRIVILEGES; 授权管理 授予本地用户权限 -- 为用户授权本地访问所有权限: -- 'localhost'表示本地登录--可以省略 GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost'; -- 为zhangsan用户授权所有权限 -- 'localhost'表示本地登录--可以省略 GRANT ALL PRIVILEGES ON *.* TO 'zhangsan'@'localhost' WITH GRANT OPTION; -- 授予lisi用户对mydb库的查询权限 -- 'localhost'表示本地登录--可以省略 GRANT SELECT ON mydb.* TO 'lisi'@'localhost'; -- 授予wangwu用户对mydb库的插入和修改权限 -- 'localhost'表示本地登录--可以省略 GRANT INSERT, UPDATE ON mydb.* TO 'wangwu'@'localhost'; -- 应用配置--将内存中的配置写入磁盘 FLUSH PRIVILEGES; 撤销本地用户权限 -- 列出当前授权给本地用户的权限 -- 'localhost'表示本地用户 SHOW GRANTS FOR ''; SHOW GRANTS FOR ''@'localhost'; -- 撤销本地权限: REVOKE ALL PRIVILEGES ON database_name.* FROM 'username'@'localhost'; -- 应用配置--将内存中的配置写入磁盘 FLUSH PRIVILEGES; 授予远程用户权限 -- 1.先创建好远程用户 -- 指定用户从指定IP登录,并赋予对该数据库的所有权限 -- ALL PRIVILEGES,此处可以换成指定权限 GRANT ALL PRIVILEGES ON .* TO ''@''; -- 为zhangsan用户授权所有权限 -- '%'表示远程登录 GRANT ALL PRIVILEGES ON *.* TO 'zhangsan'@'%' WITH GRANT OPTION; -- 授予lisi用户对mydb库的查询权限 -- '%'表示远程登录 GRANT SELECT ON mydb.* TO 'lisi'@'%'; -- 授予wangwu用户对mydb库的插入和修改权限 -- '%'表示远程登录 GRANT INSERT, UPDATE ON mydb.* TO 'wangwu'@'%'; -- 应用配置--将内存中的配置写入磁盘 FLUSH PRIVILEGES; 为root远程用户授权所有权限 # 先创建root远程用户 CREATE USER root@'%' IDENTIFIED BY '密码'; # 为root远程用户授权所有权限 ## *.*表示所有库的所有表 GRANT ALL ON *.* TO 'root'@'%' ; -- 应用配置--将内存中的配置写入磁盘 FLUSH PRIVILEGES;MySQL 8.0 的语句 SET PERSIST mandatory_roles=ALL; 用于将系统变量 mandatory_roles 的值设置为 ALL,并使更改在服务器重启时持久化。 mandatory_roles 系统变量指定了必须启用的角色列表,以便任何客户端成功连接。将其设置为 ALL,表示要求所有在服务器实例中定义的角色必须启用才能成功连接客户端。 请注意,只有具备 SUPER 特权的用户才能执行此语句。 -- 自动为所有用户授予所有角色 SET PERSIST mandatory_roles=ALL; 精细授权 -- 授予用户 'jsmith'@'%' 对于数据库 'world' 中的表 'country' 的 'name' 列进行更新的权限 -- grant: 用于授权用户或角色访问特定的数据库或表。 -- update(name): 授予对于 name 列进行更新的权限。 -- on 'world';country': 授权操作发生在名为 'world' 的数据库中的 'country' 表上。 -- to 'jsmith'@'%': 授权给用户名为 'jsmith' 而且允许从任何主机 (%) 访问数据库。 GRANT UPDATE (列名) ON 指定库名.表名 TO '用户名' @'%';查看权限 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |