共计 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;
执行后发现可能查问到指定数据,因为咱们仅申请了只读用户有权查问的列名。