更新时间:2023-03-08 GMT+08:00
如何创建数据库只读用户?
场景介绍
在业务开发场景中,数据库管理员通过SCHEMA来划分不同的业务,例如在金融行业中,负债业务属于SCHEMA s1,资产业务属于SCHEMA s2。
当前需要在数据库中创建一个只读用户user1,允许这个用户访问负债业务SCHEMA s1下所有的表(包括未来创建的新表),供日常读取,但是不允许做数据插入、修改或删除。
实现原理
DWS有基于角色的用户管理,需要先创建一个的只读角色role1,再将对应的角色授权到实际的用户user1即可。
操作步骤
- 使用系统管理员dbadmin连接DWS数据库。
- 执行以下SQL语句创建角色role1。
1
CREATE ROLE role1 PASSWORD disable;
- 执行以下SQL语句,为角色role1进行授权。
1 2 3
GRANT usage ON SCHEMA s1 TO role1; --赋予SCHEMA s1的访问权限; GRANT select ON ALL TABLES IN SCHEMA s1 TO role1; --赋予SHCEMA s1下所有表的查询权限; ALTER DEFAULT PRIVILEGES FOR USER tom IN SCHEMA s1 GRANT select ON TABLES TO role1; --赋予SCHEMA s1未来创建的表的权限,其中tom为SCHEMA s1的owner
- 执行以下SQL语句,将角色role1授权到实际用户user1。
1
GRANT role1 TO user1;
- 使用只读用户user1进行SCHAMA s1下所有表数据的日常读取。
父主题: 帐户、密码、权限