关于权限控制:Redash中文版以PostgreSQL为例设置用户权限

10次阅读

共计 1348 个字符,预计需要花费 4 分钟才能阅读完成。

作为一款数据可视化软件,用户更多的是利用 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;

执行后发现可能查问到指定数据,因为咱们仅申请了只读用户有权查问的列名。

正文完
 0