【MySQL系列】MySQL的用户管理

news2024/10/7 18:31:27

「前言」文章内容大致是MySQL的用户管理。

「归属专栏」MySQL

「主页链接」个人主页

「笔者」枫叶先生(fy)

MySQL

目录

  • 一、用户管理
    • 1.1 用户信息
    • 1.2 创建新用户
    • 1.3 删除用户
    • 1.4 修改用户密码
  • 二、数据库的权限
    • 2.1 给用户授权
    • 2.2 回收用户权限

一、用户管理

  • MySQL与Linux类似,也分普通用户的root用户
  • 如果只能使用root用户,这样存在安全隐患,这时就需要使用MySQL的用户管理,对用户进行权限管理

1.1 用户信息

在MySQL里,默认带有一个mysql的数据库
在这里插入图片描述
该数据库中有一张user
在这里插入图片描述
该表存放的就是MySQL用户相关的信息(\G按行打印)
在这里插入图片描述
部分字段说明:

  • user:表示该用户的用户名
  • host:表示这个用户可以从哪个主机登陆,如果是localhost,表示只能从本机登陆,%表示可以从任意地方登录
  • authentication_string:用户密码通过password函数加密后形成的字符串
  • *_privxxx_priv):表示用户拥有的权限,Y拥有该权限,N没有

查看当前用户

select user();

在这里插入图片描述
注:root是用户名,localhost是主机名

1.2 创建新用户

创建用户的SQL如下:

create user '用户名'@'登陆主机/ip' identified by '密码';

创建一个用户名为test,可以从任意地方登录的用户

 create user 'test'@'%' identified by '123123aa';

注:%表示可以从任意地方登录,是localhost,表示只能从本机登陆

MySQL本身的认证级别比较高,因此创建用户时设置的密码不能太简单,否则会出现报错,这时你可以选择将密码设置复杂一些,也可以对密码相关的设置进行调整

要降低MySQL输入密码的安全强度,可以通过修改validate_password的相关变量来实现

查看当前的validate_password相关变量

show variables like 'validate_password%';

在这里插入图片描述
validate_password_policy的默认值为1,表示密码必须包含数字、小写字母、大写字母和特殊字符。将其设置为0将禁用这些要求

 set global validate_password_policy=0;

在这里插入图片描述
创建新用户成功后,该用户的相关信息也就被写入到刚才的user表中了,进行查看该用户(信息太多,进行过滤)

 select user,host,authentication_string from user;

在这里插入图片描述
可以用新创建的普通用户来连接MySQL服务器
在这里插入图片描述
创建的这个用户可以从任意地方登录,因此如果你在Windows下也安装了MySQL,那么就可以在Windows的cmd窗口进行远程登录
在这里插入图片描述
注意

  • 在MySQL里涉及到密码password,该SQL不会被历史记录下来
  • 注意,不要轻易添加一个可以从任意地方登陆的用户,进行测完就删除(不然容易黑客挨打)

1.3 删除用户

删除用户语法如下:

drop user '用户名'@'主机名';

例如,删除上面的test用户

drop user 'test'@'%';

在这里插入图片描述

1.4 修改用户密码

自己改自己密码

语法如下:

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

root用户修改指定用户的密码

语法如下:

set password for '用户名'@'主机名'=password('新的密码')

二、数据库的权限

  • 如果一个用户只需要访问MySQL中的某一个数据库,甚至数据库中的某一个表,那么可以为其创建一个普通用户
  • 并为该用户赋予对应的权限,而不让该用户看到数据库中的其他数据,防止该用户对其他数据进行误操作

MySQL数据库提供的权限列表

在这里插入图片描述
注意:新创建的用户没有任何权限,因此创建用户后需要给用户授权

2.1 给用户授权

刚创建的用户没有任何权限,需要给用户授权,语法如下:

grant 权限列表 on.对象名 to '用户名'@'登陆地址/ip' [identified by '密码']

说明:

  • to:to后面跟的是用用户,表示给哪一个用户授权
  • 库名.对象名:表示要授予用户哪个数据库下的哪个对象(表)的权限
  • 例如,*.* : 代表本系统中的所有数据库的所有对象(表,视图,存储过程等)
  • 库.* : 表示某个数据库中的所有数据对象(表,视图,存储过程等)
  • identified by可选项:如果用户存在,赋予权限的同时修改密码,如果该用户不存在,就是创建用户
  • 权限列表:表示要授予用户何种权限,多个权限之间用逗号隔开
-- 权限列表,例如
grant select on ... -- 赋予select权限
grant select, delete, create on -- 表示赋予select, delete, create权限
grant all [privileges] on ... -- 表示赋予该用户在该对象上的所有权限

创建一个新用户zhangsan,然后通过一些命令可以查看该用户现有的权限

show grants for '用户名'@'登录地址';

例如:

 show grants for 'zhangsan'@'localhost';

在这里插入图片描述

  • 创建用户后该用户默认会有USAGE权限,该权限只能用于数据库登录,不能执行任何操作

查看该用户的数据库,只有一个系统自带的,root用户下的数据库普通用户看不到
在这里插入图片描述
在root用户下创建一个test_db的数据库,授予zhangsna用户在test_db数据库下所有对象的select权限

grant select on test_db.* to 'zhangsan'@'localhost';

在这里插入图片描述

注:*.*表示所有数据库的所有对象,库名.*表示某个数据库的所有对象(表、视图、存储过程等)

此时查看该用户的数据库,就能查看到该数据库了
在这里插入图片描述
该用户目前只能查看表中的信息,而不能对表中的数据进行其他操作,如果需要进行其他操作,需要赋予相应的权限
在这里插入图片描述
下面将test_db该数据库的所有权限赋予给该用户,授权之后该用户就可以对该数据库进行任何操作了(不演示了)

 grant all on test_db.* to 'zhangsan'@'localhost';

在这里插入图片描述

注意:如果发现赋权限后,没有生效,执行如下指令:

flush privileges;

2.2 回收用户权限

回收用户权限SQL语法如下:

revoke 权限列表 on.对象名 from '用户名'@'登陆地址/ip';

回收权限的语法与授权语法相似,不解释了

例如,将zhangsan用户在test_db数据库的所有权限进行回收

revoke all on test_db.* from 'zhangsan'@'localhost';

在这里插入图片描述
注意:如果回收权限时该用户正在使用对应数据库,那么回收权限后该用户仍然拥有对应的权限,只有下一次该用户再进入该数据库时新权限才会起作用
--------------------- END ----------------------

「 作者 」 枫叶先生
「 更新 」 2023.9.13
「 声明 」 余之才疏学浅,故所撰文疏漏难免,
          或有谬误或不准确之处,敬请读者批评指正。

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

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

相关文章

图形学线性代数

最近学图形学!学的是GAMES101-现代计算机图形学入门-闫令琪↓会做点笔记 Lecture 03 Transformation_哔哩哔哩_bilibili 点乘 1)主要作用是找到两个方向/向量的夹角 2)找一个向量投影到另一个向量 作用 叉乘 此处x,y,z都是坐标轴 作用 1&a…

HTML+CSS画一个卡通中秋月饼

HTMLCSS画一个卡通中秋月饼🥮🥮🥮 中秋活动水个文章 整个divcss实现个月饼,给前端初学者一个练手的demo 效果图 思路 HTMl 先来个轮廓画脸上的东西:眼睛、眉毛、腮红、嘴巴眼睛丰富下瞳孔画20个花瓣 CSS 轮廓是要外…

4G版本云音响设置教程腾讯云平台版本

文章目录 4G本云音响设置教程介绍一、申请设备三元素1.腾讯云物联网平台2.创建产品3.设置产品参数4.添加设备5.获取三元素 二、设置设备三元素1.打开MQTTConfigTools2.计算MQTT参数3.使用USB连接设备4.设置参数 三、腾讯云物联网套件协议使用说明1.推送协议信息2.topic规则说明…

WebGL 根据模型矩阵的逆转置矩阵计算运动物体的光照效果

目录 前言 坐标变换引起法向量变化 变化规律: 魔法矩阵:逆转置矩阵 逆转置矩阵的用法总结 Matrix4对象的 setInverseOf 、transpose 方法规范(以完成逆转置矩阵) 示例代码(LightedTranslatedRotatedCube.js&am…

虚拟机Ubuntu操作系统常用终端命令(2)(详细解释+详细演示)

本篇概要 本篇讲述了Ubuntu操作系统常用的几个功能,即超级用户,虚拟机系统损坏如何修复,用户和组,如何以root登录界面以及文件的权限方面的知识。希望能够得到大家的支持。 文章目录 本篇概要1.超级用户1.1使用超级用户1.2切换到…

【ICer必备基础】MOS电容——电容电压特性详解

【ICer必备基础】MOS电容——电容电压特性详解 1相关定义2MOS电容描述3MOS电容能带分析4可变电容实际应用 1相关定义 MOS电容是集成电路中非常重要的应用,器件电容的定义为: 阈值反型点: 当达到最大耗尽宽度且反型层电荷密度为零时的情形。此…

在Windows上无法使用TortoiseSVN等工具管理WSL2中的代码的问题

环境 Windows 11 WSL2(Ubuntu 22.04) 前言 众所周知,WSL2 的跨系统IO读写性能非常差(详情见我之前写的这篇文章),而我的代码又是在 WSL2 中运行的,为了提高性能,所以我的代码也必…

2023 Google 开发者大会:无障碍游戏体验升级、安卓开发人员生产力爆棚

目录 前言 一、会说话的狗 - “大黄” 二、GameFace -联合《荒野行动》,提升无障碍游戏体验 三、Android Studio Bot-解放开发人员生产力 五、Purnima致中国开发者的一封“信” 结语 🎈个人主页:库库的里昂 🎐CSDN新晋作者 …

9. 原型模式

引言 关键在于具备clone函数&#xff1b;克隆自身。 原型模式&#xff08;Prototype&#xff09;&#xff0c;用原型实例指定创建对象的种类&#xff0c;并且通过拷贝这些原型创建新的对象。 UML 测试代码&#xff1a; #include <iostream> using namespace std;class …

Python 之plt.plot()的介绍以及使用

文章目录 介绍代码实例 介绍 plt.plot() 是Matplotlib库中用于绘制线图&#xff08;折线图&#xff09;的主要函数之一。它的作用是将一组数据点连接起来&#xff0c;以可视化数据的趋势、关系或模式。以下是 plt.plot() 的详细介绍&#xff1a; plt.plot(x, y, fmt, **kwarg…

sun.security.validator.ValidatorException: PKIX path building failed

问题说明 在A系统使用HttpPost调用B系统的接口时报&#xff0c;B系统的ssl证书使用的是阿里云免费ssl证书&#xff0c;很郁闷调用别的系统都没有出现过这样的问题。 sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.Su…

ChatGLM-6b的微调与推理

基于ChatGLM-6B的推理与部署 1.使用git clone命令ChatGLM项目地址&#xff0c;将项目clone到本地。 2.下载ChatGLM-6B模型文件 【注意】运行下面代码的时候&#xff0c;要将源代码中的模型文件路径改成自己的地址&#xff0c;不然会报错&#xff01;&#xff01;&#xff01;…

destoon自定义一个archiver内容文档

在archiver目录建立以下代码&#xff1a; <?php define(DT_REWRITE, true); require ../common.inc.php; $EXT[archiver_enable] or dheader(DT_PATH); //$DT_BOT or dheader(DT_PATH); $N $M $T array(); $mid or $mid 5; $vmid $list 0; foreach($MODULE as $k>…

微服务保护-授权规则

个人名片&#xff1a; 博主&#xff1a;酒徒ᝰ. 个人简介&#xff1a;沉醉在酒中&#xff0c;借着一股酒劲&#xff0c;去拼搏一个未来。 本篇励志&#xff1a;三人行&#xff0c;必有我师焉。 本项目基于B站黑马程序员Java《SpringCloud微服务技术栈》&#xff0c;SpringCloud…

【JUC】Java并发编程从挖坑到入土全解(2)

目录 我们锁的到底是什么&#xff08;8个案例&#xff09; 案例1 案例2 案例3 案例4 案例5 案例6 案例7 案例8 总结 我们锁的到底是什么&#xff08;8个案例&#xff09; 有a、b两个线程&#xff0c;我们基于如下代码进行改造&#xff1a; public static void main…

数据结构---二叉搜索树

二叉搜索树 二叉搜索树什么是二叉搜索树&#xff1f; 二叉搜索树的操作查找插入删除 源代码非递归版 二叉搜索树 什么是二叉搜索树&#xff1f; 二叉搜索树(Binary Search Tree 简称BST)又称二叉排序树&#xff0c;是一种二叉树的特殊形式&#xff0c;它在每个节点上存储的键…

动态规划-货币问题

动态规划-货币问题 题目一 arr是货币数组&#xff0c;其中的值都是正数。再给定一个正数aim。每个值都认为是一张货币&#xff0c;即便是值相同的货币也认为每一张都是不同的&#xff0c;返回组成aim的方法数。例如 : arr { 1,1,1 }&#xff0c;aim 2&#xff0c;第0个和第…

C++之std::monostate应用实例(二百二十一)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

安卓恶意应用识别(三)(批量反编译与属性值提取)

前言 上篇说到对安卓APK反编译&#xff0c;本篇实现批量反编译和批量特征提取及计算&#xff0c;主要就是通过python代码与cmd进行批量化交互&#xff0c;我在写文章之前&#xff0c;尝试批量下载了安卓apk&#xff08;大约10来个&#xff09;&#xff0c;发现现在这个应用软件…

基于SSM的珠宝首饰交易平台

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…