MySQL用户管理

news2024/11/18 0:11:54

文章目录

  • MySQL用户管理
    • 用户
      • 用户信息
      • 创建用户
      • 修改用户密码
      • 删除用户
    • 数据库的权限
      • MySQL中的权限
      • 给用户授权
      • 回收权限

MySQL用户管理

  • 与Linux操作系统类似,MySQL中也有超级用户和普通用户之分。
  • 如果一个用户只需要访问MySQL中的某一个数据库,甚至数据库中的某一个表,那么可以为其创建一个普通用户,并为该用户赋予对应的权限,而不让该用户看到数据库中的其他数据,防止该用户对其他数据进行误操作。

用户

用户信息

用户信息

MySQL当中默认有一个名为mysql的数据库。如下:

在这里插入图片描述

查看该数据库中的表,可以看到其中有一个名为user的表。如下:

在这里插入图片描述

user表中存储的就是MySQL中用户相关的信息。如下:

在这里插入图片描述

部分字段说明:

  • user: 表示该用户的用户名。
  • host: 表示该用户可以从哪个主机登录,localhost表示只能从本机登录,%表示可以从任意地方登录。
  • authentication_string: 表示该用户的密码经过password函数加密后的值。
  • xxx_priv: 表示该用户是否拥有对应权限。

在查看用户信息时为了避免刷屏,可以只选择其中的部分字段进行显示。如下:

在这里插入图片描述

需要注意的是,MySQL中可以存在同名的用户,只要这些同名用户对应的登录主机不同即可,因为user表中的主键是复合主键,由表中的user列和host列共同承担。如下:

在这里插入图片描述

创建用户

创建用户

创建用户的SQL如下:

CREATE USER '用户名'@'登录主机' IDENTIFIED BY '密码';

比如下面创建一个用户名为dragon,并且可以从任意地方登录的用户。如下:

在这里插入图片描述

创建用户成功后,该用户的相关信息也就被写入到刚才的user表中了。如下:

在这里插入图片描述

这时便可以用新创建的普通用户来连接MySQL服务器了。如下:

在这里插入图片描述

此外,由于我们创建的这个用户可以从任意地方登录,因此如果你在Windows下也安装了MySQL,那么就可以在Windows的cmd窗口进行远程登录。如下:

在这里插入图片描述

说明一下:

  • 创建用户的SQL当中包含用户的密码,因此该SQL不会被历史记录下来,所以不能通过上下键进行追溯。
  • MySQL本身的认证级别比较高,因此创建用户时设置的密码不能太简单,否则会出现报错,这时你可以选择将密码设置复杂一些,也可以对密码相关的设置进行调整。

通过show命令查看全局变量,可以看到密码设置相关的要求。如下:

在这里插入图片描述

修改用户密码

用户自己修改自己的密码

用户可以自己通过调用password函数,将新密码加密后的值设置到自己password当中。如下:

在这里插入图片描述

超级用户修改任意用户的密码

超级用户可以通过调用password函数,将新密码加密后的值设置到指定用户的password当中。如下:

在这里插入图片描述

删除用户

删除用户

删除用户的SQL如下:

DROP USER '用户名'@'登录地址';

比如将刚才创建的用户删除后,该用户在user表中对应的记录也就不存在了。如下:

在这里插入图片描述

说明一下:

  • 删除用户时如果不指明待用户的登录地址,则默认删除的是登录地址为%的用户。

数据库的权限

MySQL中的权限

MySQL中的权限

MySQL数据库提供的权限如下:

权限列名上下文
CREATECreate_priv数据库、表或索引
DROPDrop_priv数据库或表
GRANT OPTIONGrant_priv数据库、表或保存的程序
REFERENCESReferences_priv数据库或表
ALTERAlter_priv
DELETEDelete_priv
INDEXIndex_priv
SELECTSelect_priv
UPDATEUpdate_priv
CREATE VIEWCreate_view_priv视图
SHOW VIEWShow_view_priv视图
ALTER ROUTINEAlter_routine_priv保存的程序
CREATE ROUTINECreate_routine_priv保存的程序
EXECUTEExecute_priv保存的程序
FILEFile_priv服务器主机上的文件访问
CREATE TEMPORARY TABLESCreate_tmp_table_priv服务器管理
LOCK TABLESLock_tables_priv服务器管理
CREATE USERCreate_user_priv服务器管理
PROCESSProcess_priv服务器管理
RELOADReload_priv服务器管理
REPLICATION CLIENTRepl_client_priv服务器管理
REPLICATION SLAVERepl_slave_priv服务器管理
SHOW DATABASESShow_db_priv服务器管理
SHUTDOWNShutdown_priv服务器管理
SUPERSuper_priv服务器管理

需要注意的是,新创建的用户没有任何权限,因此创建用户后需要给用户授权。

给用户授权

给用户授权

给用户授权的SQL如下:

GRANT 权限列表 ON 库名.对象名 TO '用户名'@'登录地址' [IDENTIFIED BY '密码'];

说明一下:

  • '用户名'@'登录地址':表示给哪一个用户授权。
  • 库名.对象名:表示要授予用户哪个数据库下的哪个对象的权限。
  • 权限列表:表示要授予用户何种权限,多个权限之间用逗号隔开。
  • IDENTIFIED BY '密码'可选:如果用户存在,则在授予权限的同时修改该用户的密码,如果用户不存在,则创建该用户。

比如下面创建用户dragon,并授予用户在user_management数据库下所有对象的select权限。如下:

在这里插入图片描述

授权后通过show grants for '用户名'@'登录地址'命令,可以查看该用户现有的权限。如下:

在这里插入图片描述

说明一下:

  • 创建用户后该用户默认会有USAGE权限,该权限只能用于数据库登录,不能执行任何操作。
  • *.*表示所有数据库的所有对象,库名.*表示某个数据库的所有对象(表、视图、存储过程等)。

此时该用户查看数据库时,就能查看到user_management数据库了。如下:

在这里插入图片描述

说明一下:

  • 创建用户后该用户默认只能看到information_schema数据库,该数据库中保存的是MySQL服务器所维护的所有其他数据库的信息。

进入user_management数据库后,也能查看其中的所有表。如下:

在这里插入图片描述

但该用户目前只能查看表中的信息,而不能对表中的数据进行修改,因为我们只授予了该用户select权限。如下:

在这里插入图片描述

下面将user_management数据库下的所有权限都授予该用户。如下:

在这里插入图片描述

这时该用户才可以对表中的数据进行其他操作。如下:

在这里插入图片描述

回收权限

回收权限

回收权限的SQL如下:

REVOKE 权限列表 ON 库名.对象名 FROM '用户名'@'登录地址';

说明一下:

  • 回收权限的语法与授权一样,只不过将to关键字改为了from,并且没有了IDENTIFIED BY '密码'字段。

比如下面将dragon用户在user_management数据库下的所有权限回收。如下:

在这里插入图片描述

说明一下:

  • 回收用户在某一数据库下的权限后,在该用户下一次进入该数据库时才会起作用。
  • 如果回收权限时该用户正在使用对应数据库,那么回收权限后该用户仍然拥有对应的权限。

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

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

相关文章

Unity 资源插件 Agents Navigation 3.1.1.unitypackage

Unity 插件 Agents Navigation 3.1.1.unitypackage 描述 这个软件包包括高性能、模块化和可扩展的代理导航。它是以 DOTS 为核心开发的,因此充分利用了 Unity 的最新技术栈,如 SIMD 数学、Jobs、Burst 编译器和 EntityComponentSystem。此外,…

【ASP.NET】原生JavaScript加Asp.net实现多图片上传

记录一下,Javascript加asp.net实现多文件上传的方法。首先看一下要实现的功能,图片比文字描述更直观。 一、前台代码 前台代码代码分为三个部分,一是HTML代码,二是Style样式代码,三是Javascript代码。 1.html代码 …

亿级高并发电商项目-- 实战篇 --万达商城项目 八(安装FastDFS、安装Nginx、文件服务模块、文件上传功能、商品功能与秒杀商品等功能)

专栏:高并发---分布式项目 👏作者简介:大家好,我是小童,Java开发工程师,CSDN博客博主,Java领域新星创作者 📕系列专栏:前端、Java、Java中间件大全、微信小程序、微信支…

C语言进阶——自定义类型:枚举、联合

🌇个人主页:_麦麦_ 📚今日名言:如果不去遍历世界,我们就不知道什么是我们精神和情感的寄托,但我们一旦遍历了世界,却发现我们再也无法回到那美好的地方去了。当我们开始寻求,我们就已…

2023春招java面试题及答案

2023春招java面试题及答案总结1.以下Dubbo服务负载均衡策略中,哪一个策略的功能是相同参数的请求总是发到同一个提供者()2.如下代码:请问编译运行的结果是什么?3.给出如下代码:请问编译运行的结果是什么&am…

英国访问学者邀请函范例

下面是知识人网访问学者老师分享的一个英国访问学者邀请函范例,邀请函不要复杂,提供签证官想看到的东西即可。Chen xxxDate of Birth: September 1th , 19xxSchool of Computer and InformationXXXX UniversityNo.X South RoadXXX city, XXX Province, 1…

1.Unity之Shader新手入门

Unity Shader着色器的基本概念如何使用Unity Shader着色器示例:如何使用Unity Shader着色器创建复杂的效果总结 什么是Unity中的Shader着色器? Shader着色器是用来控制物体外观的编程代码,它可以改变物体的颜色、纹理、光照、凹凸等&#xf…

智慧校园综合解决方案

在网络和信息技术的普及和国家教育信息化建设的推动下,以计算机网络为基础,以信息和知识资源的共享为手段,强调合作、分享、传承精神的网络化、数字化、智能化有机结合的新型教育、学习和研究的教育环境建设显得尤为重要。 智慧校园是利用信息…

leaflet 纯CSS的marker标记,不用图片来表示(072)

第072个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+leaflet中使用纯CSS来打造marker的标记。这里用到的是L.divIcon来引用CSS来构造新icon,然后在marker的属性中引用。 这里必须要注意的是css需要是全局性质的,不能被scoped转义为其他随机的css。 直接复制下面的 v…

【SPSS】频数分析和基本描述统计量详细操作教程(附实战案例)

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

记录--『uni-app、小程序』蓝牙连接、读写数据全过程

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 本文简介 这是一次真实的 蓝牙收发数据 的全过程讲解。 本文使用 uni-app Vue3 的方式进行开发,以手机app的方式运行(微信小程序同样可行)。 uni-app 提供了 蓝牙 和 低功耗蓝牙 的 api &…

深圳硬件黑客松活动,开放报名!

开源社KAIYUANSHE近期微信公众号订阅功能做调整啦!没有被星标的账号在信息流里可能不显示大图了!快星标⭐我们,就可以及时看到发布的文章啦!STEP01 点击右上角标志STEP02 点击【设为星标】近年来,创客文化越来越受到人…

figma通过什么方式可以转换为sketch

Figma 如何转为 Sketch 文件?巧了,刚好我对这个问题很熟悉,作为一个使用过 Figma 也使用过 Sketch 的人来说,我还蛮希望两个软件能够互相打通的,不过不管是 Figma 也好还是 Sketch 也好,两个设计软件&#…

含泪吐槽学C++的血与泪

含泪吐槽学C的血与泪 C在各位程序猿眼里并不陌生,但凡学习过C的人,都极有可能被它曾经蹂躏得不要不要的,而我就是其中一个。 文章目录1 我和C的那段血泪史2 再次与C重逢3 我想和你再来一次4 柳暗花明友情推荐5 福利赠书活动6 一个彩蛋大家好&…

FLUXNET数据下载具体步骤

一、FLUXNET数据介绍 全球长期通量观测网络概念最早起源于1993年,由国际地圈-生物圈计划首次提出,国际科学委员会在1995年的La Thuile研讨会上对此概念进行正式讨论,在这次会议上,通量观测委员会讨论了进行长期通量观测的可能性以…

KubeSphere

文章目录一、概述二、最小化安装 KubeSphere2.1 前提2.2 安装 nfs 服务器一、概述 KubeSphere是在Kubernetes之上构建的以应用为中心的企业级分布式容器平台,提供简单易用的操作界面以及向导式操作方式,在降低用户使用容器调度平台学习成本的同时&#…

超详细,Java 设计模式汇总(三)

装饰者模式 装饰者模式一般指装饰模式。 装饰模式指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。 装饰者模式(Decorator Pattern)允许向一个现…

springboot+vue简单对接支付宝完整流程

源码 前端 vue-demo https://www.aliyundrive.com/s/dmnY8G6N6RM 点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载极速在线查看,视频原画倍速播放。 后端 aliPay https://www.aliyundrive.com/s/H2JFBjGWuf2 …

JVM04 堆

一个JVM实例只存在一个堆内存,堆也是Java内存管理的核心区域。 一个JVM实例(一个Runtime)只存在一个堆内存,堆也是Java内存管理的核心区域。 Java堆区在JVM启动的时候即被创建,其空间大小也就确定了。是JVM管理的最大…

ios上架及证书最新申请流程

ios上架及证书最新申请流程在使用hbuilderx或apicloud等uniapp框架开发app的时候,需要安卓证书或ios证书,假如是开发ios应用,打包成ipa包后,还需要将这个ipa上架到app store。苹果官网推荐的方法中,生成ios证书和上架i…