MySQL用户与权限管理

news2024/11/28 6:45:47

用户与权限管理

  • 1. 用户管理
    • 1.1 创建用户
    • 1.2 修改用户
    • 1.3 删除用户
    • 1.4 用户密码相关
      • 1.4.1 密码修改
      • 1.4.2 密码管理机制
  • 2. 权限管理
    • 2.1 授予权限原则
    • 2.2 查看权限
    • 2.3 授予权限
    • 2.4 收回权限
  • 3. 权限表
  • 4. 访问控制

1. 用户管理

  • MySQL用户分为root用户和普通用户;
  • root用户:超级管理员,拥有所有权限;
  • 普通用户:只拥有被赋予的指定权限;

1.1 创建用户

  • 执行创建用户语句的用户必须拥有CREATE USER权限;
  • 每添加一个用户,mysql.user表中会新增一条对应记录;
  • 新增用户没有任何权限,需要为其赋予指定权限;
  • 如果新增用户已经存在,会提示错误信息;
  • 基本语法:CREATE USER 用户名 [IDENTIFIED BY '密码'][,用户名 [IDENTIFIED BY '密码']]
  • 可使用CREATE USER语句同时创建多个用户,并为其指定登录密码;
  • 用户名参数表示新建用户的账户,由 用户(User) 和 主机名(Host) 构成,若不指定主机名,则默认为%表示支持所有主机登录;
    在这里插入图片描述

1.2 修改用户

  • 用户对应信息存储在mysql.user表中,因此可直接通过修改用户对应表数据修改用户;
  • 只能修改用户名或该用户对应主机;
  • 基本语法:UPDATE mysql.user SET USER='修改用户名' WHERE USER='指定用户名';
  • 在执行修改语句后,切记使用FLUSH PRIVILEGES;刷新权限;

1.3 删除用户

  • 基本语法:DROP USER user[,user]…;
  • 可同时删除多个用户,如果不指定用户对应主机名,则**默认删除host=%**的指定用户;
    在这里插入图片描述

1.4 用户密码相关

1.4.1 密码修改

修改当前用户密码: 当前用户登录状态下

# 方式一:
ALTER USER USER() IDENTIFIED BY '新密码';
# 方式二:
SET PASSWORD='新密码';

修改其他用户密码: 当前用户(必须拥有修改其他用户密码的权限,比如root用户)登录状态下

# 方式一:
ALTER USER 具体用户 IDENTIFIED BY '新密码';
# 方式二:
SET PASSWORD FOR  具体用户='新密码';

1.4.2 密码管理机制

在这里插入图片描述

2. 权限管理

  • MySQL用户只有在被赋予指定权限后,才能执行相关操作;
  • root用户拥有所有权限,普通用户只拥有被赋予的权限;

2.1 授予权限原则

在这里插入图片描述

2.2 查看权限

  • 查看MySQL支持的所有权限:show privileges;
    在这里插入图片描述
  • 查看当前用户拥有的权限:SHOW GRANTS;SHOW GRANTS FOR CURRENT_USER; SHOW GRANTS FOR CURRENT_USER();
  • 查看其他用户拥有的权限:SHOW GRANTS FOR 'user'@'主机地址' ;,前提是当前用户拥有查看其他用户权限的权限;

2.3 授予权限

  • 当前用户拥有为其他用户赋予权限的权限(比如root用户);
  • 给用户授权的方式有 2 种,分别是通过把 角色赋予用户给用户授权 和 直接给用户授权
  • 基本语法:GRANT 权限1,权限2,…权限n ON 数据库名称.表名称 TO 用户名@用户地址 [IDENTIFIED BY ‘密码口令’];
  • 赋予权限时如果发现没有该用户,则会直接新建一个用户;
  • 使用GRANT ALL PRIVILEGES为某用户赋予所有权限时,不包括为其他用户赋予权限的权限;
  • 若要使某用户可为其他用户赋予权限,则在为该用户赋予权限时添加WITH GRANT OPTIN选项即可;

2.4 收回权限

  • 基本语法:REVOKE 权限1,权限2,…权限n ON 数据库名称.表名称 FROM 用户名@用户地址;
  • 执行收回权限操作后,用户需重新登录后才会生效;

3. 权限表

  • MySQL数据库使用权限表控制用户对数据库的访问;
  • 权限表存放在MySQL自带库mysql数据库中,涉及到该库下的user、db表,以及tables_priv表、columns_priv表和procs_priv表等;
  • MySQL数据库启动时,服务器将权限表中的信息读入内存;

4. 访问控制

  • 访问控制过程分为连接核实阶段和请求核实阶段
  • 连接核实阶段:MySQL服务器接收到用户请求后,会使用user表中的host、user和authentication_string这3个字段匹配客户端提供信息。服务器只有在user表记录的Host和User字段匹配客户端主机名和用户名,并且提供正确的密码时才接受连接。如果连接核实没有通过,服务器就完全拒绝访问;否则,服务器接受连接,然后进入阶段2等待用户请求。
  • 请求核实阶段
    在这里插入图片描述

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

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

相关文章

大模型时代的模型运维与部署:LLMops

文章目录 1 LLMOps介绍1.1 关联定义1.2 LLMOps 与 MLOps 2 LLMOps实现步骤2.1 数据管理2.1.1 数据清洗和预处理技术2.1.2 数据标记和注释2.1.3 数据存储、组织和版本控制2.1.4 数据合规性检验 2.2 基础模型的选择2.3 迭代和提示管理2.4 测试评估2.5 部署2.6 监控 3 参考文献 1 …

万物的算法日记|算法学习 [java 二分法 acwing789.数的范围]

算法语言:java 题目来源:acwing.789 文章目录 题目描述题解五点七边的二分法第一个细节 l,r 边界问题为什么 l 边界初始化为 -1?同理为什么 r 边界初始化为 N而不是N-1 ?第二个细节 m是否始终处于[0,N)以内第三个细节&#xff0c…

【UnityDOTS 四】System的理解

System的理解 前言 System主要用于在ECS中进行逻辑处理。它具有自己的声明周期,主要分为两类:ISystem,SystemBase。前一个是非托管内存访问,后一个是托管内存访问。 一、Systemg认知 System在主线程运行,可以在代码中使用Job系…

基于php电影动漫在线观看系统 (源码➕数据库)

本系统主要是为用户提供一个动漫视频观看的平台,系统分为两个角色,一个是用户角色,另一个是管理员角色,其中用户角色可查看动漫视频的分类,查看动漫视频的详情,点击播放动漫视频,对动漫视频进行…

如何使用 OpenCV 去除图像背景

文末附源代码的免费下载链接 在本教程中,我们将学习如何使用 OpenCV 使用一种名为背景减法的技术来去除视频中的背景。 背景扣除是计算机视觉中用于检测视频中移动物体的常用技术。对于安全、监视、交通监控等来说,这是一种非常有用的技术。 背景减法的基本思想是通过从前景…

VirtualBox安装Ubuntu(22.04.2)

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

【Hello mysql】 数据库基础

Mysql专栏:Mysql 本篇博客简介:简单的介绍mysql相关的一些基础知识和在Linux环境下的安装 让大家对于mysql有一个初步的认知 数据库基础 数据库基础数据库定义数据库再理解软件角度文件角度总结 主流数据库mysql安装卸载不要的环境获取mysql官方yum源安装…

MySQL数据库引擎及账号管理

目录 前言 二、MySQL数据库引擎 1.是什么 2.MySQL的核心 3.MySQL的存储引擎 a.InnoDB(MySQL默认引擎) b.ACID事务 c.四种隔离级别 d.MyISAM e.MEMORY(Heap) 4.存储引擎查看 三、命令行操作数据库 四、账号管理 前言 MySQL安装请看MySQL的安装…

输入框input事件compositionstart和compositionend的妙用

现象&#xff1a; 在将输入输入法切换到中文的时候&#xff0c;在打拼音的过程中也会触发oninput事件&#xff0c;如下&#xff1a; const Demo()>{const [value,setValue]useState("");return (<><input onInput{(e)>{console.log("value&…

【多种优化算法比较】混沌引力搜索算法(CGSA)(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

byte字节值与ASCII表中char之间的转换

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

三款小游戏功能:让孩子在运动中享受智力挑战

最近看到一款很有趣的小玩具&#xff0c;是一种专门为儿童设计的益智训练器&#xff0c;功能很丰富&#xff0c;可以为孩子带来不少乐趣&#xff0c;起到一些体能和智力训练的作用。这款叫做益智感统摸高训练器的小工具&#xff0c;主要功能就是帮助儿童进行摸高训练&#xff0…

C/C++内存管理详解

去年的今日&#xff0c;博主第一次发文&#xff0c;那时初出茅庐&#xff0c;没什么经验。时隔一年&#xff0c;更加优质的博文献上&#xff0c;希望可以帮助到更多的人❤️❤️❤️ 文章目录 &#x1f4ac; 前言一、C/C内存分布二、C语言中动态内存管理方式三、C内存管理方式1…

AlexNet实战

前言&#xff1a;之前学了挺多卷积神经网络模型&#xff0c;但是都只停留在概念。代码都没自己敲过&#xff0c;肯定不行&#xff0c;而且这代码也很难很多都看不懂。所以想着先从最先较简单的AlexNet开始敲。不过还是好多没搞明白&#xff0c;之后逐一搞清楚。 文章目录 Alex…

Spark弹性分布式数据集

1. Spark RDD是什么 RDD&#xff08;Resilient Distributed Dataset&#xff0c;弹性分布式数据集&#xff09;是一个不可变的分布式对象集合&#xff0c;是Spark中最基本的数据抽象。在代码中RDD是一个抽象类&#xff0c;代表一个弹性的、不可变、可分区、里面的元素可并行计…

BottomNavigationView(自带角标)无法添加角标的解决问题

android studio的报错提示&#xff1a;java.lang.IllegalArgumentException: The style on this component requires your app theme to be Theme.MaterialComponents (or a descendant). 解决&#xff0c;改主题&#xff1a;

跨境平台做测评、采退、Lu卡、lu货要怎么做安全?

大家好&#xff0c;我是珑哥测评&#xff0c;今天和大家聊聊比较小众的圈子&#xff0c;也就是测评衍生出来的分支&#xff0c;采购和退款。因为最近也有很多客户咨询这个问题&#xff0c;由于沃尔玛风控升级了&#xff0c;很多客户下不成功的问题。 大家都知道无论是做测评还是…

BPM流程引擎适用于哪些类型企业管理系统

看到标题的童鞋们&#xff0c;估计在搜索办公软件系统时都会留意到BPM&#xff0c;那BPM到底是何方神圣&#xff1f;它与管理系统有什么区别呢&#xff1f;今天我们一一解答。 什么是BPM&#xff1f; BPM&#xff08;即业务流程管理&#xff09;&#xff0c;是企业信息化发展的…

[网络] ifconfig down掉的网口,插上网线网口灯依然亮?

1、软硬件环境 环境1&#xff1a; 硬件&#xff1a; 飞腾E2000Q ARM64 平台 YT8521SH (phy) 软件&#xff1a; linux 4.19.246 环境2&#xff1a; 硬件&#xff1a; NXP T1042 PowerPC 平台 YT8521SH (phy) 软件&#xff1a; linux 4.1.35 备注&#xff1a; 1、环境1的网…

Rdkit|分子可视化

Rdkit|分子可视化 Github&#xff1a; 地址 单个展示 从mol对象到图片&#xff1a;MolToImage(mol, size, kekulize, wedgeBonds, fitImage, …) mol&#xff1a;mol对象 size&#xff1a;图片尺寸&#xff0c;默认(300, 300) kekulize&#xff1a;是否展示kekule形式&#…