用户管理【MySQL】

文章目录

  • 查看用户信息
  • 创建用户
  • 修改密码
  • 删除用户
  • 授予权限
  • 收回权限

查看用户信息

在名为mysql的数据库中有一个表user维护着 MySQL 的用户信息。

image-20240227164127584

其中:

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

其中 password 函数可以对参数进行摘要。

尝试查看它们的值:

image-20240227164314212

由于 user 表中 Host 和 User 属性共同作为联合主键,所以只要用户名和主机 IP 的组合唯一即可,这是合理的,一台主机可能有多个用户。

MySQL 的所有用户管理工作都通过 user 表来进行,实际上,后续所有的用户操作都会被 MySQL 解析为 SQL 来执行,并且允许用户直接通过 SQL 对 user 表修改。例如通过 INSERT 添加用户,UPDATE+password 函数来修改用户密码登操作,都是可行的。但是这只能作为特殊情况的补救措施,因为这么做有风险。

创建用户

SQL:

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

如果你设置的密码过于简单,由于 MySQL 的密码策略等级,会出现以下错误:

Your password does not satisfy the current policy requirements

通过SHOW VARIABLES LIKE 'validate_password%';查看密码策略,从而设计符合条件的密码。

image-20240227170352013

或者修改密码策略:

set global validate_password_policy=0;
set global validate_password_length=1;

创建用户:

create user 'new_user'@'%' identified by '12345';
image-20240227170511859

现在可以以新用户的身份登录 MySQL:

mysql -unew_user -p

登录后可以查看客户端信息:

image-20240227170751017

由于%表示允许来自任何主机的用户登录,所以在远端登录 MySQL 的方式也是一样的。需要注意的是,可能在连接时会不被允许,这可能是服务端主机没有开放 3306(MySQL 服务器)端口,为了测试可以在/etc/mysql.cnf修改 MySQL 的端口配置为测试端口如 8080。实际应用中,数据库不对外开放而只在内网中使用。

修改密码

用户自己修改密码:

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

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

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

删除用户

SQL:

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

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

授予权限

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服务器管理

新创建的用户没有任何权限,创建用户后需要给用户授权。

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

其中:

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

例如授予用户new_usercurd_db数据库下所有对象的select权限:

grant select on curd_db.* to 'new_user'@'%' identified by '12345';

这样新用户就能看到 curd_db 这个数据库了。

image-20240227172042611

查看用户的权限:

image-20240227172310098

其中:

  • 创建用户后该用户默认会有 USAGE 权限,该权限只能用于数据库登录,不能执行任何操作。
  • *.*表示所有数据库的所有对象,库名。*表示某个数据库的所有对象(表、视图、存储过程等)。
  • information_schema 数据库保存的了 MySQL 服务器所维护的所有其他数据库的信息。新用户默认只能看到它。

但是目前只有 select 权限,不能对数据库内容做修改。授予new_usercurd_db数据库下以所有权限:

grant all on curd_db.* to 'new_user'@'%';

收回权限

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

注意:

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

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

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

相关文章

【Spark编程基础】实验一Spark编程初级实践(附源代码)

文章目录 一、实验目的二、实验平台三、实验内容和要求1. 计算级数2. 模拟图形绘制3.统计学生成绩 一、实验目的 1.掌握 Scala 语言的基本语法、数据结构和控制结构; 2.掌握面向对象编程的基础知识,能够编写自定义类和特质; 3.掌握函数式编程…

SSL证书:构建网络安全的基石

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

简单接入电商API接口|轻松实现实时采集淘宝、抖音、快手、1688商品,挖掘潜力款

今天给大家带来一款非常实用的电商API接口,这款数据采集接口支持淘宝采集、抖音采集、快手采集、1688采集以及潜力款分析,功能强大,助您在电商领域更上一层楼。 首先,我们来了解一下淘宝采集功能。作为国内最大的电商平台&#xf…

基于Java+springboot+VUE+redis实现的前后端分类版网上商城项目

基于Java springbootVUEredis实现的前后端分类版网上商城项目 博主介绍:多年java开发经验,专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞 收藏 ⭐留言…

Contact-GraspNet: Efficient 6-DoF Grasp Generationin Cluttered Scenes

总结 提出一种端到端的网络,解决复杂场景中对未知物体的抓取。将六自由度抓取投影到观察到的点云中的接触点,表示只有4-DoF。 摘要 我们提出了一个端到端网络,可以直接从场景的深度记 录中有效地生成六自由度平行颚抓取的分布。 我们的新…

06 数据结构之树

引言&#xff1a; 数的代码实现&#xff0c; 先序遍历、中序、后序、层次遍历 /* binary_tree.h */ #ifndef _BINARY_TREE_H #define _BINARY_TREE_H#include <stdio.h> #include <stdlib.h> #include <string.h>#define DEBUG(msg) \printf("--%s--, %…

车载诊断协议DoIP系列 —— 诊断报文和诊断报文应答传输层安全(TLS)

车载诊断协议DoIP系列 —— 诊断报文和诊断报文应答&传输层安全(TLS) 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师(Wechat:gongkenan2013)。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 本就是小人物,输了就是输了,不要在意别人怎…

NLP:文本相似度计算

前面我们已经实现了把长段的句子&#xff0c;利用HanLP拆分成足够精炼的分词&#xff0c;后面我们要实现“联想”功能&#xff0c;我这里初步只能想到通过文本相似度计算来实现。下面介绍一下文本相似度计算 &#xff08;当然HanLP也有文本相似度计算的方法&#xff0c;这里我…

【JAVA】CSS3伸缩盒案例、响应式布局、BFC

1.CSS3伸缩盒案例 效果&#xff1a;用伸缩盒模型 <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title>&…

Windows电脑安装Linux(Ubuntu 22.04)系统(图文并茂)

Windows电脑安装Ubuntu 22.04系统&#xff0c;其它版本的Ubuntu安装方法相同 Ubuntu 16.04、Ubuntu 18.04安装方法相同&#xff0c;制作U盘启动项的镜像文件下载你需要的版本即可&#xff01; Ubuntu的中文官网网址&#xff1a;https://cn.ubuntu.com/&#xff0c;聪明的你一定…

redisson解决redis服务器的主从一致性问题

redisson解决redis的主节点和从节点一致性的问题。从而解决锁被错误获取的情况。 实际开发中我们会搭建多台redis服务器&#xff0c;但这些服务器分主次&#xff0c;主服务器负责处理写的操作&#xff08;增删改&#xff09;&#xff0c;从服务器负责处理读的操作&#xff0c;…

TCP粘包和分包

TCP的粘包和分包是网络通信中常见的问题&#xff0c;特别是在使用TCP协议进行数据传输时。这两个问题都涉及到TCP在传输数据时的工作机制。 粘包&#xff08;TCP数据合并&#xff09; 粘包指的是发送方发送的多个小数据包在传输过程中被TCP协议合并成一个大的数据包接收&…

英飞凌电源管理PMIC的安全应用

摘要 本篇文档主要用来介绍英飞凌电源管理芯片TLF35584的使用&#xff0c;基于电动助力转向应用来介绍。包含一些安全机制的执行。 TLF35584介绍 TLF35584是英飞凌推出的针对车辆安全应用的电源管理芯片&#xff0c;符合ASIL D安全等级要求&#xff0c;具有高效多电源输出通道&…

AI认知与科普(通识)

一、宏观分析 1.全球人工智能产业概况&#xff1a; 近年来&#xff0c;全球人工智能产业呈现出快速增长的趋势。据相关数据显示&#xff0c;全球人工智能市场规模预计将在2025年达到约600亿美元&#xff0c;年复合增长率达到约25%。其中&#xff0c;美国、中国、欧洲、日本等地…

Jmeter+Ant+Git/SVN+Jenkins实现持续集成接口测试,一文精通(一)

前言 Jmeter&#xff0c;Postman一些基本大家相比都懂。那么真实在项目中去使用&#xff0c;又是如何使用的呢&#xff1f;本文将一文详解jmeter接口测试 一、接口测试分类 二、目前接口架构设计 三、市面上的接口测试工具 四、Jmeter简介&#xff0c;安装&#xff0c;环境…

opencv解析系列 - 基于DOM提取大面积植被(如森林)

Note&#xff1a;简单提取&#xff0c;不考虑后处理&#xff08;填充空洞、平滑边界等&#xff09; #include <iostream> #include "opencv2/imgproc.hpp" #include "opencv2/highgui.hpp" #include <opencv2/opencv.hpp> using namespace cv…

深入理解React中的useReducer:管理复杂状态逻辑的利器

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

​​​​​​​ARCGIS API for Python进行城市区域提取

ArcGIS API for Python主要用于Web端的扩展和开发&#xff0c;提供简单易用、功能强大的Python库&#xff0c;以及大数据分析能力&#xff0c;可轻松实现实时数据、栅格数据、空间数据等多源数据的接入和GIS分析、可视化&#xff0c;同时提供对平台的空间数据管理和组织管理功能…

docker-compose这下会用了吗?

概要 默认的模板文件是 docker-compose.yml&#xff0c;其中定义的每个服务可以通过 image 指令指定镜像或 build 指令&#xff08;需要 Dockerfile&#xff09;来自动构建。 注意如果使用 build 指令&#xff0c;在 Dockerfile 中设置的选项(例如&#xff1a;CMD, EXPOSE, V…

51单片机基础篇系列-51单片机基础开发流程和基本I/O口

&#x1f308;个人主页: 会编程的果子君 &#x1f4ab;个人格言:“成为自己未来的主人~” 51开发平台的组成 单片机应用系统&#xff08;也叫目标系统&#xff09; 硬件&#xff1a; 用户可以自己设计制作&#xff0c;也可以采用现成的开发板快捷搭建 软件&#xff1a; …