DWS分配和授权
DWS库分为开发库和生产库,由数据库管理员统一创建;不同开发利用方通过schema进行隔离,每个开发利用方分配一个生产和一个开发schema。
创建DWS用户
平台运营方-运维人员使用SQL客户端工具或者JDBC等第三方驱动程序连接集群,访问集群中的数据库。
以使用DataStudio客户端工具连接DWS集群为例。
- 使用SQL客户端工具DataStudio连接集群。客户端下载和安装指导请参考https://support.huaweicloud.com/tg-dws/DWS_DS_006.html
- 使用DWS集群默认管理员账号dbadmin和密码,连接默认数据库gaussdb;
- 创建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
- 平台运营方-运维人员使用管理员账号dbadmin连接默认数据库gaussdb;
- 创建运营平台开发和生产数据库dev_tianji_dws和prod_tianji_dws;
CREATE DATABASE dev_tianji_dws; CREATE DATABASE prod_tianji_dws;
该步骤为一次性操作,如果已经创建则跳过即可。
- 创建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;
- 修改用户的默认查询路径,使用户登录到数据库时查找的默认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为例。
- 使用dbadmin账号连接dev_tianji_dws数据库;
- 将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;
- 使用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权限同时授予该用户或角色。否则用户或角色将只能看到这些对象的名字,并不能实际进行对象访问.