MySQL用户管理和授权

news2025/1/16 3:39:52

用户管理和授权是属于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.cnf
 
skip-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';   #撤销用户的权限  ​  


 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

竞赛选题 深度学习图像风格迁移 - opencv python

文章目录 0 前言1 VGG网络2 风格迁移3 内容损失4 风格损失5 主代码实现6 迁移模型实现7 效果展示8 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 深度学习图像风格迁移 - opencv python 该项目较为新颖,适合作为竞赛课题…

SAP MM学习笔记39 - MRP(资材所要量计划)

这一章开始,离开请求书,学点儿新知识啦。 MRP ( Material Requirement Planning ) - 资材所要量计划。 它的位置在下面的调达周期图上来看,就是右上角的 所要量决定那块儿。 1,MRP(资材所要量计划) 的概要 MRP 的主要目的就是 确…

2024云渲染渲染100超简便的使用方法!渲染100云渲染邀请码5858

云渲染解决了本地电脑只能同时渲染一张图,并且占用本地电脑情况,让云渲染使用者也越来越多! 最近好多朋友在问我渲染100 - 官方注册邀请码【5858】如何提交渲染?今天我来总结一下 1.先在官网下载客户端,网页认证为渲染…

QT通过url下载http地址下的文件(文件夹)

前言 之前只写过通过http协议通信,没有写过下载http地址中的文件或者文件夹,了解一下在QT下如何下载。 其实很简单,同使用协议通信相同的是,创建QNetworkAccessManager和QNetworkRequest,设置QNetworkRequest的url&a…

游戏中的随机——“动态平衡概率”算法(二)

前言 本文是对上一篇文章的补充和总结。 在上一篇文章中,笔者提出了一套基本可用的“动态平衡概率”算法,本文将继续对该算法进行更加深入的探讨,解决上篇文章中的部分遗留问题,以及记录一下对“游戏中的概率”的一些思考&#…

【优选算法系列】第一节.二分查找简介加习题(704. 二分查找和34. 在排序数组中查找元素的第一个和最后一个位置)

文章目录 前言二分查找简介一、二分查找 1.1 题目描述 1.2 题目解析 1.2.1 算法原理 1.2.2 代码编写二、在排序数组中查找元素的第一个和最后一个位置 2.1 题目描述 2.2 题目解析 2.2.1 算法原理 2.2.2 代码编…

CSS选择器、CSS属性相关

CSS选择器 CSS属性选择器 通过标签的属性来查找标签&#xff0c;标签都有属性 <div class"c1" id"d1"></div>id值和class值是每个标签都自带的属性&#xff0c;还有另外一种&#xff1a;自定义属性 <div class"c1" id"d1&…

基于元学习神经网络的类人系统泛化

Nature 上介绍了一个关于AI在语言泛化方面的突破性研究。科学家们创建了一个具有人类般泛化能力的AI神经网络&#xff0c;它可以像人类一样将新学到的词汇融入现有词汇&#xff0c;并在新环境中使用它们。与ChatGPT 相比&#xff0c;该神经网络在系统性泛化测试中表现得更好。 …

pycharm切换不同的conda环境

进入file–>setting 这里会展示所有的conda环境&#xff0c;选择其中一个 点击刷新&#xff0c;展示你所有的库

RIS辅助MIMO广播信道容量

RIS辅助MIMO广播信道容量 摘要RIS辅助的BC容量矩阵形式的泰勒展开学习舒尔补 RIS-Aided Multiple-Input Multiple-Output Broadcast Channel Capacity论文阅读记录 基于泰勒展开求解了上行容量和最差用户的可达速率&#xff0c;学习其中的展开方法。 摘要 Scalable algorithm…

84.在排序数组中查找元素的第一个和最后一个位置(力扣)

目录 问题描述 代码解决以及思想 知识点 问题描述 代码解决以及思想 class Solution { public:vector<int> searchRange(vector<int>& nums, int target) {int left 0; // 定义左边界int right nums.size() - 1; // 定义右…

微服务之负载均衡使用场景

在如见常见微服务系统中&#xff0c;负载均衡组件是一种将流量分配到多个服务的技术&#xff0c;目的是提高系统的性能和可用性。负载均衡有两种常见的模式&#xff1a;服务端模式和客户端模式。服务端模式使用独立的应用程序&#xff08;如 Nginx&#xff09;来转发请求&#…

HTML5+CSS3+JS小实例:交互式图片鼠标悬停景深对焦效果

实例:交互式图片鼠标悬停景深对焦效果 技术栈:HTML+CSS+JS 效果: 源码: 【HTML】 <!DOCTYPE html> <html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"><meta name="viewport"…

木马免杀(篇三)静态免杀方法

紧接上一篇&#xff0c;是通过 cs 生成 shellcode 并直接用python 调用动态链接库执行 shellcode 。 生成后的exe文件未进行任何处理。 现在学习一些可以绕过静态免杀的方法。即将文件上传到目标不会被杀软查杀&#xff0c;但这只是静态方面。 动态免杀方面还涉及到很多东西&…

七、W5100S/W5500+RP2040树莓派Pico<UDP 组播>

文章目录 1. 前言2. 相关简介2.1 简述2.2 优点2.3 应用 3. WIZnet以太网芯片4. UDP 组播回环测试4.1 程序流程图4.2 测试准备4.3 连接方式4.4 相关代码4.5 测试现象 5. 注意事项6. 相关链接 1. 前言 UDP组播是一种基于UDP协议的通信方式&#xff0c;它允许一台计算机通过发送单…

怎么解决气膜场馆噪音太大的问题?

近年来&#xff0c;多功能声学综合馆作为一种创新的建筑解决方案&#xff0c;有效地解决了传统气膜馆内部噪音问题。传统气膜馆由于其特殊结构和材料特性&#xff0c;常常受到噪音扩散和反射问题的困扰&#xff0c;影响了人们的听觉体验和活动效果。而多功能声学综合馆凭借声学…

Web - Servlet详解

目录 前言 一 . Servlet简介 1.1 动态资源和静态资源 1.2 Servlet简介 二 . Servlet开发流程 2.1 目标 2.2 开发过程 三 . Servlet注解方式配置 ​编辑 四 . servlet生命周期 4.1 生命周期简介 4.2 生命周期测试 4.3 生命周期总结 五 . servlet继承结构 5.1 ser…

Qt Concurrent框架详解(QFuture、QFutureWatcher)

1.概述 Qt Concurrent是Qt提供的一个并发编程框架&#xff0c;用于简化多线程和并行计算的开发。它提供了一组易于使用的函数和类&#xff0c;可以方便地在多线程环境下处理并发任务。 有以下特点&#xff1a; 简单易用&#xff1a;Qt Concurrent提供了一组高级函数和类&…

开关电源绝缘阻抗的检测标准是什么?如何测试绝缘阻抗性能?

绝缘阻抗测试是开关电源测试的一种重要方法&#xff0c;用来检测电气设备接线中断路和线路接触阻抗。用开关电源测试系统测试绝缘阻抗值保证结果准确性&#xff0c;评估绝缘阻抗性能&#xff0c;判断开关电源质量是否良好&#xff0c;从而保证开关电源的稳定性和可靠性。 怎么测…

论文研究中数据获取与查询

数据分析是写论文中一个非常重要的环节&#xff0c;特别是对于与经济相关专业的学子来讲&#xff0c;在写论文时避免不了需要案例分析&#xff0c;这时候数据分析就在其中显得尤为重要。 但是我们通常怎么获取这些数据呢&#xff1f; 下面给大家推荐几个能用得上的数据查询网站…