日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

賬號和權限管理函數

本文介紹Hologres支持的賬號和權限管理函數。

類型

函數

功能

賬號管理函數

HG_DISPLAY_NAME_TO_ID

將郵箱形式或RAM形式的阿里云賬號轉換為阿里云賬號ID。

USER_DISPLAY_NAME

將阿里云賬號ID轉換為郵箱形式或RAM形式的阿里云賬號。

授權函數

APPLY_PRIVILEGES

用于在專家權限模型下,將源表給用戶授予的權限復制到目標表,目標表保持與源表一致的權限。

權限查詢函數

HAS_ANY_COLUMN_PRIVILEGE

確認當前用戶或指定用戶是否有指定表的任意列的特定權限。

HAS_COLUMN_PRIVILEGE

確認當前用戶是否有指定列的特定權限。

HAS_DATABASE_PRIVILEGE

確認當前用戶或指定用戶是否有指定數據庫的特定權限。

HAS_FOREIGN_DATA_WRAPPER_PRIVILEGE

確認當前用戶或指定用戶是否有外部數據包裝器的特定權限。

HAS_FUNCTION_PRIVILEGE

確認當前用戶或指定用戶是否有指定函數的特定權限。

HAS_LANGUAGE_PRIVILEGE

確認當前用戶或指定用戶是否有指定語言的特定權限。

HAS_SCHEMA_PRIVILEGE

確認當前用戶或指定用戶是否有指定的Schema的特定權限。

HAS_SERVER_PRIVILEGE

確認當前用戶或指定用戶是否有指定外部服務器的特定權限。

HAS_TABLE_PRIVILEGE

確認當前用戶或指定用戶是否有指定表的特定權限。

HAS_TABLESPACE_PRIVILEGE

確認當前用戶或指定用戶是否有指定表空間的特定權限。

HAS_TYPE_PRIVILEGE

確認當前用戶或指定用戶是否有特定類型(?如表、?視圖、?序列等)?的特定權限。

賬號管理函數

USER_DISPLAY_NAME

  • 描述:將阿里云賬號ID轉換為郵箱形式或RAM形式的阿里云賬號。

    SELECT USER_DISPLAY_NAME (user_name);
  • 參數說明

    user_name:必填,阿里云賬號ID。通常為數字形式,例如13532241323xxx或RAM用戶p4_23402030200xxx

  • 返回值說明

    返回值為郵箱形式或RAM形式的阿里云賬號,例如xx@aliyun.comRAM$mainaccount:subuserRAM$public

  • 示例

    --將指定賬號轉換為郵箱形式或RAM形式的阿里云賬號
    SELECT USER_DISPLAY_NAME ('13532241323xxx');

HG_DISPLAY_NAME_TO_ID

  • 描述:將郵箱形式或RAM形式的阿里云賬號轉換為阿里云賬號ID。

    SELECT HG_DISPLAY_NAME_TO_ID (aliyun_id);
  • 參數說明

    aliyun_id:必填,阿里云賬號。通常為郵箱形式或RAM形式,例如xx@aliyun.comRAM$mainaccount:subuserRAM$public

  • 返回值說明

    返回值為阿里云賬號ID,通常為數字形式,例如13532241323xxxp4_23402030200xxx

  • 示例

    SELECT HG_DISPLAY_NAME_TO_ID ('RAM$main:subuser');

授權函數

APPLY_PRIVILEGES

  • 描述:用于在專家權限模型下,將源表給用戶授予的權限復制到目標表,目標表保持與源表一致的權限。

    -- 將源表的權限復制給目標表,并且不回收目標表的權限,即不刪除目標表之前具有的權限規則
    CALL APPLY_PRIVILEGES('<old_table>','<new_table>', false);
    
    
    -- 將源表的權限復制給目標表,并且回收目標表的權限,即刪除目標表之前具有的權限規則
    CALL APPLY_PRIVILEGES('<old_table>','<new_table>');
    說明

    專家權限模型下,當使用CREATE TABLE LIKEINSERT OVERWRITE 、自動分區等創建新表時,新表的權限還需要重新再授予給用戶,通過APPLY_PRIVILEGES函數可以復制源表的所有用戶權限至新表,簡化授權操作。

  • 使用限制

    • 僅Hologres V1.1.48及以上版本支持APPLY_PRIVILEGES函數,如果您的實例是V1.1.48以下版本,請您使用自助升級或加入Hologres釘釘交流群反饋,詳情請參見如何獲取更多的在線支持?

    • 需要數據庫開啟專家權限模型,如果您開啟的是SPM或者SLPM請轉換為專家權限模型,詳情請參見權限模型轉換

    • 調用函數需要具有目標表的GRANT、REVOKE權限。

    • APPLY_PRIVILEGES的目標表是分區表時,只對父表復制權限,不影響子表訪問控制權限。

  • 參數說明

    • old_table:必填,源表名稱,即被復制權限的表名稱。

    • new_table:必填,目標表名稱,即獲得權限的表名稱。

  • 示例

    -- 將test_table1 ACL授權信息、owner信息應用到test_table2上, false代表不對test_table2之前具有的權限規則進行刪除
    CALL APPLY_PRIVILEGES('test_table1','test_table2', false);
    
    -- 將test_table1 ACL授權信息、owner信息應用到test_table2上,對test_table2之前具有的權限規則進行刪除,保持兩表的權限完全一致
    CALL APPLY_PRIVILEGES('test_table1','test_table2');

權限查詢函數

示例數據

權限查詢函數相關的示例均基于test示例數據。以下是創建表test并添加數據的命令示例。

CREATE TABLE test (
    a INT
);
INSERT INTO test (a) VALUES (1);
INSERT INTO test (a) VALUES (2);
INSERT INTO test (a) VALUES (3);

HAS_ANY_COLUMN_PRIVILEGE

  • 描述:確認當前用戶或指定用戶是否有指定表的任意列的特定權限。

    HAS_ANY_COLUMN_PRIVILEGE([user, ]table, privilege)
  • 參數說明

    • user:可選,賬號名稱或賬號ID。

    • table:必填,表名稱。

    • privilege:必填,權限類型,也可以用逗號分隔列出的多個權限類型。取值為:SELECT、INSERT、UPDATE、REFERENCES。

  • 返回值說明

    返回BOOLEAN類型,若當前用戶或指定用戶有訪問表任何列的權限,則返回true(t);反之返回false(f)。

  • 示例

    SELECT HAS_ANY_COLUMN_PRIVILEGE('139699392458****', 'test' , 'SELECT,INSERT,UPDATE,REFERENCES');

    返回結果如下。

     has_any_column_privilege
    --------------------------
     t

HAS_COLUMN_PRIVILEGE

  • 描述:確認當前用戶是否有指定列的特定權限。

    HAS_COLUMN_PRIVILEGE(table, column, privilege)
  • 參數說明

    • table:必填,表名稱。

    • column:必填,列名稱。

    • privilege:必填,權限類型,也可以用逗號分隔列出的多個權限類型。取值為:SELECT、INSERT、UPDATE、REFERENCES。

  • 返回值說明

    返回BOOLEAN類型,若當前用戶有訪問列的權限,則返回true(t);反之返回false(f)。

  • 示例

    SELECT HAS_COLUMN_PRIVILEGE('test' , 'a', 'SELECT,INSERT,UPDATE,REFERENCES');

    返回結果如下。

     has_column_privilege
    ----------------------
     t

HAS_DATABASE_PRIVILEGE

  • 描述:確認當前用戶或指定用戶是否有指定數據庫的特定權限。

    HAS_DATABASE_PRIVILEGE([user, ]database, privilege)
  • 參數說明

    • user:可選,賬號名稱或賬號ID。

    • database:必填,數據庫名稱。

    • privilege:必填,權限類型,也可以用逗號分隔列出的多個權限類型。取值如下:CREATE、TEMPORARY、TEMP。

  • 返回值說明

    返回BOOLEAN類型,若當前用戶或指定用戶有指定數據庫的權限,則返回true(t);反之返回false(f)。

  • 示例

    SELECT HAS_DATABASE_PRIVILEGE('glz', 'CREATE,TEMPORARY,TEMP');---替換為自己創建的數據庫名稱

    返回結果如下。

     has_database_privilege
    ------------------------
     t

HAS_FOREIGN_DATA_WRAPPER_PRIVILEGE

  • 描述:確認當前用戶或指定用戶是否有外部數據包裝器的特定權限。

    HAS_FOREIGN_DATA_WRAPPER_PRIVILEGE([user, ]fdw, privilege)
  • 參數說明

    • user:可選,賬號名稱或賬號ID。

    • fdw:必填,外部數據封裝器名字或ID。

    • privilege:必填,權限類型,也可以用逗號分隔列出的多個權限類型。取值為:USAGE。

  • 返回值說明

    返回BOOLEAN類型,若當前用戶或指定用戶有外部數據包裝器的權限,則返回true(t);反之返回false(f)。

  • 示例

    SELECT HAS_FOREIGN_DATA_WRAPPER_PRIVILEGE('dlf_fdw', 'USAGE');--將dlf_fdw替換為自己已創建外部數據封裝器。

    返回結果如下。

     has_foreign_data_wrapper_privilege
    ------------------------------------
     t

HAS_FUNCTION_PRIVILEGE

  • 描述:確認當前用戶或指定用戶是否有指定函數的特定權限。

    has_function_privilege([user, ]function, privilege)
  • 參數說明

    • user:可選,賬號名稱或賬號ID。

    • function:必填,函數名稱。

    • privilege:必填,權限類型,也可以用逗號分隔列出的多個權限類型。取值為:EXECUTE。

  • 返回值說明

    返回BOOLEAN類型,若當前用戶或指定用戶有指定函數的操作權限,則返回true(t);反之返回false(f)。

  • 示例

    SELECT has_function_privilege('now()', 'EXECUTE');

    返回結果如下。

     has_function_privilege
    ------------------------
     t

HAS_LANGUAGE_PRIVILEGE

  • 描述:確認當前用戶或指定用戶是否有指定語言的特定權限。

    HAS_LANGUAGE_PRIVILEGE([user, ]language, privilege)
  • 參數說明

    • user:可選,賬號名稱或賬號ID。

    • language:必填,語言名稱。

    • privilege:必填,權限類型,也可以用逗號分隔列出的多個權限類型。取值為:USAGE。

  • 返回值說明

    返回BOOLEAN類型,若當前用戶或指定用戶有語言權限,則返回true(t);反之返回false(f)。

  • 示例

    SELECT HAS_LANGUAGE_PRIVILEGE('plpgsql', 'USAGE');

    返回結果如下。

     has_language_privilege
    ------------------------
     t

HAS_SCHEMA_PRIVILEGE

  • 描述:確認當前用戶或指定用戶是否有指定的Schema的特定權限。

    HAS_SCHEMA_PRIVILEGE([user, ]schema, privilege)
  • 參數說明

    • user:可選,賬號名稱或賬號ID。

    • schema:必填,Schema名稱。

    • privilege:必填,權限類型,也可以用逗號分隔列出的多個權限類型。取值為:CREATE、USAGE。

  • 返回值說明

    返回BOOLEAN類型,若當前用戶或指定用戶有指定的Schema權限,則返回true(t);反之返回false(f)。

  • 示例

    SELECT HAS_SCHEMA_PRIVILEGE('public', 'CREATE,USAGE');

    返回結果如下。

     has_schema_privilege
    ----------------------
     t

HAS_SERVER_PRIVILEGE

  • 描述:確認當前用戶或指定用戶是否有指定外部服務器的特定權限。

    HAS_SERVER_PRIVILEGE([user, ]server, privilege)
  • 參數說明

    • user:可選,賬號名稱或賬號ID。

    • server:必填,外部服務器名稱。

    • privilege:必填,權限類型,也可以用逗號分隔列出的多個權限類型。取值為:USAGE。

  • 返回值說明

    返回BOOLEAN類型,若當前用戶或指定用戶有外部服務器的權限,則返回true(t);反之返回false(f)。

  • 示例

    SELECT HAS_SERVER_PRIVILEGE('meta_warehouse_server', 'USAGE');

    返回結果如下。

     has_server_privilege
    ----------------------
     t

HAS_TABLE_PRIVILEGE

  • 描述:確認當前用戶或指定用戶是否有指定表的特定權限。

    HAS_TABLE_PRIVILEGE([user, ]table, privilege)
  • 參數說明

    • user:可選,賬號名稱或賬號ID。

    • table:必填,表名稱。

    • privilege:必填,權限類型,也可以用逗號分隔列出的多個權限類型。取值為:SELECT、INSERT、UPDATE、DELETE、TRUNCATE。

  • 返回值說明

    返回BOOLEAN類型,若當前用戶或指定用戶有指定表的操作權限,則返回true(t);反之返回false(f)。

  • 示例

    SELECT HAS_TABLE_PRIVILEGE('test', 'SELECT,INSERT');

    返回結果如下。

     has_table_privilege
    ---------------------
     t

HAS_TABLESPACE_PRIVILEGE

  • 描述:確認當前用戶或指定用戶是否有指定表空間的特定權限。

    HAS_TABLESPACE_PRIVILEGE([user, ]tablespace, privilege)
  • 參數說明

    • user:可選,賬號名稱或賬號ID。

    • tablespace:必填,表空間名稱。

    • privilege:必填,權限類型,也可以用逗號分隔列出的多個權限類型。取值為:CREATE。

  • 返回值說明

    返回BOOLEAN類型,若當前用戶或指定用戶有表空間權限,則返回true(t);反之返回false(f)。

  • 示例

    SELECT HAS_TABLESPACE_PRIVILEGE('pg_default', 'CREATE');

    返回結果如下。

     has_table_privilege
    ---------------------
     t

HAS_TYPE_PRIVILEGE

  • 描述:確認當前用戶或指定用戶是否有特定類型(?如表、?視圖、?序列等)?的特定權限。

    HAS_TYPE_PRIVILEGE([user, ]type, privilege)
  • 參數說明

    • user:可選,賬號名稱或賬號ID。

    • type:必填,類型名稱。

    • privilege:必填,權限類型,也可以用逗號分隔列出的多個權限類型。

  • 返回值說明

    返回BOOLEAN類型,若當前用戶或指定用戶有特定類型(?如表、?視圖、?序列等)?的權限,則返回true(t);反之返回false(f)。

  • 示例

    SELECT HAS_TYPE_PRIVILEGE('test', 'USAGE');

    返回結果如下。

     has_type_privilege
    --------------------
     t