首批通过分布式安全可靠测评,为关键业务系统打造
MySQL 模式下的权限分类
更新时间:2026-06-26 11:49:23
本文主要介绍 OceanBase 数据库 MySQL 模式下的权限分类。
分类
MySQL 模式的权限分为了 3 个级别:
- 全局权限:可以影响整个租户的权限,例如:修改系统设置、访问所有的表等权限。
- 数据库权限:可以影响某个特定数据库下所有对象的权限,例如:在对应数据库下创建删除表,访问表等权限。
- 对象权限:可以影响某个特定对象的权限,例如:访问一个特定的表、视图或索引的权限。
当前 OceanBase 数据库中 MySQL 模式相关的权限列表如下表所示。
| 权限类别 | 权限 | 描述 |
|---|---|---|
| 对象权限 | CREATE | 确定用户是否可以执行 CREATE TABLE 语句。 |
| 对象权限 | SELECT | 确定用户是否可以查询表中所有列或指定列的数据。 |
| 对象权限 | INSERT | 确定用户是否可以在表中的所有列或指定列中插入数据。 |
| 对象权限 | UPDATE | 确定用户是否可以更新表中所有列或指定列的数据。 |
| 对象权限 | DELETE | 确定用户是否可以删除现有数据。 |
| 对象权限 | DROP | 确定用户是否可以执行 DROP TABLE、DROP VIEW 等语句。 |
| 对象权限 | INDEX | 确定用户是否可以创建和删除表索引。 |
| 对象权限 | ALTER | 确定用户是否可以执行 RENAME TABLE、ALTER TABLE 等语句。 |
| 对象权限 | CREATE VIEW | 确定用户是否可以创建视图。 |
| 对象权限 | SHOW VIEW | 确定用户是否可以查看视图或了解视图如何执行。 |
| 对象权限 | REFERENCES | 确定用户是否可以创建外键。为表创建外键时,需要有父表的 REFERENCES 权限。 |
| 对象权限 | TRIGGER | 确定用户是否可以激活触发器操作的权限。创建、查看、删除触发器时需要该权限。 |
| 数据库权限 | SELECT | 确定用户是否可以查询表中的数据。 |
| 数据库权限 | INSERT | 确定用户是否可以在表中插入行数据。 |
| 数据库权限 | UPDATE | 确定用户是否可以修改现有数据。 |
| 数据库权限 | DELETE | 确定用户是否可以删除现有数据。 |
| 数据库权限 | CREATE | 确定用户是否可以执行 CREATE DATABASE、CREATE TABLE、CREATE SEQUENCE、CREATE OUTLINE 等语句。 |
| 数据库权限 | DROP | 确定用户是否可以执行 DROP DATABASE、DROP TABLE、DROP VIEW、DROP SEQUENCE、DROP OUTLINE 等语句。 |
| 数据库权限 | INDEX | 确定用户是否可以创建和删除表索引。 |
| 数据库权限 | ALTER | 确定用户是否可以执行 ALTER DATABASE、RENAME TABLE、ALTER TABLE、ALTER SEQUENCE、ALTER OUTLINE 等语句。 |
| 数据库权限 | CREATE VIEW | 确定用户是否可以创建视图。 |
| 数据库权限 | SHOW VIEW | 确定用户是否可以查看视图或了解视图如何执行。 |
| 数据库权限 | CREATE ROUTINE | 确定用户是否可以创建 Procedure 和 Function。 |
| 数据库权限 | ALTER ROUTINE | 确定用户是否可以修改或删除 Procedure 和 Function。 |
| 数据库权限 | EXECUTE | 确定用户是否可以执行 Procedure 和 Function。 |
| 数据库权限 | REFERENCES | 确定用户是否可以创建外键。 |
| 数据库权限 | TRIGGER | 确定用户是否可以激活触发器操作的权限。创建、查看、删除触发器时需要该权限。 |
| 全局权限 | CREATE | 确定用户是否可以执行 CREATE DATABASE、CREATE TABLEGROUP、CREATE TABLE、CREATE SEQUENCE、CREATE OUTLINE 等语句。 |
| 全局权限 | ALTER | 确定用户是否可以执行 ALTER DATABASE、ALTER TABLEGROUP、RENAME TABLE、ALTER TABLE、ALTER SEQUENCE、ALTER OUTLINE 等语句。 |
| 全局权限 | SELECT | 确定用户是否可以查询表中的数据。 |
| 全局权限 | INSERT | 确定用户是否可以在表中插入行数据。 |
| 全局权限 | UPDATE | 确定用户是否可以修改现有数据。 |
| 全局权限 | DELETE | 确定用户是否可以删除现有数据。 |
| 全局权限 | DROP | 确定用户是否可以执行 DROP DATABASE、DROP TABLEGROUP、DROP TABLE、DROP VIEW、DROP SEQUENCE、DROP OUTLINE 等语句。 |
| 全局权限 | INDEX | 确定用户是否可以创建和删除表索引。 |
| 全局权限 | CREATE VIEW | 确定用户是否可以创建视图。 |
| 全局权限 | SHOW VIEW | 确定用户是否可以查看视图或了解视图如何执行。 |
| 全局权限 | REFERENCES | 确定用户是否可以创建外键。 |
| 全局权限 | ALTER TENANT | 修改租户信息的权限。 |
| 全局权限 | ALTER SYSTEM | 执行 ALTER SYSTEM 命令的权限。 |
| 全局权限 | CREATE RESOURCE POOL | 创建、修改和删除资源池的权限。 |
| 全局权限 | CREATE RESOURCE UNIT | 创建、修改和删除资源单元的权限。 |
| 全局权限 | CREATE DATABASE LINK | 创建数据库链接的权限。 |
| 全局权限 | DROP DATABASE LINK | 删除数据库链接的权限。 |
| 全局权限 | CREATE USER | 确定用户是否可以执行 CREATE USER、ALTER USER、DROP USER、CREATE ROLE、DROP ROLE 等语句。 |
| 全局权限 | CREATE ROUTINE | 确定用户是否可以创建 Procedure 和 Function。 |
| 全局权限 | ALTER ROUTINE | 确定用户是否可以修改或删除 Procedure 和 Function。 |
| 全局权限 | CREATE TABLESPACE | 确定用户是否可以执行 CREATE TABLESPACE、ALTER TABLESPACE、DROP TABLESPACE 等语句。 |
| 全局权限 | CREATE ROLE | 确定用户是否可以执行 CREATE ROLE 语句。 |
| 全局权限 | DROP ROLE | 确定用户是否可以执行 DROP ROLE 语句。 |
| 全局权限 | EXECUTE | 确定用户是否可以执行 Procedure 和 Function。 |
| 全局权限 | PROCESS | 确定用户是否可以通过 SHOW PROCESSLIST 命令查看其他用户的进程。 |
| 全局权限 | TRIGGER | 确定用户是否可以激活触发器操作的权限。创建、查看、删除触发器时需要该权限。 |
| 全局权限 | SHOW DB | 确定用户是否可以查看服务器上所有数据库的名字,包括用户拥有足够访问权限的数据库。 |
| 全局权限 | SHUTDOWN | 确定用户是否可以执行 mysqladmin shutdown 命令的权限。
说明支持通过 |
| 全局权限 | RELOAD | 确定用户是否可以执行 Flush 操作的权限。
说明支持通过 |
| 全局权限 | FILE | 确定用户是否可以执行 SELECT INTO OUTFILE 和 LOAD DATA INFILE 命令。 |
| 全局权限 | SUPER | 确定用户是否可以执行某些强大的管理功能,例如通过 KILL 命令删除用户进程,使用 SET GLOBAL 修改全局 MySQL 变量,执行关于复制和日志的各种命令。 |
| 全局权限 | GRANT OPTION | 允许用户将他们所拥有的权限授予其他用户,通常与其他权限(如 SELECT、INSERT、UPDATE 等)一起使用。 |
| 全局权限 | ALL PRIVILEGES | 表示用户拥有数据库中的所有可用权限(除了 GRANT OPTION/ENCRYPT/DECRYPT 之外)。 |
| 全局权限 | ENCRYPT | 确定用户是否可以调用 ENHANCED_AES_ENCRYPT 函数。仅当用户同时具有 ENCRYPT 权限,以及相应的 DML 权限时,才能在 DML 语句中使用上述加密函数。GRANT/REVOKE ALL PRIVILEGES 不包含该权限。此权限从 V4.3.5 BP1 开始支持。 |
| 全局权限 | DECRYPT | 确定用户是否可以调用 ENHANCED_AES_DECRYPT 函数。仅当用户同时具有 DECRYPT 权限,以及相应的 DML 权限时,才能在 DML 语句中使用上述解密函数。GRANT/REVOKE ALL PRIVILEGES 不包含该权限。此权限从 V4.3.5 BP1 开始支持。 |
| 全局权限 | PROXY | 允许一个用户以另一个用户的身份进行连接和操作,例如,在不共享密码的情况下允许用户 A 可以授予用户 B 以用户 A 的身份连接和操作的权限,使用场景例如应用程序需要使用不同权限级别的账户、实现用户权限委派等。此权限从 V4.3.5 BP1 开始支持。 |
| 全局权限 | CREATE LOCATION
说明对于 OceanBase 数据库 V4.4.x 版本,从 V4.4.1 版本开始引入 |
确定用户是否可以执行 CREATE LOCATION、ALTER LOCATION、DROP LOCATION 语句。 |
| 数据目录级权限 | CREATE CATALOG | 确定用户是否可以执行 CREATE EXTERNAL CATALOG、DROP CATALOG 语句。 |
| 数据目录级权限 | USE CATALOG | 确定用户是否可以执行 SET CATALOG、SHOW CATALOGS、SHOW CREATE CATALOG、SELECT FROM CATALOG 语句。 |
| 对象权限 | CREATE AI MODEL | 确定用户是否可以调用 DBMS_AI_SERVICE 系统包程序中的 CREATE_AI_MODEL 和 CREATE_AI_MODEL_ENDPOINT 程序。 |
| 对象权限 | ALTER AI MODEL | 确定用户是否可以调用 DBMS_AI_SERVICE 系统包程序中的 ALTER_AI_MODEL_ENDPOINT 程序。 |
| 对象权限 | DROP AI MODEL | 确定用户是否可以调用 DBMS_AI_SERVICE 系统包程序中的 DROP_AI_MODEL 和 DROP_AI_MODEL_ENDPOINT 程序。 |
| 对象权限 | ACCESS AI MODEL | 确定用户是否可以调用 AI_COMPLETE、AI_EMBED、AI_RERANK 等 AI 函数。 |
| 全局权限 | CREATE SENSITIVE RULE | 确定用户是否可以执行 CREATE/DROP SENSITIVE RULE 语句。root 用户默认拥有该权限,且不能被 REVOKE。创建新集群或升级后也会自动获得该权限。 |
| 全局权限 | PLAINACCESS | 确定用户是否可以访问所有明文数据,包括敏感数据,不受敏感规则限制。GRANT/REVOKE ALL PRIVILEGES 不包含该权限。root 用户默认拥有该权限,且不能被 REVOKE。创建新集群或升级后也会自动获得该权限。 |
| 规则级权限 | PLAINACCESS | 确定用户是否可以访问某条规则所关联的列上的明文数据。创建规则的用户不会自动拥有这条规则的 PLAINACCESS 权限,需要单独授权。 |