MySQL——数据库的高级操作(三)权限管理(1)MySQL 的权限

在 MySQL数据库中,为了保证数据的安全性,数据管理员需要为每个用户赋予不同的权限,以满足不同用户的需求。

MySQL中的权限信息被存储在 MySQL 数据库的 user、db、host、tables_priv、column_priv 和 procs_priv 表中,当 MySQL启动时会自动加载这些权限信息,并将这些权限信息读取到内存中。

接下来通过图表列举一下 MySQL的相关权限以及在 user表中对应的列和权限范围。

|------------------------|-------------------------|------------|
| user 表的权限列 | 权 限 名 称 | 权 限 范 围 |
| Create_priv | CREATE | 数据库、表、索引 |
| Drop_priv | DROP | 数据库、表、视图 |
| Grant_priv | GRANT OPTION | 数据库、表、存储过程 |
| References_priv | REFERENCES | 数据库、表 |
| Event_priv | EVENT | 数据库 |
| Alter_priv | ALTER | 数据库 |
| Delete_priv | DELETE | 表 |
| Insert_priv | INSERT | 表 |
| Index_priv | INDEX | 表 |
| Select_priv | SELECT | 表、列 |
| Update_priv | UPDATE | 表、列 |
| Create_temp_table_priv | CREATE TEMPORARY TABLES | 表 |
| Lock_tables_priv | LOCK TABLES | 表 |
| Trigger_priv | TRIGGER | 表 |
| Create_view_priv | CREATE VIEW | 视图 |
| Show_view_priv | SHOW VIEW | 视图 |
| Alter_routine_priv | ALTER ROUTINE | 存储过程、函数 |
| Create_routine_priv | CREATE ROUTINE | 存储过程、函数 |
| Execute_priv | EXECUTE | 存储过程、函数 |
| File_priv | FILE | 范围服务器上的文件 |
| Create tablespace_priv | CREATE TABLESPACE | 服务器管理 |
| Create_user_priv | CREATE USER | 服务器管理 |
| Process_priv | PROCESS | 存储过程和函数 |
| Reload priv | RELOAD | 范围服务器上的文件 |
| Repl_client_priv | REPLICATION CLIENT | 服务器管理 |
| Repl_slave_priv | REPLICATION SLAVE | 服务器管理 |
| Show_db_priv | SHOW DATABASES | 服务器管理 |
| Shutdown_priv | SHUTDOWN | 服务器管理 |
| Super_priv | SUPER | 服务器管理 |

上表对 MySQL 的权限以及权限的范围进行了介绍,对于初学者来说可能无法理解,接下来针对表中部分权限进行分析,具体如下。

(1)CREATE 和 DROP 权限,可以创建数据库、表、索引,或者删除已有的数据库表、索引。

(2)INSERT、DELETE、UPDATE、SELECT 权限,可以对数据库中的表进行增删改查操作。

(3)INDEX权限,可以创建或删除索引,适用于所有的表。

(4)ALTER 权限,可以用于修改表的结构或重命名表。

(5)GRANT 权限,允许为其他用户授权,可用于数据库和表。

(6)FILE 权限,被赋予该权限的用户能读写 MySQL服务器上的任何文件。

上述这些权限只要了解即可,无须特殊记忆。

相关推荐
武子康5 小时前
Java-109 深入浅出 MySQL MHA主从故障切换机制详解 高可用终极方案
java·数据库·后端·mysql·性能优化·架构·系统架构
专注API从业者7 小时前
基于 Node.js 的淘宝 API 接口开发:快速构建异步数据采集服务
大数据·前端·数据库·数据挖掘·node.js
前端无冕之王7 小时前
一份兼容多端的HTML邮件模板实践与详解
前端·css·数据库·html
这周也會开心7 小时前
SQL-重要常见关键字
数据库·sql
超级无敌永恒暴龙战士8 小时前
MySQL-delete tableName from ...
数据库·mysql
叫我阿柒啊8 小时前
Java全栈开发工程师的面试实战:从基础到微服务
java·数据库·spring boot·微服务·node.js·vue3·全栈开发
2301_7736386310 小时前
Kubernetes部署MySQL主从复制
mysql·容器·kubernetes
郭俊强12 小时前
nestjs 连接redis
数据库·redis·缓存
海边捡石子12 小时前
postgress数据迁移gaussdb注意事项
数据库
小猿姐12 小时前
KubeBlocks For MySQL 云原生设计分享
mysql·云原生·架构