MySQL系列之数据授权(安全)

导览

前言

看过博主上一篇的盆友,可以Get到一个知识点:数据授权 (eg:grant xx to yy)。对了,数据这么敏感,必须遵循"分而治之,最小认领"的原则。在这个大数据盛行的时代,数据显然成为人类的第N个生产资料,没有它,好像我们"站得不太高,看得不够清,听得不够远"。所以如何管理它,越来越重要了。

今天博主继续大话MySQL,助你了解它是如何完成授权的。Let's Go~

Q:如何对MySQL数据库进行授权管理

提示:本文示例均已MySQL5.7为例。

一、MySQL的"特权"

在学习如何授权前,咱们先来看看MySQL有哪些"可授之权"

1. 权限级别

级别

说明

全局

授予最高管理权限。

数据库

授予数据库及其内的所有对象的权限。

数据库对象

授予数据库对象(如表、索引、视图和存储例程)的权限。

2. 权限清单

为进一步说明MySQL可以提供的特权,博主提供一个官方的列表:

权限

授权列表

作用域

ALL PRIVILEGES

Synonym for "all privileges"

Server administration

ALTER

Alter_priv

Tables

ALTER ROUTINE

Alter_routine_priv

Stored routines

CREATE

Create_priv

Databases, tables, or indexes

CREATE ROUTINE

Create_routine_priv

Stored routines

CREATE TABLESPACE

Create_tablespace_priv

Server administration

CREATE TEMPORARY TABLES

Create_tmp_table_priv

Tables

CREATE USER

Create_user_priv

Server administration

CREATE VIEW

Create_view_priv

Views

DELETE

Delete_priv

Tables

DROP

Drop_priv

Databases, tables, or views

EVENT

Event_priv

Databases

EXECUTE

Execute_priv

Stored routines

FILE

File_priv

File access on server host

GRANT OPTION

Grant_priv

Databases, tables, or stored routines

INDEX

Index_priv

Tables

INSERT

Insert_priv

Tables or columns

LOCK TABLES

Lock_tables_priv

Databases

PROCESS

Process_priv

Server administration

PROXY

See proxies_priv table

Server administration

REFERENCES

References_priv

Databases or tables

RELOAD

Reload_priv

Server administration

REPLICATION CLIENT

Repl_client_priv

Server administration

REPLICATION SLAVE

Repl_slave_priv

Server administration

SELECT

Select_priv

Tables or columns

SHOW DATABASES

Show_db_priv

Server administration

SHOW VIEW

Show_view_priv

Views

SHUTDOWN

Shutdown_priv

Server administration

SUPER

Super_priv

Server administration

TRIGGER

Trigger_priv

Tables

UPDATE

Update_priv

Tables or columns

USAGE

Synonym for "no privileges"

Server administration

针对每个授权项,我们可以参考官方指导文档进行学习,直接跳转这里,进行查阅。

二、授权操作

了解了以上的"特权"后,我们可以自由支配它们,分配给适合的人。

1. 查看权限

比如你想查看指定用户(user)的权限,可以通过以下语句完成:

复制代码
SHOW GRANTS FOR [USER]@[HOST];

查看用户的非特权属性,可通过以下语句完成:

复制代码
SHOW CREATE USER [USER]@[HOST];

2. 分配权限

分配权限,统一使用以下语句完成:

复制代码
grant xx privileges on [DB_NAME].[TABLE_NAME] to [USER]@[HOST] identified by [PASSWORD] with grant option;

这里博主有必要对这个语句,做一个特别介绍:

  • grant xx privileges
    授权的范围,比如all、select、create等。
  • on [DB_NAME].[TABLE_NAME]
    授权的对象,比如哪个库,哪个表。
  • to [USER]@[HOST]
    授权的用户访问控制,比如test用户通过127.0.0.1访问数据库。
  • identified by [PASSWORD]
    授权的用户访问密码。

3. 回收权限

既然有分配,那么就有回收。回收应该怎么操作,可通过以下语句完成:

复制代码
revoke xx privileges on [DB_NAME].[TABLE_NAME] from [USER]@[HOST];

这里博主对这个语句,同样做一个特别介绍:

  • revoke xx privileges
    撤销/回收授权的范围,比如all、select、create等。
  • on [DB_NAME].[TABLE_NAME]
    撤销/回收的对象,比如哪个库,哪个表。
  • from [USER]@[HOST]
    撤销/回收的用户访问控制,比如test用户通过127.0.0.1访问数据库。

结语

本文对MySQL的权限操作进行了一定的介绍。希望可对有需要的盆友提供一定的帮助。

走过的、路过的盆友们,点点赞,收收藏,并加以指导,以备不时之需哈~


精彩回放


MySQL系列之如何在Linux只安装客户端
MySQL系列之如何正确的使用窗口函数(基于8.0版本)
MySQL系列之数据导入导出
MySQL系列之索引入门(上)
MySQL系列之索引入门(下)


相关推荐
Dovis(誓平步青云)40 分钟前
从Redis指标采集到异常告警:redis_exporter + Prometheus 完整实战
服务器·数据库·人工智能·redis·架构·prometheus·vibe coding
城管不管8 小时前
重生——第十一次面试之挖财一面2026.8.19已OC
java·服务器·jvm·数据库·spring·面试·职场和发展
倔强的石头1068 小时前
向量数据库从相似度检索走向融合数据底座
数据库
Esaka_Forever9 小时前
Skills安全要点总结
安全·llm
今天AI了吗10 小时前
Python 基础语法(一):常量、变量、输入输出与运算符
开发语言·数据库·人工智能·python·sql·深度学习·机器学习
夜雪一千11 小时前
MySQL 全局锁是什么?原理、风险、备份踩坑完整实战
android·mysql·adb
lilian23311 小时前
Harmony os 技术实战|拼豆制图27:用单字符编码承载 50 张 70×70 图纸
前端·数据库·华为·harmonyos
一只鹿鹿鹿11 小时前
大数据中心安全系统解决方案(Word文件)
大数据·运维·物联网·安全·政务
皮卡丘不断更11 小时前
手机优先的 Personal Ledger:把账目、学习和复盘放到同一个入口
数据库·sqlite·fastapi·开源项目·个人效率
Fnetlink112 小时前
开源安全年度报告:2026上半年20大最具破坏性破坏事件深度复盘
安全·开源