• GBase 8c V3.0.0数据类型——访问权限查询函数


    DDL类权限ALTER、DROP、COMMENT、INDEX、VACUUM属于所有者固有的权限,隐式拥有。

    l has_any_column_privilege(user, table, privilege)

    描述:指定用户是否有访问表任何列的权限。

    表  参数类型说明

    参数名

    合法入参类型

    user

    name, oid

    table

    text, oid

    privilege

    text

    返回类型:Boolean

    l has_any_column_privilege(table, privilege)

    描述:当前用户是否有访问表任何列的权限,合法参数类型见表5-12。

    返回类型:Boolean

    备注:has_any_column_privilege检查用户是否以特定方式访问表的任何列。其参数可能与has_table_privilege类似,除了访问权限类型必须是SELECT、INSERT、UPDATE、COMMENT或REFERENCES的一些组合。

    拥有表的表级别权限则隐含的拥有该表每列的列级权限,因此如果与has_table_privilege参数相同,has_any_column_privilege总是返回true。但是如果授予至少一列的列级权限也返回成功。

    l has_column_privilege(user, table, column, privilege)

    描述:指定用户是否有访问列的权限。

    表 参数类型说明

    参数名

    合法入参类型

    user

    name, oid

    table

    text, oid

    column

    text, smallint

    privilege

    text

    返回类型:Boolean

    l has_column_privilege(table, column, privilege)

    描述:当前用户是否有访问列的权限,合法参数类型见表5-13。

    返回类型:Boolean

    备注:has_column_privilege检查用户是否以特定方式访问一列。其参数类似于has_table_privilege,可以通过列名或属性号添加列。想要的访问权限类型必须是SELECT、INSERT、UPDATE、COMMENT或REFERENCES的一些组合。

    拥有表的表级别权限则隐含的拥有该表每列的列级权限。

    l has_cek_privilege(user, cek, privilege)

    描述:指定用户是否有访问列加密密钥CEK的权限。参数说明如下。

    表 参数类型说明

    参数名

    合法入参类型

    描述

    取值范围

    user

    name,oid

    用户

    用户名字或id。

    cek

    text,oid

    列加密密钥

    列加密密钥名称或id。

    privilege

    text

    权限

    l USAGE:允许使用指定列加密密钥。

    l DROP:允许删除指定列加密密钥。

    返回类型:Boolean

    l has_cmk_privilege(user, cmk, privilege)

    描述:指定用户是否有访问客户端加密主密钥CMK的权限。参数说明如下。

    表  参数类型说明

    参数名

    合法入参类型

    描述

    取值范围

    user

    name,oid

    用户

    用户名字或id。

    cmk

    text,oid

    客户端加密主密钥

    客户端加密主密钥名称或id。

    privilege

    text

    权限

    USAGE:允许使用指定客户端加密主密钥。

    DROP:允许删除指定客户端加密主密钥。

    返回类型:Boolean

    l has_database_privilege(user, database, privilege)

    描述:指定用户是否有访问数据库的权限。参数说明如下。

    表 参数类型说明

    参数名

    合法入参类型

    user

    name, oid

    database

    text, oid

    privilege

    text

    返回类型:Boolean

    l has_database_privilege(database, privilege)

    描述:当前用户是否有访问数据库的权限,合法参数类型请参见表5-16。

    返回类型:Boolean

    备注:has_database_privilege检查用户是否能以在特定方式访问数据库。其参数类似has_table_privilege。访问权限类型必须是CREATE、CONNECT、TEMPORARY、ALTER、DROP、COMMENT或TEMP(等价于TEMPORARY)的一些组合。

    l has_directory_privilege(user, directory, privilege)

    描述:指定用户是否有访问directory的权限。

      参数类型说明

    参数名

    合法入参类型

    user

    name, oid

    directory

    text, oid

    privilege

    text

    返回类型:Boolean

    l has_directory_privilege(directory, privilege)

    描述:当前用户是否有访问directory的权限,合法参数类型请参见表5-17。

    返回类型:Boolean

    l has_foreign_data_wrapper_privilege(user, fdw, privilege)

    描述:指定用户是否有访问外部数据封装器的权限。

    表  参数类型说明

    参数名

    合法入参类型

    user

    name, oid

    fdw

    text, oid

    privilege

    text

    返回类型:Boolean

    l has_foreign_data_wrapper_privilege(fdw, privilege)

    描述:当前用户是否有访问外部数据封装器的权限。合法参数类型请参见表5-18。

    返回类型:Boolean

    备注:has_foreign_data_wrapper_privilege检查用户是否能以特定方式访问外部数据封装器。其参数类似has_table_privilege。访问权限类型必须是USAGE。

    l has_function_privilege(user, function, privilege)

    描述:指定用户是否有访问函数的权限。

    表 参数类型说明

    参数名

    合法入参类型

    user

    name, oid

    function

    text, oid

    privilege

    text

    返回类型:Boolean

    l has_function_privilege(function, privilege)

    描述:当前用户是否有访问函数的权限。合法参数类型请参见表5-19。

    返回类型:Boolean

    备注:has_function_privilege检查一个用户是否能以指定方式访问一个函数。其参数类似has_table_privilege。使用文本字符而不是OID声明一个函数时,允许输入的类型和regprocedure数据类型一样(请参考对象标识符类型)。访问权限类型必须是EXECUTE、ALTER、DROP或COMMENT。

    l has_language_privilege(user, language, privilege)

    描述:指定用户是否有访问语言的权限。

    表 参数类型说明

    参数名

    合法入参类型

    user

    name, oid

    language

    text, oid

    privilege

    text

    返回类型:Boolean

    l has_language_privilege(language, privilege)

    描述:当前用户是否有访问语言的权限。合法参数类型请参见表5-20。

    返回类型:Boolean

    备注:has_language_privilege检查用户是否能以特定方式访问一个过程语言。其参数类似has_table_privilege。访问权限类型必须是USAGE。

    l has_nodegroup_privilege(user, nodegroup, privilege)

    描述:检查用户是否有数据库节点访问权限。

    返回类型:Boolean

    表 参数类型说明

    参数名

    合法入参类型

    user

    name, oid

    nodegroup

    text, oid

    privilege

    text

    l has_nodegroup_privilege(nodegroup, privilege)

    描述:检查用户是否有数据库节点访问权限。参数与has_table_privilege类似。访问权限类型必须是USAGE、CREATE、COMPUTE、ALTER或CROP。

    返回类型:Boolean

    l has_schema_privilege(user, schema, privilege)

    描述:指定用户是否有访问模式的权限。

    返回类型:Boolean

    l has_schema_privilege(schema, privilege)

    描述:当前用户是否有访问模式的权限。

    返回类型:Boolean

    备注:has_schema_privilege检查用户是否能以特定方式访问一个模式。其参数类似has_table_privilege。访问权限类型必须是CREATE、USAGE、ALTER、DROP或COMMENT的一些组合。

    l has_server_privilege(user, server, privilege)

    描述:指定用户是否有访问外部服务的权限。

    返回类型:Boolean

    l has_server_privilege(server, privilege)

    描述:当前用户是否有访问外部服务的权限。

    返回类型:Boolean

    备注:has_server_privilege检查用户是否能以指定方式访问一个外部服务器。其参数类似has_table_privilege。访问权限类型必须是USAGE、ALTER、DROP或COMMENT之一的值。

    l has_table_privilege(user, table, privilege)

    描述:指定用户是否有访问表的权限。

    返回类型:Boolean

    l has_table_privilege(table, privilege)

    描述:当前用户是否有访问表的权限。

    返回类型:Boolean

    备注:has_table_privilege检查用户是否以特定方式访问表。用户可以通过名称或OID(pg_authid.oid)来指定,public表明PUBLIC伪角色,或如果缺省该参数,则使用current_user。该表可以通过名称或者OID声明。如果用名称声明,则在必要时可以用模式进行修饰。如果使用文本字符串来声明所希望的权限类型,这个文本字符串必须是SELECT、INSERT、UPDATE、DELETE、TRUNCATE、REFERENCES、TRIGGER、ALTER、DROP、COMMENT、INDEX或VACUUM之一的值。可以给权限类型添加WITH GRANT OPTION,用来测试权限是否拥有授权选项。也可以用逗号分隔列出的多个权限类型,如果拥有任何所列出的权限,则结果便为true。

    示例:

     gbase=# SELECT has_table_privilege('public.web_site', 'select');

     has_table_privilege  

    ---------------------

     t

    (1 row)

        

    gbase=# SELECT has_table_privilege('gbase', 'public.web_site', 'select,INSERT WITH GRANT OPTION ');

     has_table_privilege  

    ---------------------

     t

    (1 row)

    l has_tablespace_privilege(user, tablespace, privilege)

    描述:指定用户是否有访问表空间的权限。

    返回类型:Boolean

    l has_tablespace_privilege(tablespace, privilege)

    描述:当前用户是否有访问表空间的权限。

    返回类型:Boolean

    备注:has_tablespace_privilege检查用户是否能以特定方式访问一个表空间。其参数类似has_table_privilege。访问权限类型必须是CREATE、ALTER、DROP或COMMENT之一的值。

    l pg_has_role(user, role, privilege)

    描述:指定用户是否有角色的权限。

    返回类型:Boolean

    l pg_has_role(role, privilege)

    描述:当前用户是否有角色的权限。

    返回类型:Boolean

    备注:pg_has_role检查用户是否能以特定方式访问一个角色。其参数类似has_table_privilege,除了public不能用做用户名。访问权限类型必须是MEMBER或USAGE的一些组合。 MEMBER表示的是角色中的直接或间接成员关系(也就是SET ROLE的权限),而USAGE表示无需通过SET ROLE也直接拥有角色的使用权限。

    l has_any_privilege(user, privilege)

    描述:指定用户是否有某项ANY权限,若同时查询多个权限,只要具有其中一个则返回true。

    返回类型:Boolean

    表 参数类型说明

    参数名

    合法入参类型

    描述

    取值范围

    user

    name

    用户

    已存在的用户名。

    privilege

    text

    ANY权限

    可选取值:

    CREATE ANY TABLE [WITH ADMIN OPTION]

    ALTER ANY TABLE [WITH ADMIN OPTION]

    DROP ANY TABLE [WITH ADMIN OPTION]

    SELECT ANY TABLE [WITH ADMIN OPTION]

    INSERT ANY TABLE [WITH ADMIN OPTION]

    UPDATE ANY TABLE [WITH ADMIN OPTION]

    DELETE ANY TABLE [WITH ADMIN OPTION]

    CREATE ANY SEQUENCE [WITH ADMIN OPTION]

    CREATE ANY INDEX [WITH ADMIN OPTION]

    CREATE ANY FUNCTION [WITH ADMIN OPTION]

    EXECUTE ANY FUNCTION [WITH ADMIN OPTION]

    CREATE ANY PACKAGE [WITH ADMIN OPTION]

    EXECUTE ANY PACKAGE [WITH ADMIN OPTION]

    CREATE ANY TYPE [WITH ADMIN OPTION]

  • 相关阅读:
    Macronix MX25L25645G NOR Flash无法擦除问题分析
    【LittleXi】地址空间三题
    通过实例学习:使用Spring Cache实现实际场景的缓存策略
    OSPF路由协议
    第二十二章《记事本》第3节:项目完整代码
    3分钟登记流程3秒搞定,合合信息与腾讯云联合推出合规降本新方案
    MySQL迁移到达梦数据库实战(使用达梦的DTS迁移工具)
    制作耳机壳的UV树脂耳机壳UV胶和塑料材质有什么不同?
    题解:ABC321F - #(subset sum = K) with Add and Erase
    Android 虚拟分区详解(二) 虚拟分区布局
  • 原文地址:https://blog.csdn.net/futianxia061112/article/details/125496303