暂无图片
暂无图片
8
暂无图片
暂无图片
暂无图片

OceanBase修改角色

2023-02-13
374

修改角色主要是向角色中添加权限。

通过 SQL 语句修改角色

您可以通过 GRANT 语句向角色中添加权限。

前提条件

为角色授予系统权限、对象权限或角色时,当前用户必须拥有被授予的权限或角色,并且拥有 GRANT OPTION 权限,或者拥有 GRANT ANY OBJECT PRIVILEGE 权限、GRANT ANY PRIVILEGE 权限或 GRANT ANY ROLE 权限,才能授权成功。

查看当前拥有权限的操作请参见 查看用户权限。如果您没有相应的权限,请联系管理员为您添加,为用户添加权限的相关操作请参见 修改用户权限。查看当前用户拥有的角色的操作请参见 查看角色

修改角色的语法

向角色中添加对象权限的语法如下:

GRANT obj_privilege ON obj_clause TO role_name [WITH GRANT OPTION];
 
obj_privilege:
    ALTER
  | DELETE
  | INSERT
  | SELECT 
  | UPDATE
  | EXECUTE

obj_clause:
  relation_name
  | relation_name '.' relation_name
  | DIRECTORY relation_name

向角色中添加系统权限的语法如下:

GRANT {system_privilege_list | ALL PRIVILEGES}
    TO role_name [WITH {GRANT | ADMID} OPTION];

 system_privilege:
    CREATE SESSION
  | EXEMPT REDACTION POLICY
  | SYSDBA
  | SYSOPER
  | SYSBACKUP
  | CREATE TABLE
  | CREATE ANY TABLE
  | ALTER ANY TABLE
  | BACKUP ANY TABLE
  | DROP ANY TABLE
  | LOCK ANY TABLE
  | COMMENT ANY TABLE
  | SELECT ANY TABLE
  | INSERT ANY TABLE
  | UPDATE ANY TABLE
  | DELETE ANY TABLE
  | FLASHBACK ANY TABLE
  | CREATE ROLE
  | DROP ANY ROLE
  | GRANT ANY ROLE
  | ALTER ANY ROLE
  | AUDIT ANY
  | GRANT ANY PRIVILEGE
  | GRANT ANY OBJECT PRIVILEGE
  | CREATE ANY INDEX
  | ALTER ANY INDEX
  | DROP ANY INDEX
  | CREATE ANY VIEW
  | DROP ANY VIEW
  | CREATE VIEW
  | SELECT ANY DICTIONARY
  | CREATE PROCEDURE
  | CREATE ANY PROCEDURE
  | ALTER ANY PROCEDURE
  | DROP ANY PROCEDURE
  | EXECUTE ANY PROCEDURE
  | CREATE SYNONYM
  | CREATE ANY SYNONYM
  | DROP ANY SYNONYM
  | CREATE PUBLIC 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 PROFILE
  | ALTER PROFILE
  | DROP PROFILE
  | CREATE USER
  | ALTER USER
  | DROP USER
  | CREATE TYPE
  | CREATE ANY TYPE
  | ALTER ANY TYPE
  | DROP ANY TYPE
  | EXECUTE ANY TYPE
  | UNDER ANY TYPE
  | PURGE DBA_RECYCLEBIN
  | CREATE ANY OUTLINE
  | ALTER ANY OUTLINE
  | DROP ANY OUTLINE
  | SYSKM
  | CREATE TABLESPACE
  | ALTER TABLESPACE
  | DROP TABLESPACE
  | SHOW PROCESS
  | ALTER SYSTEM
  | CREATE DATABASE LINK
  | CREATE PUBLIC DATABASE LINK
  | DROP DATABASE LINK
  | ALTER SESSION
  | ALTER DATABASE

语句使用说明:

  • obj_privilege:指定授予的对象权限类型。同时将多个权限授予用户时,权限类型之间用英文逗号(,)分隔。

  • obj_clause:指定授予的对象权限的涉及的对象。

  • system_privilege:指定授予的系统权限类型。同时将多个权限授予用户时,权限类型之间用英文逗号(,)分隔。

  • WITH GRANT OPTION:表示指定当前授予的权限是否允许转授,且取消授权时会级联。

操作示例

将表 test1.tbl1 的 SELECT 对象权限授予角色 role1

obclient> GRANT SELECT ON test1.tbl1 TO role1;
Query OK, 0 rows affected

此外,您也可以向 PUBLIC 角色中添加权限,SQL 语句如下:

注意

为了数据库安全,OceanBase 数据库建议您根据自身业务需求来合理授权,请勿随意将该角色赋予用户。

obclient> GRANT [privilege_list] TO PUBLIC;

添加权限后,系统会将该权限添加到租户内的每个用户的权限域中。所有用户都可以立即执行该权限所授权的操作。关于 PUBLIC 角色的更多信息,请参见 角色管理概述

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论