首批通过分布式安全可靠测评,为关键业务系统打造
MySQL 模式下的权限分类
更新时间:2024-12-30 23:00:00
本文主要介绍 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 变量,执行关于复制和日志的各种命令。 |