[Linux] Mysql数据库中的用户管理与授权

一、登录用户的管理

1.1 查看用户密码的信息 

用户信息存放在 mysql 数据库下的 user 表(MySQL 服务下存在一个系统自带的 mysql 数据库)。

use mysql ;
show tables;
desc user;

查看密码信息的命令:

能看到密码信息:是经过加密后的密码信息 

select user,host,authentication_string from user;

1.2 登录用户的增加 

明文密码创建用户格式:

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

 加密密码创建用户 :

 SELECT PASSWORD('密码');    #先获取加密的密码
 ​
 CREATE USER 'lisi'@'localhost' IDENTIFIED BY PASSWORD '加密的密码';

1.3 登录用户用户名的更改 

 RENAME USER '旧的用户名'@'旧的主机地址' TO '新的用户名'@'新的主机地址';

1.4 删除登录用户 

drop user '用户名'@'登录地址';

1.5 查看当前登录的用户 

select user();

1.6 修改用户的密码 

普通用户只有修改自身密码的权限

明文密码修改:

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

root用户是超级管理员,它不仅可以修改自身密码,还能修改其他用户的密码。  

set password for  '用户'@'登录地址' =password ('密码');

1.7 root密码的忘记后的修改找回方法 

该操作必须是在数据库本机且为root用户,才可进行

第一步:添加跳过的初始配置
vim  /etc/my.cnf
 
skip-grant-tables

第二步:重启数据库服务 ,修改数据库用户表中root密码
systemctl restart mysql.service
mysql
mysql> UPDATE mysql.user SET AUTHENTICATION_STRING = PASSWORD('abc123') where user='root';
 mysql> flush privileges;   #刷新数据库
 ​
 mysql> quit                #退出
 第三步:登录测试新密码 
mysql -u root -pabc123

第四步:撤销添加的免密码认证设置,重启数据库服务  
#删除配置文件中的配置,之后重启服务。
 注意:最后再把/etc/my.conf 配置文件里的skip-grant-tables 删除,并重启mysql服务。
 vim /etc/my.cnf
systemctl restart mysqld.service 

二、管理登录用户的权限 

2.1 常见的用户权限 

权限   权限说明   权限级别
CREATE    创建数据库、表或索引的权限    数据库、表或索引
DROP   删除数据库或表的权限    数据库或表
GRANT OPTION      赋予权限选项 数据库或表
REFERENCES   引用权限    数据库或表
ALTER    更改表的权限   数据表
DELETE     删除表数据的权限  数据表
INDEX     操作索引的权限   数据表
INSERT    添加表数据的权限   数据表
SELECT   查询表数据的权限   数据表
UPDATE   更新表数据的权限   数据表
CREATE VIEW      创建视图的权限 视图
SHOW VIEW      查看视图的权限 视图
ALTER ROUTINE    更改存储过程的权限   存储过程
CREATE ROUTINE   创建存储过程的权限    存储过程
EXECUTE    执行存储过程权限   存储过程
FILE     服务器主机文件的访问权限  文件管理
CREATE TEMPORARY TABLES      创建临时表的权限 服务器管理
LOCK TABLES   锁表的权限   服务器管理
CREATE USER     创建用户的权限 服务器管理
RELOAD       执行 flush privileges, refresh, reload 等刷新命令的权限服务器管理
PROCESS       查看进程的权限 服务器管理
REPLICATION CLIENT      查看主从服务器状态的权限  服务器管理
REPLICATION SLAVE      主从复制的权限 服务器管理
SHOW DATABASES    查看数据库的权限   服务器管理
SHUTDOWN     关闭数据库的权限   服务器管理
SUPER    超级权限    服务器管理
ALL [PRIVILEGES]    所有权限
USAGE       没有任何权限    

 2.2 查看用户已有权限的操作 

 SHOW GRANTS;     #查看当前用户(自己)的权限

 SHOW GRANTS FOR 用户名@来源地址;    #查看其他用户的权限

2.3 授权操作

[NO_AUTO_CREATE_USER], 即在grant语句中禁止创建空密码的账户,使用grant语法创建用户必须带上 “identified by”关键字设置账户密码,否则就被认为是非法的创建语句。 

 方式一:对存在用户进行授权 
GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'来源地址' [IDENTIFIED BY '密码'];

权限列表:  用于列出授权使用的各种数据库操作,以逗号进行分隔如"select, insert,update"。 使用"all"表示所有权限(实际上部分权限仍无法使用,只包括大部分权限),可授权执行任何操作。

 ​  数据库名.表名:  用于指定授权操作的数据库和表的名称,其中可以使用通配符*。 例如,使用"mysql.*" 表示授权操作的对象为mysql数据库中的所有表。  ​  '用户名'@'来源地址':  用于指定用户名称和允许访问的客户机地址,即谁能连接、能从哪里连接。 来源地址可以是域名、IP地址,还可以使用“%”通配符,表示某个区域或网段内的所有地址。

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

 方式二:对不存在的用户进行创建并授权 
 GRANT ALL PRIVILEGES ON *.* TO  '用户名'@'来源地址' IDENTIFIED BY '密码';

 2.4 撤销用户权限 

 revoke 权限列表/ALL on [库名.]表名 from '用户名'@'来源地址';

2.5 用户的远程登录  

 mysql -u 用户名 -p[密码] -h 目标IP/主机名 -P 端口号              #远程连接mysql

注意:远程登录只可登录授权远程登录的用户,像本地主机这样的本机用户是无法远程登录的

总结

用户管理操作:

create user 'username'@'address' identified by 'password';  

#创建用户  ​

 select user,host,authentication_string from mysql.user;  

#查看用户信息  ​

 rename user old_user to new_user;        

#修改用户名  ​

 drop user '用户名'@'来源地址';            

#删除用户  ​  

set password = password('XXXX');        

#修改当前登录用户的密码  ​

 set password for '用户名'@'来源地址' = password('XXXX');    

#修改其他用户的密码  ​

 select user ();    

 #查看当前登录用户和来源地址  ​

 ###忘记root用户密码的解决方法:  

修改mysql配置文件/etc/my.cnf,在 [mysqld] 配置项下加入 skip-grant-tables

service mysqld restart   #重启服务

 mysql   #免密登陆  

 update mysql.user set authentication_string=password('新密码') where user='root';  

#修改密码 flush privileges; #刷新数据库

 用户授权操作 :

grant 权限列表/ALL ON 库名.表名 to 'username'@'address' identified by '密码';  ​   

#授予用户权限  

show grants;    

#查看当前用户(自己)的权限                

show grants for 'username'@'address';      

#查看其他用户的权限  ​

 revoke 权限列表/ALL on 库名.表名 from 'username'@'address';  

#撤销用户的权限  ​  

mysql -u 用户名 -p[密码] -h 目标IP/主机名 -P 端口号            

#远程连接mysql

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/268359.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【大数据】NiFi 的基本使用

NiFi 的基本使用 1.NiFi 的安装与使用1.1 NiFi 的安装1.2 各目录及主要文件 2.NiFi 的页面使用2.1 主页面介绍2.2 面板介绍 3.NiFi 的工作方式3.1 基本方式3.2 选择处理器3.3 组件状态3.4 组件的配置3.4.1 SETTINGS(通用配置)3.4.2 SCHEDULING&#xff0…

饥荒Mod 开发(二二):显示物品信息

饥荒Mod 开发(二一):超大便携背包,超大物品栏,永久保鲜 饥荒中的物品没有详细信息,基本上只有一个名字,所以很多物品的功能都不知道,比如浆果吃了也不知道恢复什么, 采集的胡萝卜也不知道什么功…

Airbert: In-domain Pretraining for Vision-and-Language Navigation

题目:Airbert:视觉和语言导航的域内预训练 摘要 为了解决VLN数据集稀缺的问题,本文创建了一个数据集BNB。我们首先从在线租赁市场的数十万个列表中收集图像标题 (IC) 对。接下来,我们使用 IC 对提出自动策略来生成数百万个 VLN …

OpenCV与YOLO学习与研究指南

引言 OpenCV是一个开源的计算机视觉和机器学习软件库,而YOLO(You Only Look Once)是一个流行的实时对象检测系统。对于大学生和初学者而言,掌握这两项技术将大大提升他们在图像处理和机器视觉领域的能力。 基础知识储备 在深入…

Apache Commons IO: 简化文件和IO操作

第1章:引言 咱们在做Java编程的时候,经常会遇到各种文件操作和输入输出(IO)的问题。不论是读取一个配置文件,还是把数据写入日志,这些看似简单的任务有时候会让人头疼。传统的Java IO操作,虽然…

Odoo16 实用功能之Form视图详解(表单视图)

目录 1、什么是Form视图 2、Form视图的结构 3、源码示例 1、什么是Form视图 Form视图是用于查看和编辑数据库记录的界面。每个数据库模型在Odoo中都有一个Form视图,用于显示该模型的数据。Form视图提供了一个可编辑的界面,允许用户查看和修改数据库记…

设计模式--迭代器模式

实验18:迭代器模式 本次实验属于模仿型实验,通过本次实验学生将掌握以下内容: 1、理解迭代器模式的动机,掌握该模式的结构; 2、能够利用迭代器模式解决实际问题。 [实验任务]:JAVA和C常见数据结构迭代…

PyTorch随机数生成:torch.rand,torch.randn,torch.randind,torch.rand_like

在用PyTorch做深度学习开发过程中,时常用到随机数生成功能,但经常记不住几个随机数生成函数的用法,现在正好有点时间,整理一下。 1. torch.rand() torch.rand(*size, *, generatorNone, outNone, dtypeNone, layouttorch.stride…

我们是如何测试人工智能的(一)基础效果篇(内含大模型的测试内容)

来源|TesterHome社区 作者|孙高飞 前言 这个系列算是科普文吧,尤其这第一篇可能会比较长,因为我这8年里一直在 AI 领域里做测试,涉及到的场景有些多,我希望能尽量把我经历过的东西都介绍一下,…

<JavaEE> 协议格式 -- 传输层协议 UDP

目录 一、UDP协议格式长啥样? 二、端口号和IP地址 1)UDP协议中包含哪两个端口号? 2)有没有包含IP地址? 三、UDP报文长度 1)UDP报文长度最长多长? 2)UDP报文的组成&#xff1f…

Socket地址

socket地址其实是一个结构体,封装端口号和IP等信息 。后面的 socket 相关的 api 中需要使用到这个socket地址。 客户端 -> 服务器需要知道服务器的( IP, Port ) 一、通用 socket 地址 socket 网络编程接口中表示 socket 地址的是结构体…

linux cpu调度分析

一、cpu调度调试方法 echo 0 > /sys/kernel/debug/tracing/tracing_on echo > /sys/kernel/debug/tracing/trace echo 30720 > /sys/kernel/debug/tracing/buffer_size_kb echo nop > /sys/kernel/debug/tracing/current_tracer echo sched_switch sched_wakeup s…

MYSQL函数\约束\多表查询\事务

函数 字符串函数 数值函数 mod就是取余 日期函数 流程函数 约束 外键约束 删除更新\外键 多表查询 多表关系 一对多 多对多 一对一 多表查询 内连接 select e.name d.name from emp e join dept d on e.id d.id; 外连接 select emp.*, d.name from emp left join tm…

计算机网络(4):网络层

网络层提供的两种服务 虚电路服务(Virtual Circuit Service)和数据报服务(Datagram Service)是在网络层(第三层)提供的两种不同的通信服务。它们主要区别在于建立连接的方式和数据传输的方式。 虚电路服务…

初识QT(上篇):What Qt

初识QT(上篇):What Qt 前言 & 说明前言说明 初识QT1.1 QT的what1. 介绍2. 发展历程3. QT架构的主要内容4.QT的常用模块 1.2 QT的 why1. QT的核心机制 下篇笔记链接 前言 & 说明 前言 前言: 之前说要share的qt相关知识&am…

看图学源码之FutureTask

RunnableFuture 源码学习: 成员变量 任务的运行状态的转化 package java.util.concurrent; import java.util.concurrent.locks.LockSupport;/**可取消的异步计算。该类提供了Future的基本实现,包括启动和取消计算的方法,查询计算是否完成以…

基于flask和echarts的新冠疫情实时监控系统源码+数据库,后端基于python的flask框架,前端主要是echarts

介绍 基于flask和echarts的新冠疫情实时监控系统 软件架构 后端基于python的flask框架,前端主要是echarts 安装教程 下载到本地,在python相应环境下运行app.py,flask项目部署请自行完成 使用说明 flaskProject文件夹中 app.py是flask项目主运行文…

Unity2017升级到Unity2018在Window7上输出空异常错误问题

Unity2017升级到Unity2018在Window7上输出空异常错误问题 一、环境Window7二、现象Unity报空异常(.NET 4.x Equivalent)三、日志四、解决方案第一种解决方案第二种解决方案 一、环境Window7 二、现象Unity报空异常(.NET 4.x Equivalent&…

免费WPML v4.6.6已注册学习版+17插件包

免费WPML v4.6.6已注册学习版17插件包 关于一个名为WPML的WordPress插件的描述。这个插件被用于创建和管理多语言网站,使得网站的内容可以轻松地翻译成多种语言。 以下是这段文本的详细分析: WPML v4.6.6 已注册:这是插件的名称和版本号。表…

HarmonyOS的功能及场景应用

一、基本介绍 鸿蒙HarmonyOS主要应用的设备包括智慧屏、平板、手表、智能音箱、IoT设备等。具体来说,鸿蒙系统是一款面向全场景(移动办公、运动健康、社交通信、媒体娱乐等)的分布式操作系统,能够支持手机、平板、智能穿戴、智慧屏、车机等多种终端设备…