详细介绍:MySQL——用户权限和管理

news/2025/11/16 22:21:28/文章来源:https://www.cnblogs.com/yangykaifa/p/19229210

目录

一:本节⽬标

二:应⽤场景

三:⽤⼾

3.1 查看⽤⼾

3.2 创建⽤⼾

3.2.1 语法

3.2.2 注意事项

3.2.3 ⽰例

3.4 修改密码

3.4.1 语法

3.5 删除⽤⼾

3.5.1 语法

3.5.2 ⽰例

四:权限与授权

4.1.1 语法

4.1.2 ⽰例

4.2 回收权限

4.2.1 语法

4.2.2:实例


一:本节⽬标

了解数据库的⽤⼾与常⽤操作
了解数据库权限与授权

二:应⽤场景

数据库服务安装成功后默认有⼀个root⽤⼾,可以新建和操纵数据库服务中管理的所有数据库。在真实的使⽤过程中,通常每个应⽤对应着⼀个数据库,我们只希望某个⽤⼾只能操纵和管理当前应⽤对应的那个数据库,⽽不能操纵和管理其他应⽤的数据库,这时就可以添加⼀个⽤⼾并指定⽤⼾的权限

如上图所⽰:
root 可以访问和操纵所有的数据库:DB1, DB2, DB3, DB4

赋予某个数据库的所有权限包括增删改查
普通⽤⼾1 只能访问和操纵数据库DB1
普通⽤⼾2 只能访问和操纵数据库DB3

只能查询被赋予查询权限的库和表
只读⽤⼾1 只能访问数据库DB3
只读⽤⼾2 只能访问数据库DB4

root就是老大,可以对所有的库和表进行操作
在mysql中如果对数据进行某些操作,必须添加一个用户,并对用户赋予相应的权限。

三:⽤⼾

3.1 查看⽤⼾

MySQL的⽤⼾信息保存在mysql系统数据库的user表中,可以通过Select语句查看,如下所⽰选择数据库:

查看表

查看user表结构:

查看use中的记录:当前可以登录的主机v

navitact查看表结构

host: 允许登录的主机,相当于⽩名单,如果是localhost,表⽰只能从本机登陆
user: ⽤⼾名
_ priv: ⽤⼾拥有的权限
authentication_string: 加密后的⽤⼾密码

3.2 创建⽤⼾

3.2.1 语法

CREATE USER [IF NOT EXISTS] 'user_name'@'host_name' IDENTIFIED BY
'auth_string';

user 部分也就是用来登录MySQL的用户名
host_name 可以用来登录主机名或ip 可以起到一个白名单的作用,只有在指定的机器上才可以访问当前的MySQL,可以指定一个具体的机器或一个ip的范围

'user'@'HOST'才是一个的用户的编码方式

3.2.2 注意事项

如果不指定host_name相当于'user_name'@'%', %表⽰所有主机都可以连接到数据库,强烈建议不要这样设置,因为会导致严重的安全问题

user_name和host_name分别⽤单引号包裹,如果写成'user_name@host_name',相当
于'user_name@host_name'@'%'

host_name可以通过⼦⽹掩码设置主机范围

198.0.0.0/255.0.0.0 : A段⽹络中的任意⼀台主机

198.51.0.0/255.255.0.0: 198.51 B段⽹络中的任意⼀台主机

198.51.100.0/255.255.255.0: 198.51.100 C段⽹络中的任意⼀台主机

198.51.100.1 :只包含特定IP地址的主机

从MySQL 8.0.23开始,指定为IPv4地址的主机值可以使⽤CIDR表⽰法写⼊,例如198.51.100.44/24

允许在IP地址中使⽤%通配符,⽐如,主机值'%'匹配任何主机名, 198.51.100.% 匹配
198.51.100 C段⽹络中的任何主机。MySQL 8.0.35中已弃⽤,以后可能会删除

3.2.3 ⽰例

我们先查询当前登录的用户是谁
然后添加用户并且设置密码

然后我们重新查询一下我们的用户:
我们的1和2就是我们新创建的用户

思考一下 我们创建用户可以使用数据库吗?
不可以的哦 使用数据库需要有权限的。

3.4 修改密码

3.4.1 语法

为指定⽤⼾设置密码 【推荐】
ALTER USER 'user_name'@'host_name' IDENTIFIED BY 'auth_string';为指定⽤⼾设置密码
SET PASSWORD FOR 'user_name'@'host_name' = 'auth_string';为当前登录⽤⼾设置密码
SET PASSWORD = 'auth_string';


3.5 删除⽤⼾

3.5.1 语法

DROP USER [IF EXISTS] 'user_name'@'host_name'[, ...];
可以一次删除多个数据但是需要权限

3.5.2 ⽰例

 删除⽤⼾'bit1'@'192.168.1.1/24'
mysql> drop user 'bit1'@'192.168.1.1/24';

四:权限与授权

4.1.1 语法

grant priv_type[, priv_type ...] on priv_level
to 'user_name'@'host_name' [WITH GRANT OPTION]
priv_type:根据类型,参考根据列表4.1中的Privilege列
priv_level: * | *.* | db_name.* | db_name.tbl_name | tbl_name,⽐如*.*表⽰所有数据库下的所
有表
'user_name'@'host_name':指定⽤⼾
[WITH GRANT OPTION]:可选,允许⽤⼾将⾃⼰的权限授权给其它⽤⼾

4.1.2 ⽰例

为bit@localhost⽤⼾授权于 java01 数据库的 select 权限

4.2 回收权限

4.2.1 语法

REVOKE [IF EXISTS] priv_type[, priv_type] ... ON priv_level
FROM 'user_name'@'host_name' [, 'user_name'@'host_name']

4.2.2:实例

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

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

相关文章

完整教程:配置驱动开发:初探零代码构建嵌入式软件配置工具

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025 年海运物流专线公司推荐排行榜(广东地区重点推荐) 广州 / 深圳 / 佛山 / 东莞 ⇄ 澳洲 / 加拿大 / 新西兰物流运输公司推荐

2025 年海运物流专线公司推荐排行榜(广东地区重点推荐) 广州 / 深圳 / 佛山 / 东莞 ⇄ 澳洲 / 加拿大 / 新西兰物流运输公司推荐引言 随着珠三角地区跨境贸易与国际搬家需求持续升温,广州、深圳、佛山、东莞等地往返…

【CSP-J 2025】T4 多边形 polygon 题解

有史以来最水的 T4,我都会做。 形式化题面 给定一个长 \(n\) 的序列 \(\{a_i\}\)(\(1\le n ,a_i \le 5000\)),你需要找到一个长度为 \(m\) 的子序列,记下标为 \(b_1,b_2,\dots,b_m\),满足:\(m\ge 3\)\(\sum_{i=…

Django F对象完全指南:数据库层面的字段操作

一、F对象核心概念 1. 什么是F对象 F对象(F expression)是Django ORM提供的特殊查询表达式,用于直接在数据库层面引用模型字段值并进行操作。通过F对象,您可以:访问数据库字段值而无需加载到Python内存 执行字段间比…

如何计算一台服务器最大TCP连接数

在分布式系统和高并发场景中,服务器能支撑的TCP连接数直接决定了系统的承载能力。理解TCP连接的本质 每个tcp连接由四元组唯一标识:源ip地址 源端口 目标ip地址 目标端口对于服务器来说: 客户端ip可变 ------》 …

回退背包

回退背包问题(线段树分治): \(Content\): 给定\(n\)个物品,编号为\(i\)的物品有质量\(w_i\)和价值\(v_i\)以及一个体积\(V\)。初始时背包没有可选物体。 有\(m\)次操作,对于每次操作,给出一个整数\(op\)和\(x\)…

module jdk.compiler does not “以” com.sun.tools.javac.processing” to unnamed module

处理“module jdk.compiler does not “以” com.sun.tools.javac.processing” to unnamed module”错误的终极指南开发过程中遇到这个讨厌的错误,让你抓耳挠腮吗?别担心,你并不孤单。这个错误往往源于JDK项目版本…

nginx 响应html内容

设置ng返回的信息在页面显示 ngx.header.content_type = text/html; charset=utf-8 ngx.say("抱歉,您没有权限查看该监控! 如需开通权限,联系丁培倡/郑浩生添加") ngx.status = 403 ngx.exit(403)

Why cant Google appear in New York?

it just maybe is like Tencent can not appear in Bei Jing.

Django Q对象查询完全指南

引言:为什么需要Q对象 在Django中,当进行数据库查询时,我们通常使用filter()、exclude()等方法。但随着查询条件愈发复杂,尤其是需要组合逻辑或(OR)、逻辑非(NOT) 操作时,简单的过滤器链式调用会显得力不从心: #…

[AGC001E] BBQ Hard 分析

题目概述 给出 \(n\) 个 \(a_i,b_i\),其中 \(a_i\) 代表 \(0\) 的个数,\(b_i\) 代表 \(1\) 的个数,让你求对于所有的 \((i,j)(i<j)\) 这些 \(0,1\) 组合起来的本质不同的个数之和。 分析 思维好题! 首先我们不难…

logicFlow ,画布节点自定义

class CustomRectNode extends RectNode {/*** @description 重写此方法,自定义节点形状。* @returns VNode*/getShape() {const { model } = this.propsconst { x, y, width, height, radius } = modelconst style =…

哈希从入门到入土『给学弟学妹们讲课用的』

哈希是什么? 哈希本质就是一种映射,-

20232303 2025-2026-1 《网络与系统攻防技术》实验五实验报告

20232303 2025-2026-1 《网络与系统攻防技术》实验五实验报告

学校真好!

致敬《学校真是太棒了》。%%%%%%%%%%%%%%你们学校会在宿舍屎漫金山吗? 谁在宿舍写屎山? 我们高一尚慧楼会!西湖的水 我的泪 我情愿和你化作一团火焰Recently,尚慧楼一楼西侧的厕所蓄水池正式开启了回馈老玩家福利!…

NOIP2025模拟9

T1:卡门(kamen) 思路: 模拟。 据说可以用线段树和分块,但是咱还是选择最朴素的叽里呱啦一大坨子的预处理方式。 可以发现 \(c\) 极小,所以我们可以预处理出从第 \(x\) 列丢下去的石头能掉到的位置。 但是这里的部…

.net 8+, 类库无法引用 WebApplication 的解决方案

WebApplication 在 Microsoft.AspNetCore.Builder 下; 但是 nuget 上的 Microsoft.AspNetCore 只有 2.3 版本,导致无法在这个包中找到可用的 WebApplication 。 解决方法一:直接引用本地环境中的程序集 nuget 上有个…

2025-11-16

Problem - 1924A - Codeforces(构造) 要判断s字符串是否满足是所有前k个字符的子数组 则需要把s分段,每一段都包含前k个字符 如果段数>=n长度,即满足 否则,找最后一段不满足的字符 构造一个不满足的字符串 #in…

iOS移动端H5键盘弹出时页面布局异常和滚动解决方案 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …