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

华为GaussDB T 数据库系统权限汇总

原创 章芋文 2019-10-01
1961

系统权限

系统权限是用户进行创建、删除、更改、查询对象和其他如登录、授权等操作的能力。

默认情况下,只有系统管理员(DBA)具备系统权限。DBA通过GRANT/REVOKE语句对其他用户的进行权限授予和撤销。被授予权限时携带ADMIN OPTION选项时,该用户也能对此权限进行授权操作。

从安全性考虑,系统权限应该分别赋予可信赖的用户。


系统权限

角色是否拥有此权限

用户是否拥有此权限

操作类型

所需权限

权限说明

DBA

RESOURE

CONNECT

SYS

GAUSSDBA

PUBLIC

创建连接

CREATE SESSION

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

Y

-

Y

Y

Y

-

创建用户

CREATE USER

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

Y

-

-

Y

Y

-

创建角色

CREATE ROLE

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

Y

-

-

Y

Y

-

创建表空间

CREATE TABLESPACE

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

Y

-

-

Y

Y

-

创建表

CREATE TABLE

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

Y

Y

-

Y

Y

-

CREATE ANY TABLE

-

创建索引

CREATE ANY INDEX

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

  • 被索引的表在本schema中。

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

Y

-

-

Y

Y

-

创建序列

CREATE SEQUENCE

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

  • 有CREATE SEQUENCE权限。

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

Y

Y

-

Y

Y

-

CREATE ANY SEQUENCE

-

创建视图

CREATE VIEW

CREATE ANY VIEW

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

  • 有CREATE VIEW权限。

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

Y

-

-

Y

Y

-

创建数据库实例

CREATE DATABASE

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

Y

-

-

Y

Y

-

创建同名词

CREATE SYNONYM

CREATE ANY SYNONYM

CREATE PUBLIC SYNONYM

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

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

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

Y

-

-

Y

Y

-

创建函数/存储过程

CREATE PROCEDURE

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

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

Y

Y

-

Y

Y

-

CREATE ANY PROCEDURE

-

删除用户

DROP USER

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

Y

-

-

Y

Y

-

删除表空间

DROP TABLESPACE

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

Y

-

-

Y

Y

-

删除表

DROP ANY TABLE

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

Y

-

-

Y

Y

-

删除索引

DROP ANY INDEX

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

Y

-

-

Y

Y

-

删除序列

DROP ANY SEQUENCE

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

Y

-

-

Y

Y

-

删除视图

DROP ANY VIEW

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

Y

-

-

Y

Y

-

删除同名词

DROP ANY SYNONYM

DROP PUBLIC SYNONYM

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

Y

-

-

Y

Y

-

删除角色

DROP ANY ROLE

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

Y

-

-

Y

Y

-

锁表

LOCK ANY TABLE

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

Y

-

-

Y

Y

-

清空表

DROP ANY TABLE

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

Y

-

-

Y

Y

-

闪回表

FLASHBACK ANY TABLE

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

Y

-

-

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

Y

-

删除函数或存储过程

DROP ANY PROCEDURE

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

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

Y

-

-

Y

Y

-

修改会话参数

ALTER SESSION

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

Y

-

-

Y

Y

-

修改表空间

ALTER TABLESPACE

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

Y

-

-

Y

Y

-

修改系统属性

ALTER SYSTEM

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

Y

-

-

Y

Y

-

修改数据库

ALTER DATABASE

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

Y

-

-

Y

Y

-

修改用户信息

ALTER USER

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

Y

-

-

Y

Y

-

修改表

ALTER ANY TABLE

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

Y

-

-

Y

Y

-

修改索引

ALTER ANY INDEX

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

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

Y

-

-

Y

Y

-

修改序列

ALTER ANY SEQUENCE

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

Y

-

-

Y

Y

-

访问序列

SELECT ANY SEQUENCE

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

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

Y

-

-

Y

Y

-

授权操作

GRANT ANY PRIVILEGE

GRANT ANY ROLE

GRANT ANY OBJECT PRIVILEGE

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

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

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

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

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

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

  • 是该角色的创建者。

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

Y

-

-

Y

Y

-

回收权限操作

GRANT ANY PRIVILEGE

GRANT ANY ROLE

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

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

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

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

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

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

  • 是该角色的创建者。

Y

-

-

Y

Y

-

更改PROFILE属性

ALTER PROFILE

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

Y

-

-

Y

Y

-

创建PROFILE

CREATE PROFILE

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

Y

-

-

Y

Y

-

删除PROFILE

DROP PROFILE

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

Y

-

-

Y

Y

-

读取任意表或视图数据

READ ANY TABLE

SELECT ANY TABLE

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

Y

-

-

Y

Y

-

注释权限

COMMENT ANY TABLE

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

Y

-

-

Y

Y

-

更新表数据

UPDATE ANY TABLE

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

Y

-

-

Y

Y

-

**表数据

INSERT ANY TABLE

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

Y

-

-

Y

Y

-

删除表数据

DELETE ANY TABLE

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

Y

-

-

Y

Y

-

备份操作

SYSBACKUP

SYSDBA

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

Y

-

-

Y

Y

-

恢复操作

SYSDBA

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

Y

-

-

Y

Y

-

停止数据库

SYSDBA

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

Y

-

-

Y

Y

-

重建备机

SYSDBA

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

Y

-

-

Y

Y

-

物理备份集的合法性校验

SYSDBA

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

Y

-

-

Y

Y

-

分析表操作

ANALYZE ANY

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

Y

-

-

Y

Y

-

修改触发器

ALTER ANY TRIGGER

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

Y

-

-

Y

Y

-

创建触发器

CREATE TRIGGER

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

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

Y

Y

-

Y

Y

-

CREATE ANY TRIGGER

-

删除触发器

DROP ANY TRIGGER

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

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

Y

-

-

Y

Y

-

执行存储过程

EXECUTE ANY PROCEDURE

执行属于自己的存储过程时,不需要授予权限。

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

Y

-

-

Y

Y

-

修改存储过程

ALTER ANY PROCEDURE

预留权限

Y

-

-

Y

Y

-

修改物化视图

ALTER ANY MATERIALIZED VIEW

预留权限

Y

-

-

Y

Y

-

创建物化视图

CREATE ANY MATERIALIZED VIEW

CREATE MATERIALIZED VIEW

预留权限

Y

-

-

Y

Y

-

删除物化视图

DROP ANY MATERIALIZED VIEW

预留权限

Y

-

-

Y

Y

-

修改角色属性

ALTER ANY ROLE

预留权限

Y

-

-

Y

Y

-

创建分布规则

CREATE DISTRIBUTE RULE

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

Y

-

-

Y

Y

-

闪回归档

FLASHBACK ARCHIVE ADMINISTER

预留权限

Y

-

-

Y

Y

-

全局查询重写

GLOBAL QUERY REWRITE

预留权限

Y

-

-

Y

Y

-

管理表空间

MANAGE TABLESPACE

预留权限

Y

-

-

Y

Y

-

物化视图刷新

ON COMMIT REFRESH

预留权限

Y

-

-

Y

Y

-

无限制使用表空间

UNLIMITED TABLESPACE

预留权限

Y

-

-

Y

Y

-

创建子视图

UNDER ANY VIEW

预留权限

Y

-

-

Y

Y

-

系统操作员权限

SYSOPER

预留权限

Y

-

-

Y

Y

-

创建节点

CREATE NODE

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

Y

-

-

Y

Y

-

删除节点

DROP NODE

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

Y

-

-

Y

Y

-

修改节点属性

ALTER NODE

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

Y

-

-

Y

Y

-

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

评论