作为一款数据可视化软件,用户更多的是利用Redash中文版来查找分析数据源,而不需要编辑变更数据内容,在建立数据源时,配置一个带有权限控制的数据库用户,能更好地保障数据安全,避免用户误操作导致丢失数据。下面以PostgreSQL数据源为例,演示如何配置只读数据模式。
首先创建一个新数据库命名为business,拥有者为admin,数据库中建立三个表Employees,jobs和customers,并填入数据。数据库管理员能控制公共用户的所有权限,直接撤消公共角色的权限会影响当前所有用户和角色。因此在实际架构中,处理方式一般是在数据库中设置一部分只读权限的角色,同时系统也保留其他不同权限的角色。
1、建立只读角色 readonly
CREATE ROLE readonly;
GRANT CONNECT ON DATABASE defaultbusiness TO readonly;
GRANT USAGE ON SCHEMA business TO readonly;
在PostgreSQL的操作中,在PostgreSQL的操作中,配置只允许访问usage模式中包含的对象,因此只读模式中查找功能将不受影响。
2、授予新角色权限
GRANT SELECT ON TABLE "business"."employees" TO readonly;
GRANT SELECT ON TABLE "business"."jobs" TO readonly;
GRANT SELECT (id, name) ON TABLE business.customers TO readonly;
前两条语句是对employees和jobs表赋予完全读取权限。
第三条语句限制readonly角色仅能查看customers表的ID和姓名,表中的所有其他字段均被隐藏,customers其他信息字段数据只能由管理员查看,这样可确保系统中其他的用户不会有意地看到该数据。如果用户尝试执行SELECT * FROM business,数据库将引发权限错误,只有查询ID和名称字段能显示出来。
3、在数据库中创建名为redash_user的只读用户,用于连接到Redash中文版
CREATE USER redash_user WITH PASSWORD 'secret';
GRANT readonly TO redash_user;
添加数据源时设置界面需要填写用户名redash_user,“secret”表示数据库密码,这里可以设置一个较强的密码来替换。
4、使用新的只读用户连接到Postgres
连接Redash中文版很简单。只需提供主机名,端口和数据库用户名、密码即可,示例如下。

接下来,我们可以执行一些查询来检查权限情况:
SELECT * FROM business.employees

能够返回数据。
下面执行:
INSERT INTO business.employees(name) VALUES ('Hal')

权限错误!该readonly角色不允许插入数据。
执行从customers表中查询:SELECT * FROM business.customers;

返回权限错误,因为只读角色只能访问特定的列。
执行:SELECT id, name FROM my.customers;

执行后发现能够查询到指定数据,因为我们仅请求了只读用户有权查询的列名。
编辑推荐:
- Redash中文版以PostgreSQL为例设置用户权限03-14
- PostgreSQL 源码解读(252)- PG 14(Improving connection scalability)#403-14
- PostgreSQL 源码解读(253)- PG 14(Improving connection scalability)#503-14
- PostgreSQL:RULE03-14
- PostgreSQL:模式匹配操作符03-14
- PostgreSQL:LISTEN | NOTIFY03-14
- PostgreSQL:您可能需要增加MAX_LOCKS_PER_TRANSACTION03-14
- postgresql:pgbench基准性能测试03-14
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- Redash中文版以PostgreSQL为例设置用户权限
Redash中文版以PostgreSQL为例设置用户权限
26-03-14 - postgresql:pgbench基准性能测试
postgresql:pgbench基准性能测试
26-03-14 - PostgreSQL email list:nvm wal buffer
PostgreSQL email list:nvm wal buffer
26-03-14 - RockyLinux sg命令详解(以其他组身份安全执行命令的完整教程)
RockyLinux sg命令详解(以其他组身份安全执行命令的完整教程)
26-03-14 - PostgreSQL:表
PostgreSQL:表
26-03-14 - PostgreSQL:锁
PostgreSQL:锁
26-03-14 - PostgreSQL TPROC-C基准测试:PostgreSQL 12与PostgreSQL 13性能对比
- 流复制
流复制
26-03-14 - 大会倒计时|2020 PostgreSQL亚洲大会-中文分论坛议程安排
大会倒计时|2020 PostgreSQL亚洲大会-中文分论坛议程安排
26-03-14 - 嘉宾专访|2020 PostgreSQL亚洲大会阿里云数据库专场:樊文凯
嘉宾专访|2020 PostgreSQL亚洲大会阿里云数据库专场:樊文凯
26-03-14
