注:本文由大模型根据官方手册整理,官网链接如下:
https://dev.mysql.com/doc/refman/5.7/en/privileges-provided.html
在整理MySQL 5.7官方文档中关于提供的权限(Privileges Provided)的内容时,我们可以将权限大致分为几个主要类别,并列出每个类别下的关键权限。请注意,由于文档内容较为丰富,以下是一个简化的整理版本:
全局权限(Global Privileges)
全局权限适用于整个MySQL服务器实例,影响所有数据库。
- ALTER ROUTINE:修改或删除存储的函数或过程。
- ALTER SERVER:更改服务器的定义(仅适用于MySQL服务器作为复制从服务器或组复制成员时)。
- ALTER SYSTEM VARIABLES:更改全局系统变量的值(需要SUPER权限)。
- ALTER USER:更改用户账户的属性。
- BINLOG ADMIN:授予查看二进制日志内容的能力(需SUPER权限)。
- CREATE:创建新的数据库和表。
- CREATE ROLE:创建新的角色。
- CREATE ROUTINE:创建存储的函数或过程。
- CREATE TEMPORARY TABLES:创建临时表。
- CREATE USER:创建新的用户账户。
- CREATE VIEW:创建视图。
- DELETE:删除表中的行(需要有对应表的DELETE权限)。
- DROP:删除数据库、表、视图、索引等。
- EVENT:创建、修改、删除事件(调度器任务)。
- EXECUTE:执行存储的函数或过程。
- FILE:在MySQL服务器上读写文件。
- GRANT OPTION:授予或移除其他用户的权限。
- INDEX:创建或删除索引。
- INSERT:向表中插入行。
- LOCK TABLES:显式锁定表。
- PROCESS:显示或杀死属于其他用户的服务线程。
- PROXY:允许用户通过代理用户执行操作。
- REFERENCES:在创建外键时引用表或列(CREATE TABLE时需要)。
- RELOAD:重载授权表或刷新日志、缓存等。
- REPLICATION CLIENT:查询主/从服务器状态。
- REPLICATION SLAVE:用于复制从服务器(读取二进制日志事件)。
- SHOW DATABASES:列出所有数据库。
- SHUTDOWN:关闭MySQL服务器。
- SUPER:执行各种高级操作,如设置全局变量、更改密码等。
- TRIGGER:创建或删除触发器。
- UPDATE:修改表中的行。
- USAGE:无权限,仅用于创建用户。
数据库级别权限(Database-Level Privileges)
这些权限影响特定数据库中的所有对象。
- ALTER:修改数据库中的表。
- CREATE:在数据库中创建新表或索引。
- DROP:删除数据库中的表或索引。
- GRANT OPTION:在该数据库级别上授予或移除权限。
- INDEX:创建或删除索引。
- LOCK TABLES:在该数据库上锁定表。
- REFERENCES:在创建外键时引用数据库中的表或列。
- SELECT:读取数据库中的表。
- TRIGGER:创建或删除触发器。
表级别权限(Table-Level Privileges)
这些权限影响特定表。
- ALTER:修改表结构(如添加/删除列)。
- CREATE:通常与视图相关,创建视图。
- DELETE:从表中删除行。
- DROP:删除表或视图。
- GRANT OPTION:在表级别上授予或移除权限。
- INDEX:创建或删除索引。
- INSERT:向表中插入行。
- LOCK TABLES:锁定表。
- REFERENCES:允许创建指向该表的外键。
- SELECT:从表中读取数据。
- TRIGGER:创建或删除触发器。
- UPDATE:修改表中的行。
列级别权限(Column-Level Privileges)
这些权限影响表中特定的列。
- SELECT:读取列的值。
- INSERT:向列中插入值。
- UPDATE:修改列中的值。
- REFERENCES:允许创建指向该列的外键(较少使用)。
路由和存储过程权限
- EXECUTE:执行存储的函数或过程。
- ALTER ROUTINE:修改或删除存储的函数或过程。
- CREATE ROUTINE:创建存储的函数或过程。
请注意,上述列表并不详尽,MySQL 5.7可能还提供了其他权限,且某些权限的可用性和行为可能因MySQL的具体版本和配置而异。建议查阅最新的官方文档以获取最准确的信息。