ITPub博客

首页 > 数据库 > > 高斯中目前存在的权限说明(一)

高斯中目前存在的权限说明(一)

作者:GaussDB_数据库 时间:2020-03-09 13:41:42 0 删除 编辑

system_priviege_name

  • 系统权限名。系统目前支持的系统权限及角色或用户对权限的拥有情况如下表所示,其中“Y”表示角色或用户拥有此权限,“-”表示角色或用户无此权限。

    表1 系统权限矩阵

    系统权限

    角色是否拥有此权限

    用户是否拥有此权限

    操作类型

    所需权限

    权限说明

    DBA

    RESOURCE

    CONNECT

    SYS

    PUBLIC

    创建连接

    CREATE SESSION

    新创建的用户如果需要连接数据库,需要授权此权限。

    Y

    -

    Y

    Y

    -

    创建用户

    CREATE USER

    创建用户时,需要被授予CREATE USER权限。

    Y

    -

    -

    Y

    -

    创建角色

    CREATE ROLE

    创建角色时,需要被授予CREATE ROLE权限。

    Y

    -

    -

    Y

    -

    创建表空间

    CREATE TABLESPACE

    创建表空间时,需要被授予CREATE TABLESPACE权限。

    Y

    -

    -

    Y

    -

    创建表

    CREATE TABLE

    创建本schema中的表时,有两个权限之一即可。如果要创建其他用户的表,必须要有CREATE ANY TABLE权限。

    Y

    Y

    -

    Y

    -

    CREATE ANY TABLE

    -

    创建索引

    CREATE ANY INDEX

    创建本schema中的索引时,满足如下条件之一:

    Y

    -

    -

    Y

    -

    创建序列

    CREATE SEQUENCE

    创建本schema中的序列时,满足如下条件之一:

    Y

    Y

    -

    Y

    -

    CREATE ANY SEQUENCE

    -

    创建视图

    CREATE VIEW

    CREATE ANY VIEW

    创建本schema中的视图时,满足如下条件之一:

    Y

    -

    -

    Y

    -

    创建数据库实例

    CREATE DATABASE

    当前仅支持在nomount状态下由SYS用户创建一个数据库实例,后续不能再创建。

    Y

    -

    -

    Y

    -

    创建同名词

    CREATE SYNONYM

    CREATE ANY SYNONYM

    CREATE PUBLIC SYNONYM


    Y

    -

    -

    Y

    -

    创建函数/存储过程/自定义高级包

    CREATE PROCEDURE


    Y

    Y

    -

    Y

    -

    CREATE ANY PROCEDURE

    -

    删除用户

    DROP USER

    删除用户时,需要被授予DROP USER权限。

    Y

    -

    -

    Y

    -

    删除表空间

    DROP TABLESPACE

    删除表空间时,需要被授予DROP TABLESPACE权限。

    Y

    -

    -

    Y

    -

    删除表

    DROP ANY TABLE

    用户能删除自己schema下的表;删除其他用户下的表,需要DROP ANY TABLE权限。

    Y

    -

    -

    Y

    -

    删除索引

    DROP ANY INDEX

    用户能删除自己schema下的索引;删除其他用户下的索引,需要DROP ANY INDEX权限。

    Y

    -

    -

    Y

    -

    删除序列

    DROP ANY SEQUENCE

    用户能删除自己schema下的序列;删除其他用户下的序列,需要DROP ANY SEQUENCE权限

    Y

    -

    -

    Y

    -

    删除视图

    DROP ANY VIEW

    用户能删除自己schema下的视图;删除其他用户下的视图,需要DROP ANY VIEW权限。

    Y

    -

    -

    Y

    -

    删除同名词

    DROP ANY SYNONYM

    DROP PUBLIC SYNONYM

    用户能删除自己schema下的视图;删除其他用户下的视图,需要DROP ANY SYNONYM权限;删除公共同名词,需要DROP PUBLIC SYNONYM权限;系统当前仅支持删除公共同名词。

    Y

    -

    -

    Y

    -

    删除角色

    DROP ANY ROLE

    用户能删除自己创建的角色;删除任意角色,需要用户已经被授予该角色,且具有WITH GRANT OPTION,或者具有DROP ANY ROLE权限。

    Y

    -

    -

    Y

    -

    锁表

    LOCK ANY TABLE

    用户能锁定自己schema下的表或者视图;锁定其他用户schema下的表,需要LOCK ANY TABLE权限。

    Y

    -

    -

    Y

    -

    清空表

    DROP ANY TABLE

    用户可通过TRUNCATE TABLE语句删除表中所有的行。用户能清空自己schema下的表;清空其他用户schema下的表,需要DROP ANY TABLE权限。

    Y

    -

    -

    Y

    -

    闪回表

    FLASHBACK ANY TABLE

    闪回自己schema下的表,所需权限与DROP TABLE操作的权限相同;闪回其他schema下的表,需要FLASHBACK ANY TABLE权限。注:后续根据FLASHBACK TABLE操作的同步类型(SCN/TIMESTAMP/BEFORE) 区分所需不同的权限。

    Y

    -

    -

    Y

    -

    清除操作

    DROP ANY TABLE

    DROP ANY INDEX

    DROP TABLESPACE

    PURGE DBA_RECYCLEBIN

    清除(PURGE)操作支持:表(PURGE TABLE)、索引(PURGE INDEX)、表空间(PURGE TABLESPACE)、回收站(PURGE RECYCLEBIN)。


    要清除的对象(table/index)属于用户自己,不需要授予权限;如果要清除的对象属于其他用户,按照对象类型,需要的权限要求为:清除表需要DROP ANY TABLE权限;清除索引需要DROP ANY INDEX权限;清空回收站需要PURGE DBA_RECYCLEBIN权限;清除表空间需要DROP TABLESPACE权限。

    Y

    -

    -

    Y

    -

    删除函数或存储过程或自定义高级包

    DROP ANY PROCEDURE

    用户能删除属于自己schema下的函数或者存储过程或自定义高级包。

    如果是删除属于其他用户的函数或者存储过程或自定义高级包,需要授予DROP ANY PROCEDURE权限。

    Y

    -

    -

    Y

    -

    修改会话参数

    ALTER SESSION

    当前所有参数都是与当前会话相关,无需授权即可修改。ALTER SESSION权限暂时预留。

    Y

    -

    -

    Y

    -

    修改表空间

    ALTER TABLESPACE

    修改表空间属性时,需要被授予ALTER TABLESPACE权限。

    Y

    -

    -

    Y

    -

    修改系统属性

    ALTER SYSTEM

    修改系统属性时,需要被授予ALTER SYSTEM权限。

    Y

    -

    -

    Y

    -

    修改数据库

    ALTER DATABASE

    修改数据库属性时,需要被授予ALTER DATABASE权限。

    Y

    -

    -

    Y

    -

    修改用户信息

    ALTER USER

    更改用户信息时,需要授予该权限。特别的,普通用户无需该权限就可以修改自己密码,即使拥有该权限,也不能修改其他用户的密码。授予DBA角色的用户即使拥有该权限,也不能修改其他DBA用户的密码。

    Y

    -

    -

    Y

    -

    修改表

    ALTER ANY TABLE

    用户是表的属主,不需要授权;否则需要表的ALTER对象权限,或者ALTER ANY TABLE权限。

    Y

    -

    -

    Y

    -

    修改索引

    ALTER ANY INDEX

    用户有权限修改属于自己schema下索引的属性,不需要其他权限。

    如果要修改其他用户schema下的索引属性,需要授予ALTER ANY INDEX系统权限。

    Y

    -

    -

    Y

    -

    修改序列

    ALTER ANY SEQUENCE

    用户是序列的属主,不需要授权;否则需要序列的ALTER对象权限,或者ALTER ANY SEQUENCE权限。

    Y

    -

    -

    Y

    -

    访问序列

    SELECT ANY SEQUENCE

    用户有权限访问属于自己的序列,不需要授予权限。

    如果要其他用户的序列,需要被授予SELECT ANY SEQUENCE权限。

    Y

    -

    -

    Y

    -

    授权操作

    GRANT ANY PRIVILEGE

    GRANT ANY ROLE

    GRANT ANY OBJECT PRIVILEGE

    如果是授权系统权限,执行该语句的用户需要满足如下条件之一:

    如果是授予角色,执行该语句的用户需要满足如下条件之一:

    拥有GRANT ANY OBJECT PRIVILEGE系统权限的用户能够将任意用户的对象的权限授予给其他用户。

    Y

    -

    -

    Y

    -

    回收权限操作

    GRANT ANY PRIVILEGE

    GRANT ANY ROLE

    如果是回收系统权限,执行该语句的用户需要满足如下条件之一:

    如果是回收角色,执行该语句的用户需要满足如下条件之一:

    Y

    -

    -

    Y

    -

    更改PROFILE属性

    ALTER PROFILE

    更改profile属性时,执行该语句的用户需要被授予该权限。

    Y

    -

    -

    Y

    -

    创建PROFILE

    CREATE PROFILE

    创建profile时,执行该语句的用户需要被授予该权限。

    Y

    -

    -

    Y

    -

    删除PROFILE

    DROP PROFILE

    删除profile时,执行该语句的用户需要被授予该权限。

    Y

    -

    -

    Y

    -

    读取任意表或视图数据

    READ ANY TABLE

    SELECT ANY TABLE

    拥有该权限的用户能查询任意表(除sys的系统表)或视图的数据。如果包含for update子句,只有拥有SELECT ANY TABLE权限的用户能够查询。

    Y

    -

    -

    Y

    -

    注释权限

    COMMENT ANY TABLE

    为自己的表增加注释时,不需要权限;为任意用户的表增加注释时,需要执行语句的用户拥有该权限。

    Y

    -

    -

    Y

    -

    更新表数据

    UPDATE ANY TABLE

    拥有该权限的用户能够更新任意用户表的数据。

    Y

    -

    -

    Y

    -

    **表数据

    INSERT ANY TABLE

    拥有该权限的用户能够为任意用户表**数据。

    Y

    -

    -

    Y

    -

    删除表数据

    DELETE ANY TABLE

    拥有该权限的用户能够删除任意用户表的数据。

    Y

    -

    -

    Y

    -

    备份操作

    SYSBACKUP

    SYSDBA

    执行备份操作需要用户拥有SYSBACKUP或者SYSDBA权限。

    Y

    -

    -

    Y

    -

    恢复操作

    SYSDBA

    执行恢复操作需要用户拥有SYSDBA权限。

    Y

    -

    -

    Y

    -

    停止数据库

    SYSDBA

    执行停止数据库操作需要用户拥有SYSDBA权限。

    Y

    -

    -

    Y

    -

    重建备机

    SYSDBA

    执行重建备机操作需要用户拥有SYSDBA权限。

    Y

    -

    -

    Y

    -

    物理备份集的合法性校验

    SYSDBA

    执行物理备份集的合法性校验操作需要用户拥有SYSDBA权限。

    Y

    -

    -

    Y

    -

    分析表操作

    ANALYZE ANY

    分析自己的表时,不需要权限,分析其他用户表时(SYS用户除外)需要ANALYZE ANY权限,分析SYS用户的表需要DBA权限。

    Y

    -

    -

    Y

    -

    修改触发器

    ALTER ANY TRIGGER

    修改属于自己的触发器定义时,不需要授予权限。修改其他用户的触发器定义,需要执行alter trigger语句的用户被授予该权限。

    Y

    -

    -

    Y

    -

    创建触发器

    CREATE TRIGGER

    创建属于自己的触发器时,需要用户被授予CREATE TRIGGER权限。

    创建属于其他用户的触发器时,需要用户被授予CREATE ANY TRIGGER权限。

    Y

    Y

    -

    Y

    -

    CREATE ANY TRIGGER

    -

    删除触发器

    DROP ANY TRIGGER

    删除属于自己的触发器时,不需要授予权限。

    删除属于其他用户的触发器时,需要被授予DROP ANY TRIGGER权限。

    Y

    -

    -

    Y

    -

    执行存储过程/自定义高级包

    EXECUTE ANY PROCEDURE

    执行属于自己的存储过程或自定义高级包时,不需要授予权限。

    执行属于其他的用户的存储过程或自定义高级包时,需要被授予EXECUTE ANY PROCEDURE系统权限或者该存储过程的execute对象权限。

    Y

    -

    -

    Y

    -

    修改存储过程

    ALTER ANY PROCEDURE

    预留权限

    Y

    -

    -

    Y

    -

    修改物化视图

    ALTER ANY MATERIALIZED VIEW

    预留权限

    Y

    -

    -

    Y

    -

    创建物化视图

    CREATE ANY MATERIALIZED VIEW

    CREATE MATERIALIZED VIEW

    预留权限

    Y

    -

    -

    Y

    -

    删除物化视图

    DROP ANY MATERIALIZED VIEW

    预留权限

    Y

    -

    -

    Y

    -

    修改角色属性

    ALTER ANY ROLE

    预留权限

    Y

    -

    -

    Y

    -

    创建分布规则

    CREATE DISTRIBUTE RULE

    创建分布式规则时,需要用户被授予CREATE DISTRIBUTE RULE权限。

    Y

    -

    -

    Y

    -

    闪回归档

    FLASHBACK ARCHIVE ADMINISTER

    预留权限

    Y

    -

    -

    Y

    -

    全局查询重写

    GLOBAL QUERY REWRITE

    预留权限

    Y

    -

    -

    Y

    -

    管理表空间

    MANAGE TABLESPACE

    预留权限

    Y

    -

    -

    Y

    -

    物化视图刷新

    ON COMMIT REFRESH

    预留权限

    Y

    -

    -

    Y

    -

    无限制使用表空间

    UNLIMITED TABLESPACE

    预留权限

    Y

    -

    -

    Y

    -

    创建子视图

    UNDER ANY VIEW

    预留权限

    Y

    -

    -

    Y

    -

    系统操作员权限

    SYSOPER

    预留权限

    Y

    -

    -

    Y

    -

    创建节点

    CREATE NODE

    创建集群节点时,需要被授予CREATE NODE权限。

    Y

    -

    -

    Y

    -

    删除节点

    DROP NODE

    删除集群环境中的节点时,需要被授予DROP NODE权限。

    Y

    -

    -

    Y

    -

    修改节点属性

    ALTER NODE

    修改集群环境中的节点属性时,需要被授予ALTER NODE权限。

    Y

    -

    -

    Y

    -

    创建目录

    CREATE ANY DIRECTORY

    创建目录对象的权限

    Y

    -

    -

    Y

    -

    删除目录

    DROP ANY DIRECTOTY

    删除目录对象的权限

    Y

    -

    -

    Y

    -

    • 已授予该角色,并有WITH ADMIN OPTION属性。

    • 已授权GRANT ANY ROLE系统权限。

    • 是该角色的创建者。

    • 已授权该系统权限,并有WITH ADMIN OPTION属性。

    • 已授权GRANT ANY PRIVILEGE系统权限。

    • 已授予该角色,并有WITH ADMIN OPTION属性。

    • 已授权GRANT ANY ROLE系统权限。

    • 是该角色的创建者。

    • 已授权该系统权限,并有WITH ADMIN OPTION属性。

    • 已授权GRANT ANY PRIVILEGE系统权限。

    • 创建本用户schema下的函数/存储过程/自定义高级包,有两个权限之一即可。

    • 创建其他用户schema下的函数/存储过程/自定义高级包,需要有CREATE_ANY PROCEDURE权限。

    • 创建本用户schema下的同名词,有三个权限之一即可。

    • 创建其他用户schema下的同名词,需要有CREATE_ANY SYNONYM权限。

    • 创建公共同名词,需要有CREATE PUBLIC。 SYNONYM权限

    • 有CREATE VIEW权限。

    • 有CREATE ANY VIEW权限。如果要创建其他schema中的视图,必须要有CREATE ANY VIEW权限。

    • 有CREATE SEQUENCE权限。

    • 有CREATE ANY SEQUENCE权限。如果要创建其他schema中的序列,必须要有CREATE ANY SEQUENCE权限

    • 被索引的表在本schema中。

    • 有CREATE ANY INDEX权限。如果要创建其他schema中的索引,必须要有CREATE ANY INDEX权限

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69959250/viewspace-3120180/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2020-01-06

  • 博文量
    2907
  • 访问量
    19346