ITPub博客

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

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

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

SYS用户具有上述所有权限。

  • 同名词的权限:同名词的权限与其表示的对象的权限一致。即:将同名词的权限授予给用户,相当于将同名词表示的对象的权限授予给用户,反过来也成立:将对象的权限授予给用户,如果该对象存在同名词,该同名词的权限也授予给了该用户。访问同名词时,将检查当前操作用户是否有同名词表示的对象的权限。

  • 通过角色继承权限:

    • 将角色授予给用户/角色时,用户/角色会继承该角色拥有的所有权限(包括系统权限和所有被授予的对象权限)。

    • 将角色从用户/角色回收时,用户/角色从该角色继承的权限会被回收。如果对于同一个权限,用户/角色从另外的角色继承了该权限,回收一个角色后,用户/角色仍然拥有该权限。

  • 删除对象

    • 当删除表、视图、序列、存储过程时,会同步删除用户/角色拥有的该对象的权限。

  • 删除用户/角色

    • 删除用户时,会删除该用户下的所有对象,因此也会同步删除其他用户被授予的该对象的权限。同时会级联删除该用户授予给其他用户会和角色的权限。

    • 删除角色时,会删除授予给该角色的所有权限,并同步删除被授予该角色的用户/角色对应的权限。

  • 创建视图、访问视图时权限要求:

    • 创建视图时,除了要求当前用户有CREATE VIEW(创建本用户的视图) 或者CREATE ANY VIEW(创建任意用户的视图)系统权限,还需要视图的拥有者(可能是当前用户,也可能是其他用户)对视图中访问的对象有SELECT或者READ权限。

    • 访问视图时,除了要求用户有对视图的SELECT/SELECT ANY TABLE或者READ/READ ANY TABLE权限外,还需要视图的拥有者(可能是当前用户,也可能是其他用户)对视图中访问的对象有SELECT或者READ权限。

  • 存储过程、自定义函数、触发器对依赖对象的权限要求:

    • 创建存储过程、自定义函数、触发器时,不检查是否有依赖对象的访问权限。

    • 执行存储过程、调用自定义函数或者触发器被触发执行时,会检查当前用户是否有访问依赖对象的权限。

    • 创建触发器时,如果触发器是创建在其他用户的表上时,需要用户被授予CREATE ANY TRIGGER权限。

  • 对象权限检查的规则:对象的所有着拥有该对象的所有权限。

    • SELECT : 用户访问自己的对象时,不需要授予权限;访问其他用户的对象,需要被授予该对象的SELECT对象权限,或者SELECT ANY TABLE系统权限。

    • UPDATE : 用户更新自己的对象时,不需要授予权限;更新其他用户的对象,需要被授予该对象的UPDATE对象权限,或者UPDATE ANY TABLE系统权限。

    • DELETE : 用户删除自己对象中的数据时,不需要授予权限;删除其他用户的对象数据时,需要被授予该对象的DELETE对象权限,或者DELETE ANY TABLE系统权限。

    • INSERT : 用户往自己对象中**数据时,不需要授予权限;往其他用户的对象**数据时,需要被授予该对象的INSERT对象权限,或者INSERT ANY TABLE系统权限。

    • ALTER : 更改自己对象的定义时,不需要授予权限;更改其他用户的对象时,需要被授予该对象的ALTER对象权限,或者ALTER ANY { TABLE | SEQUENCE } 系统权限。

    • INDEX:创建索引时,需要用户被授予对象上的INDEX权限。

    • EXECUTE:执行存储过程或者调用自定义函数、系统包函数时,需要用户被授予对象的EXECUTE权限。当前系统包有:DBMS_UTILITY、DBMS_STATS、DBMS_STANDARD、DBMS_SQL、DBMS_RANDOM、DBMS_RAFT、DBMS_OUTPUT、DBMS_LOB和DBMS_JOB。系统管理员和DBA默认具体所有高级包的执行权限,普通用户调用DBMS_JOB包,需要系统管理员授权EXECUTE权限给普通用户,其他的系统包默认所有用户有权限调用。

    • READ:访问对象的权限,与SELECT权限类似。与SELECT的区别是:如果有FOR UPDATE子句,需要SELECT权限。没有FOR UPDATE子句时,SELECT与READ权限相同。

    • REFERENCES:创建外键约束时,需要有被引用的对象的REFERENCES权限。

  • 非SYS用户即使拥有下列权限也不可以在SYS用户schema中创建对象,或者操作SYS用户的对象。SYS用户将对象的权限单独授予非SYS用户,才可以操作SYS对象。

    CREATE ANY TABLE

    CREATE ANY INDEX

    CREATE ANY SEQUENCE

    CREATE ANY VIEW

    CREATE ANY SYNONYM

    CREATE ANY PROCEDURE

    DROP ANY TABLE

    DROP ANY INDEX

    DROP ANY SEQUENCE

    DROP ANY VIEW

    DROP ANY SYNONYM

    LOCK ANY TABLE

    DROP ANY TABLE

    DROP ANY PROCEDURE

    ALTER ANY TABLE

    ALTER ANY INDEX

    ALTER ANY SEQUENCE

    UPDATE ANY TABLE

    INSERT ANY TABLE

    DELETE ANY TABLE

    ANALYZE ANY

    ALTER ANY TRIGGER

    CREATE ANY TRIGGER

    DROP ANY TRIGGER

    EXECUTE ANY PROCEDURE

    CREATE ANY DIRECTORY

    DROP ANY DIRECTORY

如下赋权操作为高危操作,请慎重执行:

CREATE ANY TABLE

CREATE ANY INDEX

CREATE ANY SEQUENCE

CREATE ANY VIEW

CREATE ANY SYNONYM

CREATE ANY PROCEDURE

DROP ANY TABLE

DROP ANY INDEX

DROP ANY SEQUENCE

DROP ANY VIEW

DROP ANY SYNONYM

LOCK ANY TABLE

DROP ANY TABLE

DROP ANY PROCEDURE

ALTER ANY TABLE

ALTER ANY INDEX

ALTER ANY SEQUENCE

UPDATE ANY TABLE

INSERT ANY TABLE

DELETE ANY TABLE

ANALYZE ANY

ALTER ANY TRIGGER

CREATE ANY TRIGGER

DROP ANY TRIGGER

EXECUTE ANY PROCEDURE

CREATE ANY DIRECTORY

DROP ANY DIRECTORY

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

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

    注册时间:2020-01-06

    • 博文量
      2907
    • 访问量
      19194