当前位置: 首页 > news >正文

OceanBase用户和权限管理

OceanBase用户和权限管理

  • 系统租户
  • MySQL租户
    • 用户类型
    • 用户权限
  • Oracle租户
    • 用户类型
    • 用户权限

OceanBase数据库中的用户分为两类:系统租户下的用户和用户租户下的用户。用户租户又分为Oracle模式租户和MySQL模式租户。

系统租户

系统租户的用户主要包括集群管理员和普通用户。

OceanBase数据库的集群管理员为安装OceanBase数据库时自动创建,其主要负责本集群内数据库的安装和升级、租户的创建、资源的分配、数据的导入导出,以及集群中数据的备份和恢复等。

OceanBase的系统租户(SYS)为MySQL兼容模式。系统租户有一个内置的集群管理员用户root

系统租户的集群管理员创建的用户即为系统租户下的普通用户。系统租户下的普通用户主要负责集群内租户的创建、资源的分配、访问权限的自主分配等。

MySQL租户

用户类型

MySQL租户下的用户主要包括租户管理员和普通用户。

  • OceanBase数据库的MySQL租户有一个内置用户root作为租户管理员。OceanBase数据库的租户管理员主要负责本租户内数据库参数的配置、数据库对象的创建、访问权限的分配等。

  • 普通用户主要进行数据库对象的访问和操作,故必须拥有本租户对应数据库对象的访问和操作权限。

MySQL租户下创建用户的SQL如下:

CREATE USER 'test2' IDENTIFIED BY '**1***';

用户权限

MySQL租户下的用户权限可以分为以下三类:

  • 用户级权限:用户级权限是全局的权限,不是针对某个指定的数据库。
  • 数据库级权限:数据库级权限适用于数据库及其中的所有对象。
  • 对象权限:对象权限适用于所有数据库中指定类型的对象。这些权限可以授予数据库中指定的对象、数据库中指定类型的所有对象(例如,数据库中的所有表)或全局授予所有数据库对象(例如表、索引、视图)的权限。

⭐️ 用户级权限包括:

  • CREATE:确定用户是否可以创建数据库和表。
  • ALTER:确定用户是否可以重命名和修改表结构。
  • SELECT:确定用户是否可以查询表中的数据。
  • INSERT:确定用户是否可以在表中插入行数据。
  • UPDATE:确定用户是否可以修改现有数据。
  • DELETE:确定用户是否可以删除现有数据。
  • DROP:确定用户是否可以删除现有数据库、表和视图。
  • INDEX:确定用户是否可以创建和删除表索引。
  • CREATE VIEW:确定用户是否可以创建视图。
  • SHOW VIEW:确定用户是否可以查看视图或了解视图如何执行。
  • ALTER TENANT:修改租户信息的权限。
  • ALTER SYSTEM:执行ALTER SYSTEM命令的权限。
  • CREATE RESOURCE POOL:创建、修改和删除资源池的权限。
  • CREATE RESOURCE UNIT:创建、修改和删除资源单元的权限。
  • CREATE USER:确定用户是否可以执行CREATE USER命令创建新的MySQL账号。
  • PROCESS:确定用户是否可以通过SHOW PROCESSLIST命令查看其他用户的进程。
  • SHOW DB:确定用户是否可以查看服务器上所有数据库的名字,包括用户拥有足够访问权限的数据库。
  • FILE:确定用户是否可以执行SELECT INTO OUTFILELOAD DATA INFILE命令。
  • sSUPER:确定用户是否可以执行某些强大的管理功能,例如通过KILL命令删除用户进程,使用SET GLOBAL修改全局MySQL变量,执行关于复制和日志的各种命令。

⭐️ 数据库级权限包括:

  • SELECT:确定用户是否可以查询表中的数据。
  • INSERT:确定用户是否可以在表中插入行数据。
  • UPDATE:确定用户是否可以修改现有数据。
  • DELETE:确定用户是否可以删除现有数据。
  • CREATE:确定用户是否可以创建数据库和表。
  • DROP:确定用户是否可以删除现有数据库、表和视图。
  • INDEX:确定用户是否可以创建和删除表索引。
  • ALTER:确定用户是否可以重命名和修改表结构。
  • CREATE VIEW:确定用户是否可以创建视图。
  • SHOW VIEW:确定用户是否可以查看视图或了解视图如何执行。

⭐️ 对象权限包括:

  • SELECT:确定用户是否可以查询表中的数据。
  • INSERT:确定用户是否可以在表中插入行数据。
  • UPDATE:确定用户是否可以修改现有数据。
  • DELETE:确定用户是否可以删除现有数据。
  • CREATE:确定用户是否可以创建数据库和表。
  • DROP:确定用户是否可以删除现有数据库、表和视图。
  • INDEX:确定用户是否可以创建和删除表索引。
  • ALTER:确定用户是否可以重命名和修改表结构。
  • CREATE VIEW:确定用户是否可以创建视图。
  • SHOW VIEW:确定用户是否可以查看视图或了解视图如何执行。

MySQL租户下用户授权的示例如下:

--授予用户级权限
GRANT ALL ON *.* TO test;
GRANT SELECT, INSERT ON *.* TO test;--授予数据库级权限
GRANT ALL ON db1.* TO test;
GRANT SELECT, INSERT ON db1.* TO test;--授予表级权限
GRANT SELECT, INSERT ON db1.tb1_name TO test; 
GRANT ALL ON db1.tb1_name TO test;

撤销权限使用REVOKE ... FROM语句。

Oracle租户

用户类型

Oracle租户下的用户可以分为租户管理员、数据库安全管理员、数据库审计员、以及普通用户。

  • Oracle租户有一个内置用户SYS作为租户管理员。OceanBase数据库的租户管理员主要负责本租户内数据库参数的配置、数据库对象的创建以及访问权限的自主分配等。

  • OceanBase数据库部署完成后,系统中内置了一个用户LBACSYS作为该租户的数据库安全管理员。Oracle租户的数据库安全管理员主要负责本租户内配置数据库的审计设置、定义新的数据库审计员、查看数据库的审计记录,以及设置系统的安全等级、范围和组,并为主体、客体定义安全标记,从而全面提升系统安全性。

  • OceanBase数据库部署完成后,系统中内置了一个用户ORAAUDITOR作为数据库审计员。Oracle租户的数据库审计员主要负责对本租户内系统进行强制访问控制、设置需要审计的对象和操作、定义新的数据库审计员、查看和分析审计记录,以及设置系统的策略和标记。

  • 普通用户主要进行数据库对象的访问和操作,故必须拥有本租户对应数据库对象的访问和操作权限。

Oracle租户下创建用户的SQL如下:

CREATE USER test2 IDENTIFIED BY **1***;

用户权限

Oracle 模式的权限主要有以下三类:

  • 系统权限:系统权限允许用户在数据库中执行标准的管理员任务,如果需要对Schema对象执行操作,就必须对其授予适当的系统权限。系统权限非常强大,建议仅授予受信任的用户使用。
  • 对象权限:对象权限允许用户对指定对象执行特定的操作。
  • 角色权限:在Oracle模式中,角色是一组系统权限和对象权限的组合。
    • 角色可以被授予系统权限或对象权限。
    • 角色可以被授予其他角色,即角色中可以包含其他角色。
    • 一个用户可以被授予多个角色,一个角色也可以赋予多个用户。

⭐️ 系统权限包括:

  • CREATE SESSION:创建会话的权限。

  • CREATE TABLE:创建表的权限。

  • CREATE ANY TABLE:创建任意表的权限。

  • ALTER ANY TABLE:修改任意表的权限。

  • INSERT ANY TABLE:向任意表中插入行的权限。

  • SELECT ANY TABLE:使用任意表的权限。

  • UPDATE ANY TABLE:修改任意表中的行的权限。

  • DELETE ANY TABLE:删除任意表数据的权限。

  • DROP ANY TABLE:删除任意表的权限。

  • BACKUP ANY TABLE:备份任意表的权限。

  • LOCK ANY TABLE:给任意表加锁的权限。

  • COMMENT ANY TABLE:为任意表添加注释的权限。

  • FLASHBACK ANY TABLE:闪回任意表的权限。

  • CREATE ANY INDEX:创建任意索引的权限。

  • ALTER ANY INDEX:修改任意索引的权限。

  • DROP ANY INDEX:删除任意索引的权限。

  • CREATE VIEW:创建视图的权限。

  • CREATE ANY VIEW:创建任意视图的权限。

  • DROP ANY VIEW:删除任意视图的权限。

  • SELECT ANY DICTIONARY:使用任意数据字典的权限。

  • CREATE PROCEDURE:为用户创建存储过程的权限。

  • CREATE ANY PROCEDURE:为用户创建任意存储过程的权限。

  • ALTER ANY PROCEDURE:修改任意存储过程的权限。

  • DROP ANY PROCEDURE:删除任意存储过程的权限。

  • EXECUTE ANY PROCEDURE:执行任意存储过程的权限。

  • CREATE SYNONYM:为用户创建同义词的权限。

  • CREATE ANY SYNONYM:为用户创建任意同义词的权限。

  • CREATE PUBLIC SYNONYM:创建公共同义词的权限。

  • DROP ANY SYNONYM:删除任意同义词的权限。

  • DROP PUBLIC SYNONYM:删除公共同义词的权限。

  • CREATE SEQUENCE:为用户创建序列的权限。

  • CREATE ANY SEQUENCE:创建任意序列的权限。

  • ALTER ANY SEQUENCE:修改任意序列的权限。

  • DROP ANY SEQUENCE:删除任意序列的权限。

  • SELECT ANY SEQUENCE:使用任意序列的权限。

  • CREATE TRIGGER:为用户创建触发器的权限。

  • CREATE ANY TRIGGER:为用户创建任意触发器的权限。

  • ALTER ANY TRIGGER:修改任意触发器的权限。

  • DROP ANY TRIGGER:删除任意触发器的权限。

  • CREATE TYPE:创建类型的权限。

  • CREATE ANY TYPE:创建任意类型的权限。

  • ALTER ANY TYPE:修改任意类型的权限。

  • DROP ANY TYPE:删除任意类型的权限。

  • EXECUTE ANY TYPE:执行任意类型的权限。

  • CREATE USER:创建用户的权限。

  • ALTER USER:修改用户的权限。

  • DROP USER:删除用户的权限。

  • BECOME USER:切换用户状态的权限。

  • CREATE PROFILE:创建资源限制简表的权限。

  • ALTER PROFILE:修改资源限制简表的权限。

  • DROP PROFILE:删除资源限制简表的权限。

  • CREATE TABLESPACE:创建表空间的权限。

  • ALTER TABLESPACE:修改表空间的权限。

  • DROP TABLESPACE:删除表空间的权限。

  • CREATE ROLE:创建角色的权限。

  • DROP ANY ROLE:删除任意角色的权限。

  • GRANT ANY ROLE:授予任意角色的权限。

  • ALTER ANY ROLE:修改任意角色的权限。

  • CREATE ANY OUTLINE:创建任意执行计划的权限。

  • ALTER ANY OUTLINE:修改任意执行计划的权限。

  • DROP ANY OUTLINE:删除任意执行计划的权限。

  • CREATE DATABASE LINK:创建数据库连接的权限。

  • CREATE PUBLIC DATABASE LINK:创建公共数据库连接的权限。

  • DROP DATABASE LINK:删除数据库连接的权限。

  • CREATE ANY DIRECTORY:创建任意目录的权限。

  • DROP ANY DIRECTORY:删除任意目录的权限。

  • SHOW PROCESS:查看所有用户线程的权限。

  • ALTER SYSTEM:修改服务器设置的权限。

  • ALTER SESSION:修改会话的权限。

  • ALTER DATABASE:修改数据库的权限。

  • DEBUG CONNECT SESSION:调试连接会话的权限。

  • DEBUG ANY PROCEDURE:调试任何程序的权限。

  • PURGE DBA_RECYCLEBIN:清除回收站的权限。

  • AUDIT ANY:为任意对象设置审计选项的权限。

  • GRANT ANY PRIVILEGE:授予用户任意系统权限的权限。

  • GRANT ANY OBJECT PRIVILEGE:授予用户任意对象权限的权限。

⭐️ 对象权限包括:

  • ALTER:修改表结构的权限。
  • INSERT:向表、视图中插入数据的权限。
  • UPDATE:修改表、视图中数据的权限。
  • DELETE:删除表、视图中数据的权限。
  • SELECT:使用表、视图、同义词、序列的权限。
  • INDEX:给表加索引的权限。
  • REFERENCE:参考/应用表的权限。
  • EXECUTE:执行存储过程、函数、系统包的权限。
  • READ:读权限。
  • WRITE:写权限。

⭐️ 在Oracle模式中,系统默认内置了一些角色:

  • CONNECT:拥有CREATE SESSION的系统权限。
  • RESOURCE:拥有CREATE TABLECREATE PROCEDURECREATE SEQUENCECREATE TRIGGER以及CREATE TYPE的系统权限。
  • PUBLIC:该角色适用于整个租户内的用户。默认未授予权限。
  • DBA:拥有所有的系统权限。

Oracle租户下用户授权的示例如下:

--授予系统权限
GRANT CREATE SEQUENCE TO test2;--授予对象权限
GRANT SELECT, UPDATE ON emp_view TO test2;--授予角色权限
GRANT CONNECT,RESOURCE TO test2;

撤销权限使用REVOKE ... FROM语句。

References
【1】https://www.oceanbase.com/docs/enterprise-oceanbase-database-cn-10000000000887411
【2】https://www.oceanbase.com/docs/enterprise-oceanbase-database-cn-10000000000887415

http://www.dtcms.com/a/393880.html

相关文章:

  • VMware Workstation Pro 虚拟机为 Ubuntu 18 配网教程
  • 城市自然资源资产离任审计试点DID
  • 算法日记---新动计划
  • Vue3水波纹指令:2025年Material Design交互新标准
  • Ansible-yum_repository模块
  • Java 单元测试(JUnit)与反射机制深度解析
  • Spring MVC 入门:构建 Web 应用的核心框架
  • C 语言核心关键字与数据结构:volatile、struct、union 详解
  • 【Elasticsearch面试精讲 Day 19】磁盘IO与存储优化
  • Linux信号机制详解
  • 【杂谈】-儿童友好型AI的未来之路
  • Docker+cpolar 实战:打造灵活可控的远程办公系统——容器化 RDP 远程桌面与多因子安全治理
  • docker远程主机启用TLS及其在JAVA工程的应用
  • docker 安装 Postgres 17.6
  • 【Linux命令从入门到精通系列指南】poweroff 命令详解:安全关机与强制断电实战指南
  • 【文件上传管理系统】实战详解 SpringBoot + Vue.js
  • 软考中级习题与解答——第八章_计算机网络(3)
  • 【每日一问】PFC电路有什么作用?
  • 智能制造设备健康管理案例:AIoT技术驱动的工业设备智能运维革命​
  • Rd-03_V2 雷达模块【上手使用指南】
  • PD 分离推理架构详解
  • 重庆蓝金领科技培训评价如何
  • 【TS3】搭建本地开发环境
  • MR、AR、VR:技术浪潮下安卓应用的未来走向
  • React搭建应用
  • NVIDIA Dynamo 推理框架
  • 校园网即点即连——校园网自动登录的思路流程
  • C# 设计模式|单例模式全攻略:从基础到高级实现与防御
  • SQL 字符串函数高频考点:LIKE 和 SUBSTRING 的区别
  • 法律文档智能分析系统:NLP+法律知识库的技术实现方案