更新时间:2024-10-23 GMT+08:00
分享

DWS分配和授权

图1 DWS分配和授权

DWS库分为开发库和生产库,由数据库管理员统一创建;不同开发利用方通过schema进行隔离,每个开发利用方分配一个生产和一个开发schema。

创建DWS用户

平台运营方-运维人员使用SQL客户端工具或者JDBC等第三方驱动程序连接集群,访问集群中的数据库。

以使用DataStudio客户端工具连接DWS集群为例。

  1. 使用SQL客户端工具DataStudio连接集群。客户端下载和安装指导请参考https://support.huaweicloud.com/tg-dws/DWS_DS_006.html
  2. 使用DWS集群默认管理员账号dbadmin和密码,连接默认数据库gaussdb;
  3. 创建DWS用户:

    CREATE USER phjr_dev_admin PASSWORD 'password'; 
    CREATE USER phjr_prod_admin PASSWORD 'password';

    通过CREATE USER创建的用户,默认具有LOGIN权限;通过CREATE USER创建用户的同时系统会在执行该命令的数据库中,默认为该用户创建一个同名的schema,需要执行以下命令行收回该用户在同名schema的权限:

    REVOKE ALL ON ALL TABLES IN SCHEMA phjr_dev_admin FROM phjr_dev_admin; 
    REVOKE ALL ON ALL TABLES IN SCHEMA phjr_prod_admin FROM phjr_prod_admin;

    phjr为普惠金融开发利用方缩写示例,其他开发利用方请注意替换成其他名字。

创建数据库和Schema

  1. 平台运营方-运维人员使用管理员账号dbadmin连接默认数据库gaussdb;
  2. 创建运营平台开发和生产数据库dev_tianji_dws和prod_tianji_dws;

    CREATE DATABASE dev_tianji_dws; 
    CREATE DATABASE prod_tianji_dws;

    该步骤为一次性操作,如果已经创建则跳过即可。

  3. 创建schema。schema又称作模式,通过schema,允许多个用户使用同一数据库而不相互干扰。在dev_tianji_dws库下,执行如下命令来创建schema,并将权限授权给不同DWS用户;

    CREATE SCHEMA dev_tianji_dws.dev_shdg_phjr AUTHORIZATION phjr_dev_admin; 
    CREATE SCHEMA prod_tianji_dws.prod_shdg_phjr AUTHORIZATION phjr_prod_admin;

  4. 修改用户的默认查询路径,使用户登录到数据库时查找的默认schema为步骤3中创建的对应schema。

    ALTER USER phjr_dev_admin SET SEARCH_PATH to dev_shdg_phjr; 
    ALTER USER phjr_prod_admin SET SEARCH_PATH to prod_shdg_phjr;

    phjr为普惠金融开发利用方缩写示例,其他开发利用方场景请注意替换成其他名字。

(可选)Schema授权

【示例】以phjr场景下,开发人员账号访问公共数据schema为例。

  1. 使用dbadmin账号连接dev_tianji_dws数据库;
  2. 将Schema dev_shdg_dwd的权限赋给用户后,将公共数据Schema下,表public的select权限赋给phjr场景下的开发用户,DWS用户授权具体参照表1

    GRANT USAGE ON SCHEMA dev_shdg_dwd TO phjr_dev_admin; 
    GRANT SELECT ON TABLE dev_shdg_dwd.public TO phjr_dev_admin;

  3. 使用phjr_dev_admin账号连接dev_tianji_dws数据库,可对公共数据Schema进行SELECT相关操作。

    表1 DWS用户授权

    场景

    DWS用户

    Database

    Schema

    数据库管理员

    dbadmin

    dev_tianji_dws(创建者)

    prod_tianji_dws(创建者)

    dev_shdg_ods(创建者)

    dev_shdg_dwd(创建者)

    开发

    datagroup_dev_admin

    dev_tianji_dws

    dev_shdg_dataroup(ALL)

    dev_shdg_dwd(SELECT)

    phjr_dev_admin

    dev_tianji_dws

    dev_shdg_phjr(ALL)

    dev_shdg_dwd(SELECT)

    生产

    datagroup_prod_admin

    prod_tianji_dws

    prod_shdg_dataroup(ALL)

    prod_shdg_dwd(SELECT)

    phjr_prod_admin

    prod_tianji_dws

    prod_shdg_phjr(ALL)

    prod_shdg_dwd(SELECT)

    将Schema中的表或者视图对象授权给其他用户或角色时,需要将表或视图所属Schema的USAGE权限同时授予该用户或角色。否则用户或角色将只能看到这些对象的名字,并不能实际进行对象访问.

相关文档