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

CREATE USER MAPPING

Hologres從V3.0版本開始,支持給實例內賬號配置RAMRole的映射關系,登錄賬號通過扮演一個RAMRole來實現跨賬號訪問外部系統,當前僅支持使用RAMRole的方式訪問DLF2.0數據源和其他Hologres實例。本文為您介紹CREATE USER MAPPING的用法及限制條件。

背景信息

User Mapping定義了Hologres登錄用戶和阿里云賬號的映射關系,允許Hologres當前用戶(包括BASIC用戶)通過User Mapping的方式跨賬號訪問外部服務,如MaxCompute、DLF、OSS以及Hologres跨庫查詢。詳情請參見PostgreSQL CREATE USER MAPPING

使用限制

  • 授予普通用戶權限需要具備Hologres實例的SuperUser權限或Foreign Server的Owner權限,以及擁有Foreign Server Usage權限的用戶也可以為自己創建User Mapping。

  • MaxCompute數據源和DLF1.0不支持以RAMRole方式配置User Mapping。

語法說明

External Database配置方式

MaxCompute數據源

  • 語法

    CREATE USER MAPPING FOR "<user_name>"
    EXTERNAL DATABASE <ext_db_name>
    OPTIONS
    (
        access_id '<Access_id>',
        access_key '<Access_key>'
    );
  • 參數說明

    參數名稱

    描述

    user_name

    待授權的賬號,比如其他RAM用戶(子賬號)、Hologres內部賬號(BASIC賬號)、public(面向所有用戶公開訪問,請謹慎操作)。

    Access_id

    當前訪問賬號的AccessKey ID,您可以單擊RAM控制臺,獲取AccessKey ID。

    Access_key

    當前訪問賬號的AccessKey Secret。

DLF數據源

  • 語法

    CREATE USER MAPPING FOR "<user_name>"
    EXTERNAL DATABASE <ext_db_name>
    OPTIONS
    (
        -- For DLF1.0
        [dlf_access_id 'LTxxxxxxxxxx',
        dlf_access_key 'y8xxxxxxxxxxxxx',
        oss_access_id 'LTxxxxxxxxxx',
        oss_access_key 'y8xxxxxxxxxxxxx'] 
    
        -- For DLF2.0
        [dlf_access_id 'LTxxxxxxxxxx',
        dlf_access_key 'y8xxxxxxxxxxxxx'] | 
        [rolearn 'RoleARN']
    );
    說明

    當使用RoleARN方式配置User Mapping時,需要在RAM側配置權限策略hologram::GrantAssumeRoleHologres通過該策略判斷當前用戶是否具備創建對應RoleARN的User Mapping的權限。具備該權限的用戶,可以在Hologres中為任意用戶創建到對應RoleARN的User Mapping示例如下:

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "hologram:GrantAssumeRole",
          "Resource": "<Role_ARN>"
        }
      ]
    }
  • 參數說明

    參數名稱

    描述

    user_name

    待授權的賬號,比如其他RAM用戶(子賬號)、Hologres內部賬號(BASIC賬號)、public(面向所有用戶公開訪問,請謹慎操作)。

    ext_db_name

    使用CREATE EXTERNAL DATABASE在Hologres實例中創建的外部數據庫,用來加載外部數據源的元數據到Hologres,詳情請參見CREATE EXTERNAL DATABASE

    access_id

    當前訪問賬號的AccessKey ID,您可以單擊RAM控制臺,獲取AccessKey ID。

    access_key

    當前訪問賬號的AccessKey Secret。

    dlf_access_id

    擁有讀寫DLF權限的阿里云賬號或RAM賬號的AccessKey ID。

    dlf_access_key

    擁有讀寫DLF權限的阿里云賬號或RAM賬號的AccessKey Secret。

    oss_access_id

    擁有讀寫OSS權限的阿里云賬號或RAM賬號的AccessKey ID。

    oss_access_key

    擁有讀寫OSS權限的阿里云賬號或RAM賬號的AccessKey Secret。

    rolearn

    角色ARN是角色的全局資源描述符,用來指定具體的角色,格式為acs:ram::<account-id>:role/<role-name>。其中,<role-name>部分會將角色的名稱全部轉換為小寫。關于如何查看角色ARN,詳情請參見查看RAM角色

查詢外部數據庫已配置的USER MAPPING

SELECT
    datname,
    usename,
    eumoptions
FROM
    pg_holo_external_user_mappings;

Foreign Server配置方式

MaxCompute數據源

  • 語法

    CREATE USER MAPPING FOR "<user_name>"
    SERVER odps_server  -- 固定server
    OPTIONS
    (  
       access_id '<access_id>', 
       access_key '<access_key>'
    );
  • 參數說明

    參數名稱

    描述

    user_name

    待授權的賬號,比如其他RAM用戶(子賬號)、Hologres內部賬號(BASIC賬號)、public(面向所有用戶公開訪問,請謹慎操作)。

    access_id

    當前訪問賬號的AccessKey ID,您可以單擊RAM控制臺,獲取AccessKey ID。

    access_key

    當前訪問賬號的AccessKey Secret。

DLF數據源

  • 語法

    CREATE USER MAPPING FOR "<user_name>"
    SERVER <server_name>
    OPTIONS
    (
        -- For DLF1.0
        [dlf_access_id 'LTxxxxxxxxxx',
        dlf_access_key 'y8xxxxxxxxxxxxx',
        oss_access_id 'LTxxxxxxxxxx',
        oss_access_key 'y8xxxxxxxxxxxxx'] 
    
        -- For DLF2.0
        [dlf_access_id 'LTxxxxxxxxxx',
        dlf_access_key 'y8xxxxxxxxxxxxx'] | 
        [rolearn 'RoleARN']
    );
  • 參數說明

    參數名稱

    描述

    user_name

    待授權的賬號,比如其他RAM用戶(子賬號)、Hologres內部賬號(BASIC賬號)、public(面向所有用戶公開訪問,請謹慎操作)。

    server_name

    Foriegn Server的名稱,上一步驟自定義設置的名稱,MaxCompute數據源是固定的內置server: odps_server。詳情請參見創建Foreign Server

    access_id

    當前訪問賬號的AccessKey ID,您可以單擊RAM控制臺,獲取AccessKey ID。

    access_key

    當前訪問賬號的AccessKey Secret。

    dlf_access_id

    擁有讀寫DLF權限的阿里云賬號或RAM賬號的Accesskey ID。

    dlf_access_key

    擁有讀寫DLF權限的阿里云賬號或RAM賬號的Accesskey Secret。

    oss_access_id

    擁有讀寫OSS權限的阿里云賬號或RAM賬號的Accesskey ID。

    oss_access_key

    擁有讀寫OSS權限的阿里云賬號或RAM賬號的Accesskey Secret。

    rolearn

    角色ARN是角色的全局資源描述符,用來指定具體的角色,格式為acs:ram::<account-id>:role/<role-name>。其中,<role-name>部分會將角色的名稱全部轉換為小寫。關于如何查看角色ARN,請參見查看RAM角色

Hologres數據源

  • 語法

    CREATE USER MAPPING FOR "<user_name>"
    SERVER <server_name>
    OPTIONS (
      access_id '<access_id>', 
      access_key '<access_key>'
    );
  • 參數說明

    參數名稱

    描述

    user_name

    待授權的賬號,比如其他RAM用戶(子賬號)、Hologres內部賬號(BASIC賬號)、public(面向所有用戶公開訪問,請謹慎操作)。

    server_name

    Hologres實現跨庫查詢所創建的Server。詳情請參見跨庫查詢(Beta)

    access_id

    當前訪問賬號的AccessKey ID,您可以單擊RAM控制臺,獲取AccessKey ID。

    access_key

    當前訪問賬號的AccessKey Secret。

查詢內部數據庫已配置的USER MAPPING

SELECT
    um.srvname AS "Server",
    um.usename AS "User name"
FROM
    pg_catalog.pg_user_mappings um
WHERE
    um.srvname != 'query_log_store_server'
ORDER BY 1, 2;

使用示例

EXTERNAL DATABASE(推薦)

  1. 以DLF2.0數據源為例,首先創建一個External Database來關聯DLF上的Paimon Catalog。

    CREATE EXTERNAL DATABASE ext_db_dlf
    WITH 
      metastore_type 'dlf-paimon' 
      catalog_type 'paimon' 
      dlf_region 'cn-hangzhou' 
      dlf_endpoint 'dlfnext-share.cn-hangzhou.aliyuncs.com' 
      dlf_catalog 'clg-paimon-d241aee***********'; 
  2. 創建完成后,該外部Database僅實例Superuser和DB Owner可訪問,其他賬號無法訪問,接下來通過在RAM控制臺創建RAMRole和Hologres側CREATE USER MAPPING來給一個RAM用戶(子賬號)授權。

    1. RAM側新建角色并完成策略配置。

      1. 登錄RAM控制臺,單擊角色>創建角色,可信實體類型選擇阿里云服務,角色類型選擇普通服務角色,輸入角色名稱,選擇受信服務交互式分析,單擊完成

      2. 進入權限策略頁面,單擊創建權限策略>腳本編輯分別創建用于Hologres和DLF做權限檢查的策略策略內容如下。

        Hologres需要的權限檢查策略。

        {
            "Version": "1",
            "Statement": [
                {
                    "Effect": "Allow",
                    "Action": "hologram:GrantAssumeRole",
                    "Resource": "acs:ram::xxx:role/testramrole"
                }
            ]
        }

        DLF需要的權限檢查策略。

        {
            "Version": "1",
            "Statement": [
                {
                    "Action": "dlf:CheckPermissions",
                    "Resource": "*",
                    "Effect": "Allow"
                }
            ]
        }
      3. 進入角色頁面,單擊新增授權,添加上述兩個權限策略。

        role2222

    2. Hologres側通過CREATE USER MAPPING將ext_db_dlf數據庫的權限授予RAM用戶(子賬號)。

      CREATE USER MAPPING FOR "p4_203535926287167253"
      EXTERNAL DATABASE ext_db_dlf
      OPTIONS
      (
          rolearn 'acs:ram::xxx:role/testramrole'
      );
  3. 使用子賬號登錄Hologres控制臺,使用SQL編輯器進行查詢。

    SELECT * FROM ext_db_dlf.dlf_db.paimon_table;

Foreign Server

以MaxCompute數據源為例,給一個Hologres BASIC賬號授予訪問MC外部表的權限。

  1. 在Hologres中創建BASIC賬號。

    CREATE USER basicuser;
  2. 給BASIC賬號授予odps_server的訪問權限。

    CREATE USER MAPPING
    FOR "basicuser"
    SERVER odps_server
    OPTIONS
    (
        access_id 'LTxxxxxxxxxx',
        access_key 'y8xxxxxxxxxxxxx'
    );