Skip to content

Commit 3aa59b0

Browse files
committed
fix: add RLS policies for spatial_ref_sys table
1 parent ce77dd9 commit 3aa59b0

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

server/database/sql/1.rls-policies.sql

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,3 +145,33 @@ CREATE POLICY "Block deletes on category_hierarchies"
145145
ON category_hierarchies FOR DELETE
146146
TO anon, authenticated
147147
USING (false);
148+
149+
-- ================================================
150+
-- SPATIAL_REF_SYS (PostGIS system table)
151+
-- ================================================
152+
-- Public EPSG coordinate system definitions
153+
-- Read-only for app roles, managed by PostGIS extension
154+
ALTER TABLE spatial_ref_sys ENABLE ROW LEVEL SECURITY;
155+
156+
DROP POLICY IF EXISTS "spatial_ref_sys_select_anon" ON spatial_ref_sys;
157+
DROP POLICY IF EXISTS "spatial_ref_sys_select_authenticated" ON spatial_ref_sys;
158+
DROP POLICY IF EXISTS "spatial_ref_sys_select_service_role" ON spatial_ref_sys;
159+
160+
CREATE POLICY "spatial_ref_sys_select_anon" ON spatial_ref_sys FOR SELECT TO anon USING (true);
161+
CREATE POLICY "spatial_ref_sys_select_authenticated" ON spatial_ref_sys FOR SELECT TO authenticated USING (true);
162+
CREATE POLICY "spatial_ref_sys_select_service_role" ON spatial_ref_sys FOR SELECT TO service_role USING (true);
163+
164+
-- Block writes from app roles
165+
DROP POLICY IF EXISTS "spatial_ref_sys_no_insert_anon" ON spatial_ref_sys;
166+
DROP POLICY IF EXISTS "spatial_ref_sys_no_insert_authenticated" ON spatial_ref_sys;
167+
DROP POLICY IF EXISTS "spatial_ref_sys_no_update_anon" ON spatial_ref_sys;
168+
DROP POLICY IF EXISTS "spatial_ref_sys_no_update_authenticated" ON spatial_ref_sys;
169+
DROP POLICY IF EXISTS "spatial_ref_sys_no_delete_anon" ON spatial_ref_sys;
170+
DROP POLICY IF EXISTS "spatial_ref_sys_no_delete_authenticated" ON spatial_ref_sys;
171+
172+
CREATE POLICY "spatial_ref_sys_no_insert_anon" ON spatial_ref_sys FOR INSERT TO anon WITH CHECK (false);
173+
CREATE POLICY "spatial_ref_sys_no_insert_authenticated" ON spatial_ref_sys FOR INSERT TO authenticated WITH CHECK (false);
174+
CREATE POLICY "spatial_ref_sys_no_update_anon" ON spatial_ref_sys FOR UPDATE TO anon USING (false);
175+
CREATE POLICY "spatial_ref_sys_no_update_authenticated" ON spatial_ref_sys FOR UPDATE TO authenticated USING (false);
176+
CREATE POLICY "spatial_ref_sys_no_delete_anon" ON spatial_ref_sys FOR DELETE TO anon USING (false);
177+
CREATE POLICY "spatial_ref_sys_no_delete_authenticated" ON spatial_ref_sys FOR DELETE TO authenticated USING (false);

0 commit comments

Comments
 (0)