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

磐维数据库权限管理介绍

FANtasiaaaaa 2024-10-08
332

本文主要介绍磐维数据库授予用户权限的场景以及操作语法:

一、用户授权三种场景:
      1、将系统权限授权给角色或用户:系统权限又称为用户属性,包括SYSADMIN、CREATEDB、CREATEROLE、AUDITADMIN和LOGIN。
      2、将数据库对象授权给角色或用户:将数据库对象(表和视图、指定字段、数据库、函数、模式、表空间等)的相关权限授予特定角色或用户。
      3、将角色或用户的权限授权给其他角色或用户:将一个角色或用户的权限授予一个或多个其他角色或用户。在这种情况下,每个角色或用户都可视为拥有一个或多个数据库权限的集合。

二、语法操作:

      1、授予权限——grant

      因为数据库中涉及的权限众多,grant语法格式非常复杂,常用的有:
       1)将数据库的访问权限赋予指定的用户或角色。
             GRANT { { CREATE | CONNECT | TEMPORARY | TEMP } [, ...] | ALL [ PRIVILEGES ] }  ON DATABASE database_name [, ...] TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ];
       2)将表中字段的访问权限赋予指定的用户或角色。
             GRANT { {{ SELECT | INSERT | UPDATE | REFERENCES } ( column_name [, ...] )} [, ...] | ALL [ PRIVILEGES ] ( column_name [, ...] ) }  ON [ TABLE ] table_name [, ...] TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ];
       3)将表或视图的访问权限赋予指定的用户或角色
             GRANT { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES } [, ...] | ALL [ PRIVILEGES ] } ON { [ TABLE ] table_name [, ...]  | ALL TABLES IN SCHEMA schema_name [, ...] }  TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ];

            

        2、回收权限——REVOKE用于撤销一个或多个角色的权限。

    非对象所有者试图在对象上REVOKE权限,命令按照以下规则执行:如果授权用户没有该对象上的权限,则命令立即失败。如果授权用户有部分权限,则只撤销那些有授权选项的权限。如果授权用户没有授权选项,REVOKE ALL PRIVILEGES形式将发出一个错误信息,而对于其他形式的命令而言,如果是命令中指定名称的权限没有相应的授权选项,该命令将发出一个警告。不允许对表分区进行REVOKE操作,对分区表进行REVOKE操作会引起告警。

       语法格式:

       因为数据库中涉及的权限众多,revoke语法格式也同样非常复杂,详细语法请参考《Panwei V2.2用户手册》。常用的语法有:
       回收指定数据库上权限
       REVOKE [ GRANT OPTION FOR ] { { CREATE | CONNECT | TEMPORARY | TEMP } [, ...] | ALL [ PRIVILEGES ] } ON DATABASE database_name [, ...] FROM { [ GROUP ] role_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ];
       回收指定表和视图上权限
       REVOKE [ GRANT OPTION FOR ] { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES }[, ...] | ALL [ PRIVILEGES ] } ON { [ TABLE ] table_name [, ...] | ALL TABLES IN SCHEMA schema_name [, ...] } FROM { [ GROUP ] role_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ];
                 

           3、行级访问控制

       行级访问控制特性将数据库访问控制精确到数据表行级别,使数据库达到行级访问控制的能力。不同用户执行相同的SQL查询操作,读取到的结果是不同的。

       用户可以在数据表创建行访问控制(Row Level Security)策略,该策略是指针对特定数据库用户、特定SQL操作生效的表达式。当数据库用户对数据表访问时,若SQL满足数据表特定的Row Level Security策略,在查询优化阶段将满足条件的表达式,按照属性(PERMISSIVE | RESTRICTIVE)类型,通过AND或OR方式拼接,应用到执行计划上。
       行级访问控制的目的是控制表中行级数据可见性,通过在数据表上预定义Filter,在查询优化阶段将满足条件的表达式应用到执行计划上,影响最终的执行结果。当前受影响的SQL语句包括SELECT,UPDATE,DELETE。

                   

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

评论