Mysql中的用户管理实践

2025-05-29 03:50

本文主要是介绍Mysql中的用户管理实践,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

《Mysql中的用户管理实践》:本文主要介绍Mysql中的用户管理实践,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧...

13. 用户管理

为什么不能只用 root: 出于安全考虑,不应该所有操作都由 root 执行。

mysql 的用户信息存储位置: mysql.user 表。

13.1 用户

13.1.1 用户信息

  • 用户表字段解释:
    • host: 可以从哪台主机登录。
    • user: 用户名。
    • authentication_string: 加密后的密码。
    • *_priv: 用户权限。
select User,Host,authentication_string from user;

Mysql中的用户管理实践

13.1.2 创建用户

语法:

create user '用户名'@'主机名' identified by '密码';

示例:

create user 'maomi-9527'@'localhost' identified by '666888';

Mysql中的用户管理实践

13.1.3 删除用户

正确语法:

drop user '用户名'@'主机名';

常见错误:

drop user maomi-9527; -- 错误,因为主机名默认是 %

原因:

mysql可以创建两个相同用户相同密码但登录地点不一样的用户:

Mysql中的用户管理实践

13.1.4 修改用户密码

自己改密码:

set password = password('python新密码');

root 改指定用户密码:

set password for 'maomi-9527'@'localhost' = password('666888');

由于在 MySQL 中,用户信息本质上是存储在 mysql.user 表中的,因此我们也可以直接通过 SQL 语句修改该表的内容来重设密码。例如:

UPDATE user SET authentication_string = PASSWORD('你的新密码') WHERE user = 'root' AND host = 'localhost';

Mysql中的用户管理实践

13.1.5 密码策略要求

MySQL 8.0+ 版本默认启用了 validate_password 插件,它会根据以下规则检查密码强度:

  • 密码长度:默认要求密码至少为 8 个字符。
  • 字符复杂度
  • 至少包含一个大写字母(A-Z)。
  • 至少包含一个小写字母(a-z)。
  • 至少包含一个数字(0-9)。
  • 至少包含一个特殊字符(例如 @, #, $, %)。

Mysql中的用户管理实践

1. 设置一个更强的密码

你可以设置一个符合强度要求的密码,例如:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'Newpassword123!';

或者:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'Str0ngP@ssw0rd!';

2. 临时降低密码策略要求

如果你不想设置那么复杂的密码,可以通过降低密码策略要求来解决。执行以下命令来临时降低要求:

SET GLOBAL validate_password_policy  = LOW;-------------------设置密码强度为低
SET GLOBAL validate_password_length = 6;----------------------设置密码长度为6
SET GLOBAL validate_password_mixed_case_count = 0;------------设置混合字符为0
SET GLOBAL validate_password_special_char_count = 0;  --------设置特殊字符个数为0

然后,你就可以设置一个简单的密码了:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'simplepass';

Mysql中的用户管理实践

注意: 降低密码策略可能会影响安全性,操作完成后可以将策略恢复:

SET GLOBAL validate_password_polhttp://www.chinasem.cnicy  = MEDIUM;-------------------设置密码强度为低
SET GLOBAL validate_password_length = 8;----------------------设置密码长度为6
SET GLOBAL validate_password_mixed_case_count = 1;------------设置混合字符为0
SET GLOBAL validate_password_sRamJeQYgApecial_char_count = 1;  --------设置特殊字符个数为0

3. 查看当前密码策略

你可以通过以下命令查看当前密码策略的设置:

SHOW VARIABLES LIKE 'validate_password%';

13.2 数据库的权限

常见权限:

select, insert, update, delete, create, drop, grant, all 等。

13.2.1 授权

授权语法:

grant 权限列表 on 数据库.表 to '用户名'@'主机' [identified by '密码'];

示例:

grant select on text.* to 'maomi-9527'@'localhost';------给用户在test数据库中所有表的查看权限

赋权前: 

Mysql中的用户管理实践

赋权后:

Mysql中的用户管理实践

查看当前权限:

show grants for 'maomi-9527'@'localhost';

Mysql中的用户管理实践

13.2.2 回收权限

撤销语法:

revoke 权限列表 on 数据库.对象 from '用户名'@'主机';

示例:

revoke select on text.* from 'maomi-9527'@'localhost';

Mysql中的用户管理实践

常见问题提示:

若密码设置失败报错 ERROR 1819

SHOW VARIApythonBLES LjsIKE 'validate_password%';

可调整密码策略来解决。

赋权后无效时建议:

flush privileges;

到此这篇关于Mysql中的用户管理的文章就介绍到这了,更多相关mysql用户管理内容请搜索China编程(www.chinasem.cn)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程China编程(www.chinasem.cn)!

这篇关于Mysql中的用户管理实践的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1154832

相关文章

MySQL数据库双机热备的配置方法详解

《MySQL数据库双机热备的配置方法详解》在企业级应用中,数据库的高可用性和数据的安全性是至关重要的,MySQL作为最流行的开源关系型数据库管理系统之一,提供了多种方式来实现高可用性,其中双机热备(M... 目录1. 环境准备1.1 安装mysql1.2 配置MySQL1.2.1 主服务器配置1.2.2 从

JDK21对虚拟线程的几种用法实践指南

《JDK21对虚拟线程的几种用法实践指南》虚拟线程是Java中的一种轻量级线程,由JVM管理,特别适合于I/O密集型任务,:本文主要介绍JDK21对虚拟线程的几种用法,文中通过代码介绍的非常详细,... 目录一、参考官方文档二、什么是虚拟线程三、几种用法1、Thread.ofVirtual().start(

从基础到高级详解Go语言中错误处理的实践指南

《从基础到高级详解Go语言中错误处理的实践指南》Go语言采用了一种独特而明确的错误处理哲学,与其他主流编程语言形成鲜明对比,本文将为大家详细介绍Go语言中错误处理详细方法,希望对大家有所帮助... 目录1 Go 错误处理哲学与核心机制1.1 错误接口设计1.2 错误与异常的区别2 错误创建与检查2.1 基础

深入理解Mysql OnlineDDL的算法

《深入理解MysqlOnlineDDL的算法》本文主要介绍了讲解MysqlOnlineDDL的算法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小... 目录一、Online DDL 是什么?二、Online DDL 的三种主要算法2.1COPY(复制法)

Linux创建服务使用systemctl管理详解

《Linux创建服务使用systemctl管理详解》文章指导在Linux中创建systemd服务,设置文件权限为所有者读写、其他只读,重新加载配置,启动服务并检查状态,确保服务正常运行,关键步骤包括权... 目录创建服务 /usr/lib/systemd/system/设置服务文件权限:所有者读写js,其他

mysql8.0.43使用InnoDB Cluster配置主从复制

《mysql8.0.43使用InnoDBCluster配置主从复制》本文主要介绍了mysql8.0.43使用InnoDBCluster配置主从复制,文中通过示例代码介绍的非常详细,对大家的学习或者... 目录1、配置Hosts解析(所有服务器都要执行)2、安装mysql shell(所有服务器都要执行)3、

k8s中实现mysql主备过程详解

《k8s中实现mysql主备过程详解》文章讲解了在K8s中使用StatefulSet部署MySQL主备架构,包含NFS安装、storageClass配置、MySQL部署及同步检查步骤,确保主备数据一致... 目录一、k8s中实现mysql主备1.1 环境信息1.2 部署nfs-provisioner1.2.

MySQL中VARCHAR和TEXT的区别小结

《MySQL中VARCHAR和TEXT的区别小结》MySQL中VARCHAR和TEXT用于存储字符串,VARCHAR可变长度存储在行内,适合短文本;TEXT存储在溢出页,适合大文本,下面就来具体的了解... 目录一、VARCHAR 和 TEXT 基本介绍1. VARCHAR2. TEXT二、VARCHAR

springboot依靠security实现digest认证的实践

《springboot依靠security实现digest认证的实践》HTTP摘要认证通过加密参数(如nonce、response)验证身份,避免明文传输,但存在密码存储风险,相比基本认证更安全,却因... 目录概述参数Demopom.XML依赖Digest1Application.JavaMyPasswo

MySQL中C接口的实现

《MySQL中C接口的实现》本节内容介绍使用C/C++访问数据库,包括对数据库的增删查改操作,主要是学习一些接口的调用,具有一定的参考价值,感兴趣的可以了解一下... 目录准备mysql库使用mysql库编译文件官方API文档对象的创建和关闭链接数据库下达sql指令select语句前言:本节内容介绍使用C/