MySQL用户管理和授权
用户管理和授权是属于MySQL当中的DCL语句
创建用户以及一些相关操作
明文创建用户
create user 'zzr'@'localhost' IDENTIFIED by '123456';create user 这是创建用户的开头zzr表示用户名
localhost:新建的用户可以在哪些主机上登录。即可以使用IP地址,网段,主机名都可以IDENTIFIED by '123456'; 新建用户的密码
我们可以通过IP地址,网段,主机名进行创建,这些都是对'location'的操作
'zzr'@'localhost'
'zzr'@'192.168.233.0/24'
'zzr'@'192.168.233.22'
'zzr'@'%'
其中 %代表正则任意
加密密码创建用户 :
SELECT PASSWORD('密码'); #先获取加密的密码CREATE USER 'lisi'@'localhost' IDENTIFIED BY PASSWORD '加密的密码';
登录用户用户名的更改
RENAME USER '旧的用户名'@'旧的主机地址' TO '新的用户名'@'新的主机地址';rename user 'test1'@'20.0.0.100' to 'zzr'@'20.0.0.100';
重命名之后,原本的test1不会保留,新的直接覆盖
删除用户
drop user '用户名'@'登录地址';drop user 'zzr'@'localhost';
修改用户密码
set password = password('abc123');给其他用户设置密码:set password for 'zzr'@'20.0.0.100' = password('123123');
注意:终端没有修改密码的权限,所以得去命令行进行修改密码操作
root用户是超级管理员,它不仅可以修改自身密码,还能修改其他用户的密码。
root密码的忘记后的修改找回方法
该操作必须是在数据库本机且为root用户,才可进行
vim /etc/my.cnfskip-grant-tables
然后重启数据库即可
systemctl daemon-reload
systemctl start mysqld.service
systemctl enable mysqld
用户的相关权限
权限 | 权限说明 | 权限级别 |
CREATE | 创建数据库、表或索引的权限 | 数据库、表或索引 |
DROP | 删除数据库或表的权限 | 数据库或表 |
GRANT OPTION | 赋予权限选项 | 数据库或表 |
REFERENCES | 引用权限 | 数据库或表 |
ALTER | 更改表的权限 | 数据表 |
DELETE | 删除表数据的权限 | 数据表 |
INDEX | 操作索引的权限 | 数据表 |
INSERT | 添加表数据的权限 | 数据表 |
UPDATE | 更新表数据的权限 | 数据表 |
CREATE VIEW | 创建视图的权限 | 视图 |
SHOW VIEW | 查看视图的权限 | 视图 |
ALTER ROUTINE | 更改存储过程的权限 | 存储过程 |
如何给用户赋权
grant all privileges on *.* to 'hj'@'localhost' IDENTIFIED by '123456';grant 赋权的开头语句all PRIVILEGES 赋予所有权限on *.* 所有库on *.* 所有库都有操作权限on hj.* 只能对指定(hj)库进行操作to 'hj'@'localhost' 赋权给哪个用户,要和创建用户赋权格式一致。IDENTIFIED by '123456' 使用哪个密码进行登录。创建用户时候可以省略
show grants for 'hj'@'localhost';查看权限flush privileges; 权限刷新
如何查看指定用户权限
show grant for '用户名'@'来源地址';show grant for 'hj'@'20.0.0.100';
如何对权限进行控制
给用户加上权限:
grant select on 库名.* to '用户名'@'来源地址' idevtified by '密码';grant select on test.* to 'test1'@'20.0.0.100' idevtified by '123456';flush privileges;
如何给一个用户赋予多个权限
grant select,insert,drop on hj.* to 'test1'@'20.0.0.100' identified by '123456';
如何给用户撤销权限
revoke select on hj.* from 'test1'@'20.0.0.100';
练习
1.创建用户,声明网段 test 网段任选
create user 'test'@'20.0.0.0/24' IDENTIFIED by '123123'
2.创建一个库,库名:test1
3.库中创建两个表分别叫做
table1
id 主键
name 不为空
sex 不为空
CREATE TABLE table1 (
id int(4) PRIMARY KEY,
name_id int(4) NOT NULL,
sex int(4) not null
)
table2
id 主键
address 可以为空 默认-----地址不详
phone 可以为空,不能重复
CREATE TABLE table2 (
id int(4) PRIMARY KEY,
address varchar(50) default '地址不详',
phone varchar(12) UNIQUE
)
3.test可以对test1 的库 进行select insert
GRANT SELECT,INSERT on test1.* to 'test'@'20.0.0.0/24' IDENTIFIED by '123123';
//终端没有权限,所以得去root的命令行执行
4.把test的用户名改成test_123,密码改成abc123
set passwd for 'test'@'20.0.0.%' = password('abc123');
%为正则任意,来代表网段
5.删除权限:insert删去
总结
1.用户管理操作
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 #重启服务
update mysql.user set authentication_string=password('新密码') where user='root';
#修改密码 flush privileges; #刷新数据库
2.用户授权操作
grant 权限列表/ALL ON 库名.表名 to 'username'@'address' identified by '密码'; #授予用户权限 show grants; #查看当前用户(自己)的权限
show grants for 'username'@'address'; #查看其他用户的权限
revoke 权限列表/ALL on 库名.表名 from 'username'@'address'; #撤销用户的权限
。
相关文章:

MySQL用户管理和授权
用户管理和授权是属于MySQL当中的DCL语句 创建用户以及一些相关操作 明文创建用户 create user zzrlocalhost IDENTIFIED by 123456;create user 这是创建用户的开头zzr表示用户名 localhost:新建的用户可以在哪些主机上登录。即可以使用IP地址,网段&a…...

PCIe 的 MSI 中断详解,寄存器级别的详细流程分析,完全搞懂硬件的工作流程
PCIe 的 MSI 中断 前言 什么是 MSI 中断 (Message Signaled Interrupts) 概念与内容介绍待补充 正文 对 EP 的初始化 需要对 EP 的配置空间 MSI 相关功能的寄存器进行初始化,主要有两个寄存器 Message Address 和 Message Data。它们分别的含义是 EP 产生 MSI …...
软考 系统架构设计师系列知识点之净室软件工程(1)
所属章节: 第5章. 软件工程基础知识 第5节. 净室软件工程 1. 概述 净室(Cleaning Room)软件工程是一种应用数学与统计学理论,以经济的方式生产高质量软件的工程技术,力图通过严格的工程化的软件过程达到开发中的零缺…...

NFC芯片MS520:非接触式读卡器 IC
MS520 是一款应用于 13.56MHz 非接触式通信中的高集成 度读写卡芯片。它集成了 13.56MHz 下所有类型的被动非接触 式通信方式和协议,支持 ISO14443A 的多层应用。 主要特点 ◼ 高度集成的解调和解码模拟电路 ◼ 采用少量外部器件,即可将输…...
git push 部分 commit
原理:通过rebase修改提交的顺序,然后提交内容 $ git rebase -ivi 编辑器里面按 i 修改你要提交的内容到最上面,然后ESC -> :wq$ git push origin 459ed31a36439c68228ac81c732a4abe3a5de149:master origin 仓库名字&#x…...

idea自动编译以及修改代码后需要执行 mvn clean install 才生效
idea自动编译以及修改代码后需要执行 mvn clean install 才生效 一. idea热部署一、开启IDEA的自动编译(静态)二、开启IDEA的自动编译(动态)三、开启IDEA的热部署策略(非常重要) 二. IDEA 中项目代码修改后…...

21.13 Python 实现端口流量转发
端口流量转发(Port Forwarding)是一种网络通信技术,用于将特定的网络流量从一个端口或网络地址转发到另一个端口或地址。它在网络中扮演着一个非常重要的角色,在Python语言中实现端口转发非常容易。 如下这段代码实现了一个基本的…...

CNN卷积神经网络模型的GPU显存占用分析
一、参考资料 浅谈深度学习:如何计算模型以及中间变量的显存占用大小 如何在Pytorch中精细化利用显存 二、相关介绍 0. 预备知识 为了方便计算,本文按照以下标准进行单位换算: 1 G 1000 MB1 M 1000 KB1 K 1000 Byte1 B 8 bit 1. 模型参数量的计…...

LSF 概览——了解 LSF 是如何满足您的作业要求,并找到最佳资源来运行该作业的
LSF 概览 了解 LSF 是如何满足您的作业要求,并找到最佳资源来运行该作业的。 IBM Spectrum LSF ("LSF", load sharing facility 的简称) 软件是行业领先的企业级软件。LSF 将工作分散在现有的各种 IT 资源中,以创建共享的,可扩展…...

三.RocketMQ单机安装及集群搭建
RocketMQ单机安装及集群搭建 一:安装环境1.软硬件要求2.下载RocketMQ 二.安装单机MQ1.上传并解压2.目录介绍3.修改MQ启动时初始JVM内存4.启动NameServer与Broker5.测试RocketMQ 三.RocketMQ集群搭建1.集群概念特点2.集群模式分类3.集群工作流程4.双主双从集群搭建4.…...

uniapp 模仿 Android的Menu菜单栏
下面这张图就是我们要模拟的菜单功能 一、模拟的逻辑 1. 我们使用uni-popup组件(记得要用hbuilder X导入该组件)uni-app官网 2. 将组件内的菜单自定义样式 二、uniapp代码 写法vue3 <template><view><uni-popup ref"showMenu"…...
wordcloud Python中的词云库
Python中的词云库是一个非常流行的文本可视化工具,可以将文本中的关键词以词云形式呈现。本篇文章将详细讲解Python中的词云库的使用和API以及代码注释。 安装词云库 安装词云库的方式很简单,只需要在命令行中使用pip命令即可。具体命令如下所示&#…...

直播间讨论区需要WebSocket,简单了解下
由于 http 存在一个明显的弊端(消息只能有客户端推送到服务器端,而服务器端不能主动推送到客户端),导致如果服务器如果有连续的变化,这时只能使用轮询,而轮询效率过低,并不适合。于是 WebSocket…...

2024年天津高职升本科考试将于11月开始报名
2024年天津高职升本科考试文化课网上报名及其现场确认将于11月下旬开始 2023年11月1日,天津招考资讯官方网站发布了本月(11月)报名事项安排,将进行下列考试项目网上报名工作,2024年备考天津专升本的考生可以看到2024年…...
linux mysql 创建数据库并配置用户远程管理
要在Linux上创建MySQL数据库并配置用户以实现远程管理,您可以执行以下步骤: 1. 登录到MySQL服务器: 在您的Linux终端中,使用以下命令登录到MySQL服务器。您需要提供MySQL服务器的用户名和密码。 mysql -u root -p 输入密码后&a…...

pppoe拨号案例
R3服务端 interface LoopBack0 ip address 1.1.1.1 255.255.255.255 aaa local-user test password cipher admin local-user test service-type ppp ip pool test network 100.0.0.0 mask 255.255.255.0 interface Virtual-Template0 ppp authentication-mode chap remote …...

基于STM32C8T6的智能蓝牙小车控制设计
**单片机设计介绍,1655基于STM32C8T6的智能蓝牙小车控制设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计五、 程序文档 六、 结论七、 文章目录 一 概要 基于STM32C8T6的智能蓝牙小车控制设计是基于STM32微控制器和蓝牙模块开发的一种小型智能车辆控制系统…...

P3983 赛斯石(赛后强化版),背包
题目背景 白露横江,水光接天,纵一苇之所如,凌万顷之茫然。——苏轼真程海洋近来需要进购大批赛斯石,你或许会问,什么是赛斯石? 首先我们来了解一下赛斯,赛斯是一个重量单位,我们用…...
系统架构设计师历年真题案例知识点汇总
常见的软件质量属性有多种,例如性能(Performance)、可用性(Availability)、可靠性(Reliability)、健壮性(Robustness)、安全性(Security)、可修改性(Modification)、可变性(Changeability)、易用…...

缓存击穿只会逻辑过期 OR 互斥锁?深入思考 == 鹤立鸡群
网上但凡看得见的文章,大部分在说缓存穿透时都是无脑分布式锁 / 逻辑过期,分布式锁一点问题都没有么?逻辑过期一点问题都没有么?还能不能再进一步优化? 在聊聊缓存击穿的双重判定锁之前,我们将按照循循渐进…...
Android Wi-Fi 连接失败日志分析
1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分: 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析: CTR…...
【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15
缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下: struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...
从零实现富文本编辑器#5-编辑器选区模型的状态结构表达
先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...

现代密码学 | 椭圆曲线密码学—附py代码
Elliptic Curve Cryptography 椭圆曲线密码学(ECC)是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础,例如椭圆曲线数字签…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)
骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术,它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton):由层级结构的骨头组成,类似于人体骨骼蒙皮 (Mesh Skinning):将模型网格顶点绑定到骨骼上,使骨骼移动…...

Java面试专项一-准备篇
一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如:…...

面向无人机海岸带生态系统监测的语义分割基准数据集
描述:海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而,目前该领域仍面临一个挑战,即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...

STM32---外部32.768K晶振(LSE)无法起振问题
晶振是否起振主要就检查两个1、晶振与MCU是否兼容;2、晶振的负载电容是否匹配 目录 一、判断晶振与MCU是否兼容 二、判断负载电容是否匹配 1. 晶振负载电容(CL)与匹配电容(CL1、CL2)的关系 2. 如何选择 CL1 和 CL…...
安卓基础(Java 和 Gradle 版本)
1. 设置项目的 JDK 版本 方法1:通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分,设置 Gradle JDK 方法2:通过 Settings File → Settings... (或 CtrlAltS)…...
libfmt: 现代C++的格式化工具库介绍与酷炫功能
libfmt: 现代C的格式化工具库介绍与酷炫功能 libfmt 是一个开源的C格式化库,提供了高效、安全的文本格式化功能,是C20中引入的std::format的基础实现。它比传统的printf和iostream更安全、更灵活、性能更好。 基本介绍 主要特点 类型安全:…...