【MySQL从入门到精通】【高级篇】(三)MySQL用户的创建_修改_删除以及密码的设置

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 本文首先会重点介绍在MySQL数据库中如何创建用户,修改用户,删除用户以及进行密码设置。

1. 要点说明

本文首先会重点介绍在MySQL数据库中如何创建用户,修改用户,删除用户以及进行密码设置。

2. 环境

环境 版本
Red Hat 4.8.5-39
MySQL 5.7

1. 查看所有用户

在MySQL数据库中,用户信息都会存放在mysql数据库的user表中,只需要查询该表即可获取所有用户

select host,user from user;

这里是以root用户来进行查询的,其中host表示主机:localhost 表示只能本机连接(不能远程连接),而%则既可以本机连接又可以远程连接。user表示用户的账户。

3.创建用户

在MySQL数据库中,官方推荐CREATE USER 语句来创建新用户,在MySQL版本移除了PASSWORD加密方法,因此不在推荐直接使用INSERT语句直接操作MySQL中的user表来增加用户。

使用CREATE USER语句来创建新用户时,必须拥有CREATE USER权限。每添加一个用户,CREATE USER 语句会在mysql数据库的user表中增加一条记录,但是新创建的账户没有任何权限,如果添加的账户已经存在,CREATE USER语句就会返回一个错误。

CREATE USER语句的基本语法形式如下:

CREATE USER 用户名 [IDENTIFIED BY '密码'][,用户名 [IDENTIFIED BY '密码']]

用户名参数表示新建用户的账号,由用户(User) 和主机名(Host)构成,默认的Host是%;

“[]” 表示可选,也就是说,可以指定用户登录时需要密码验证,也可以不指定密码验证,这样用户可以直接登陆,不过,这种不指定密码的方式不安全,不推荐使用。如果指定密码值,这里需要使用IDENTIFIED BY 指定明文密码值。

  1. CREATE USER语句可以同时创建多个用户。
    举例:
create user 'zhangsan' identified by 'Abc123456&';

之所以,密码设置的这么复杂,是因为MySQL数据库中设置了密码的校验规则比较强。不然的话就会报如下错误:

mysql> create user 'zhangsan' identified by 'abcd1234';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

查看密码的校验规则可以执行如下语句:

SHOW VARIABLES LIKE 'validate_password%';

其中,

validate_password_number_count指定了密码中数据的长度,

validate_password_special_char_count指定了密码中特殊字符的长度,

validate_password_mixed_case_count指定了密码中大小字母的长度。

validate_password_policy类型

policy 说明
0 or LOW Length(只限制了长度)
1 or MEDIUM Length; numeric, lowercase/uppercase, and special characters
2 or STRONG Length; numeric, lowercase/uppercase, and special characters; dictionary file
如果,想要设置的简单一点策略可以执行如下命令:
set global validate_password_policy=LOW

4. 修改用户(很少用)

修改用户的功能用的比较少,这里的修改用户只修改用户的账户,只需要修改user表即可,语句就是简单的update语句。例如:将原来

UPDATE user set user='li4' WHERE user='lisi';

5. 删除用户

在MySQL数据库中,官方推荐DROP USER 语句来删除用户,该语句不仅会删除user表中的用户信息,还会做一些其他的设置,执行该命令之后,被删除的用户将不能重新登录MySQL。使用DROP USER 命令删除用户时必须要有该命令的权限。

DROP USER 语句的基本语法形式如下:

DROP USER 用户名 [@ 主机][,用户名].....

用户名参数表示要删除用户的账号,由用户(User) 和主机名(Host)构成;

“[]” 表示可选,

DROP USER语句可以同时创建多个用户,删除多个用户用逗号隔开。
举例:

DROP USER 'li4'@'localhost';

6. 用户密码设置

6.1. 使用ALTER USER命令来修改当前用户密码:

用户可以使用ALTER命令来修改自身密码,如下语句代表修改当前登录用户的密码。基本语法如下:

ALTER USER USER() IDENTIFIED BY 'new_password';

下面使用ALTER 命令来修改zhangsan用户的密码,将密码改为"abc1234A%",命令如下:

6.2. 使用SET语句来修改当前用户密码:

使用root用户登录MySQL后,可以使用SET语句来修改密码,具体SQL语句如下:

SET PASSWORD='new_password';

该语句会自动将密码加密后再赋给当前用户。

下面使用SET语句来修改zhangsan用户的密码,将密码改成"abc1234A%"。

总结

本文详细介绍了在MySQL中如何创建用户,删除用户以及进行密码的设置。

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
7天前
|
SQL 关系型数据库 MySQL
网安入门之MySQL后端基础
《网安入门之MySQL后端基础》简介: 本文介绍了数据库及MySQL的基础知识,涵盖数据库的概念、结构与操作。数据库是组织化存储数据的集合,通过表、列、行等结构实现高效管理。MySQL作为开源的关系型数据库管理系统,广泛应用于Web开发。文中详细讲解了MySQL的基本操作,如增(INSERT)、删(DELETE)、改(UPDATE)、查(SELECT)等语句的使用方法,并介绍了数据库事务的ACID特性。此外,还探讨了SQL注入攻击的风险及防范措施,强调了预处理语句的重要性。最后,简述了PHP中mysqli扩展的使用方法,包括连接数据库、执行查询和关闭连接等步骤。
|
4月前
|
关系型数据库 MySQL 数据库
MySQL基本操作入门指南
MySQL基本操作入门指南
149 0
|
2月前
|
关系型数据库 MySQL Linux
Linux系统如何设置自启动服务在MySQL数据库启动后执行?
【10月更文挑战第25天】Linux系统如何设置自启动服务在MySQL数据库启动后执行?
170 3
|
2月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
216 2
|
2月前
|
关系型数据库 MySQL 数据库
MySQL事务隔离级别及默认隔离级别的设置
在数据库系统中,事务隔离级别是一个关键的概念,它决定了事务在并发执行时如何相互隔离。MySQL提供了四种事务隔离级别,每种级别都解决了不同的并发问题。本文将详细介绍这些隔离级别以及MySQL的默认隔离级别。
|
2月前
|
存储 关系型数据库 MySQL
【赵渝强老师】解决MySQL丢失root用户密码
本文介绍了MySQL数据库中用户密码存储的变化,以及如何通过特殊方法重置root用户的密码。从MySQL 5.7版本开始,密码字段由“password”改为“authentication_string”。文章详细列出了重置密码的步骤,并提供了相关代码示例和视频教程。
|
3月前
|
关系型数据库 MySQL 数据库连接
MySQL 表整行数据唯一性设置
MySQL 表整行数据唯一性设置
76 2
|
3月前
|
关系型数据库 MySQL 数据库
使用Docker部署的MySQL数据库如何设置忽略表名大小写?
【10月更文挑战第1天】使用Docker部署的MySQL数据库如何设置忽略表名大小写?
445 1
|
3月前
|
druid 关系型数据库 MySQL
开发指南048-mysql设置
如果链接的是mysql设置,需要做如下配置
|
4月前
|
安全 关系型数据库 MySQL
Navicat工具设置MySQL权限的操作指南
通过上述步骤,您可以使用Navicat有效地为MySQL数据库设置和管理用户权限,确保数据库的安全性和高效管理。这个过程简化了数据库权限管理,使其既直观又易于操作。
536 4