MySQL数据库系列(六)--------用户管理(Linux版)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: ‘来源地址’:指定新创建的用户可在哪些主机上登录,可使用IP地址、网段、主机名的形式, 本地用户可用localhost,允许任意主机登录可用通配符%

一、用户管理

 1.1新建用户

CREATE USER '用户名'@'来源地址' [IDENTIFIED BY [PASSWORD] '密码'];

‘用户名’:

      指定将创建的用户名

       ‘来源地址’:指定新创建的用户可在哪些主机上登录,可使用IP地址、网段、主机名的形式,          本地用户可用localhost,允许任意主机登录可用通配符%

‘密码’:

       若使用明文密码,直接输入’密码’,插入到数据库时由Mysql自动加密;

       若使用加密密码,需要先使用SELECT PASSWORD(‘密码’); 获取密文,再在语句中添加PASSWORD ‘密文’;

        若省略“IDENTIFIED BY”部分,则用户的密码将为空(不建议使用)

示例1: 使用明文创建用户

CREATE USER 'yjl'@'localhost' IDENTIFIED BY '123123';

需要安装插件

使用mycli 命令 需要安装插件
$ pip install mycli

2345_image_file_copy_69.jpg

2345_image_file_copy_70.jpg

示例1: 使用密文创建用户

#获得密文
select password('123123');
创建用户密文粘贴在此处
create user 'prc'@'localhost' identified by password '*E56A114692FE0DE073F9A1DD68A00EEB9703F3F1';

2345_image_file_copy_71.jpg

2345_image_file_copy_72.jpg

2345_image_file_copy_73.jpg

1.2 查看用户信息

创建后的用户保存在 mysql 数据库的 user 表里

use mysql;
select User,authentication_string,Host from user;

2345_image_file_copy_74.jpg

1.3 重命名用户

#改名
rename user 'yjl'@'localhost' to 'xiaotian'@'localhost';

2345_image_file_copy_75.jpg

1.4 删除用户

#删除用户 xiaoting
drop user 'xiaotian'@'localhost';

2345_image_file_copy_76.jpg

1.5 修改当前登录用户密码

#修改密码
set password = password('123456');

1.6 修改其他用户密码

#修改其他密码
set password for 'prc@'localhost' = password('123456');

1.7 忘记 root 密码的解决办法

   遗忘mysql密码,如下图所示:

   1.修改配置文件,添加配置,使登录mysql不使用授权表    

vim /etc/my.cnf
#添加此行
skip-grant-tables

  2.重启服务,登录测试

#重启服务  此时无需密码
systemctl restart mysqld.servicemysql

3.使用update修改root密码,刷新数据库

#重设密码
update mysql.user set authentication_string = password('123456') where user='root';
#刷新数据库
flush privileges;

4.退出重新登录测试

#使用修改后的密码成功登录
mysql -uroot -p123456

5.再次修改my.conf配置文件,注释掉之前添加的配置命令

把 以前添加的 skip-grant-tables  注释

二、数据库用户授权

2.1 授予权限

GRANT语句:专门用来设置数据库用户的访问权限。当指定的用户名不存在时,GRANT语句将会创建新的用户;当指定的用户名存在时,GRANT 语句用于修改用户信息。

GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'来源地址' [IDENTIFIED BY '密码'];

权限列表:用于列出授权使用的各种数据库操作,以逗号进行分隔,如“select,insert,update”。使用“all”表示所有权限,可授权执行任何操作。

数据库名.表名:用于指定授权操作的数据库和表的名称,其中可以使用通配符“”。例如,使用“kgc.”表示授权操作的对象为 kgc数据库中的所有表。

‘用户名@来源地址’:用于指定用户名称和允许访问的客户机地址,即谁能连接、能从哪里连接。来源地址可以是域名、IP 地址,还可以使用“%”通配符,表示某个区域或网段内的所有地址,如“%.accp.com”、“192.168.80.%”等。

IDENTIFIED BY:用于设置用户连接数据库时所使用的密码字符串。在新建用户时,若省略“IDENTIFIED BY”部分, 则用户的密码将为空。

示例1: 允许用户 yxp在本地查询 ali数据库中 所有表的数据记录,但禁止查询其他数据库中的表的记录。

#原本没有yxp用户
select User,authentication_string,Host from user;
#授权后,有了yxp用户
grant select on mysql * to 'yxp'@'localhost' indentified by 'abc123'

示例1测试

登录并查看库

#可以正常登录
mysql -uyxp -pabc123
#使用可以查到授权库
show databases;
#可以正常切换到mysql库
use mysql;
#可以查看mysql库中的表
show tables;

示例2:允许用户dhc在所有终端远程连接mysql,并拥有所有权限

grant all on *.* to 'dhc'@'%' identified by '123123';

2.2 查看权限

SHOW GRANTS FOR 用户名@来源地址;
#查看yxp权限
show grants for 'yxp'@'localhost';

2.3 撤销权限

#先查询用户权限
show grants for 'yxp'@'localhost';
#撤销查询权限
revoke select on mysql.* from 'yxp'@'localhost';


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
24天前
|
安全 关系型数据库 MySQL
Linux下安装mysql8.0(以tar.xz包安装--编译安装)
通过上述步骤,您完成了从下载、编译、安装到配置MySQL 8.0的全过程。此过程虽然较为复杂,但提供了对MySQL安装环境的完全控制,有助于满足特定的部署需求。在实际操作中,根据具体的系统环境,可能还需调整部分步骤或解决未预见的依赖问题。始终参考官方文档和社区资源,保持安装过程与最新版本的兼容性。
451 67
|
4天前
|
关系型数据库 MySQL Linux
Linux系统如何设置自启动服务在MySQL数据库启动后执行?
【10月更文挑战第25天】Linux系统如何设置自启动服务在MySQL数据库启动后执行?
36 3
|
18天前
|
Ubuntu 关系型数据库 MySQL
Linux系统MySQL安装
【10月更文挑战第19天】本文介绍了在 Linux 系统上安装 MySQL 的步骤,包括安装前准备、安装 MySQL、启动 MySQL 服务、配置 MySQL 以及验证安装。适用于 Ubuntu/Debian 和 CentOS/Fedora 系统,提供了详细的命令示例。
101 1
|
2月前
|
关系型数据库 MySQL Linux
Linux 安装 mysql 【使用 tar.gz | tar.xz安装包-离线安装】
在Linux系统中使用tar.xz压缩包安装MySQL数据库的详细步骤。包括下载MySQL压缩包,解压到指定目录,创建mysql用户和组,设置目录权限,初始化MySQL,配置my.cnf文件,启动服务,以及修改root用户密码。此外,还提供了如何设置Windows远程登录MySQL服务器的方法。
Linux 安装 mysql 【使用 tar.gz | tar.xz安装包-离线安装】
|
27天前
|
关系型数据库 MySQL Linux
Linux系统绿色安装MySQL 8.0.39
Linux系统绿色安装MySQL 8.0.39
|
2月前
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
2月前
|
关系型数据库 MySQL Linux
Linux 安装 mysql【使用yum源进行安装】
这篇文章介绍了在Linux系统中使用yum源安装MySQL数据库的步骤,包括配置yum源、安装MySQL服务、启动服务以及修改root用户的默认密码。
Linux 安装 mysql【使用yum源进行安装】
|
23天前
|
关系型数据库 MySQL Linux
Navicat 连接 Windows、Linux系统下的MySQL 各种错误,修改密码。
使用Navicat连接Windows和Linux系统下的MySQL时可能遇到的四种错误及其解决方法,包括错误代码2003、1045和2013,以及如何修改MySQL密码。
151 0
|
3月前
|
关系型数据库 MySQL Linux
【Azure 应用服务】在创建Web App Service的时候,选Linux系统后无法使用Mysql in App
【Azure 应用服务】在创建Web App Service的时候,选Linux系统后无法使用Mysql in App
【Azure 应用服务】在创建Web App Service的时候,选Linux系统后无法使用Mysql in App
|
Linux 数据安全/隐私保护
Linux用户管理命令
Linux用户管理命令
72 1