文档首页/ 数据仓库服务 GaussDB(DWS)/ 故障排除/ 数据导入/导出/ 执行创建OBS外表的SQL语句时,提示Access Denied
更新时间:2024-07-01 GMT+08:00

执行创建OBS外表的SQL语句时,提示Access Denied

问题现象

执行创建OBS外表的SQL语句时,返回OBS错误信息,提示访问被拒绝“Access Denied”。

原因分析

  • 创建OBS外表语句中的访问密钥AK和SK错误,会出现如下所示的错误信息:
    1
    ERROR: Fail to connect OBS in node:cn_5001 with error code: AccessDenied
    
  • 账户OBS权限不足,对OBS桶没有读、写权限,会出现如下所示的错误信息:
    1
    dn_6001_6002: Datanode 'dn_6001_6002' fail to read OBS object bucket:'obs-bucket-name' key:'xxx/xxx/xxx.csv' with OBS error code:AccessDenied message: Access Denied
    

    默认情况下,您不具备访问其他账号的OBS数据的权限,此外,IAM用户(相当于子用户)也不具备访问其所属账号的OBS数据的权限。

处理方法

  • 创建OBS外表语句中的访问密钥AK和SK错误

    请获取正确的访问密钥AK和SK,写入创建OBS外表的SQL语句中。获取访问密钥的步骤如下:

    1. 登录GaussDB(DWS)管理控制台。
    2. 将鼠标移至右上角的用户名,单击“我的凭证”。
    3. 进入“我的凭证”后,在左侧导航树单击“访问密钥”。

      在访问密钥页面,可以查看已有的访问密钥ID(即AK)。

    4. 如果要同时获取AK和SK,单击“新增访问密钥”创建并下载访问密钥。
  • 账户OBS权限不足,对OBS桶没有读、写权限

    您必须给指定的用户授予所需的OBS访问权限:

    • 通过OBS外表导入数据到GaussDB(DWS)时,执行导入操作的用户必须具备数据源文件所在的OBS桶和对象的读取权限。
    • 通过OBS外表导出数据时,执行导出操作的用户必须具备数据导出路径所在的OBS桶和对象的读取和写入权限。

    有关配置OBS权限的具体操作,请参见《对象存储服务控制台指南》中的配置桶ACL“配置对象ACL”章节。