【发布时间】:2021-03-01 12:04:38
【问题描述】:
是否可以将权限授予仅对 PostGIS 上的特定几何有效的用户? 例如,我有一个包含整个美国许多表的数据库,我想限制用户查看和更新特定状态。有没有办法 - 不添加状态列 - 来实现这一目标?如果不是,您建议使用哪种设置(即中间件)?
【问题讨论】:
是否可以将权限授予仅对 PostGIS 上的特定几何有效的用户? 例如,我有一个包含整个美国许多表的数据库,我想限制用户查看和更新特定状态。有没有办法 - 不添加状态列 - 来实现这一目标?如果不是,您建议使用哪种设置(即中间件)?
【问题讨论】:
您可以使用行级安全性:
ALTER TABLE mygeoms ENABLE ROW LEVEL SECURITY;
ALTER TABLE mygeoms FORCE ROW LEVEL SECURITY;
CREATE POLICY only_in_area ON mygeoms
FOR ALL TO some_role
USING (to_contains(GEOMETRY 'SRID=4326;POLYGON((...)), geom_col);
那么some_role只能看到和修改满足条件的行。
几何列上的 GiST 索引可以加快处理速度。
【讨论】: