--- title: PostgreSQL Row-Level Security(RLS) 与策略实践 keywords: RLS, ENABLE ROW LEVEL SECURITY, CREATE POLICY, USING, WITH CHECK description: 启用行级安全并为多租户数据创建策略,结合会话变量实现按租户隔离的读写控制。 tags: - CREATE POLICY - ENABLE ROW LEVEL SECURITY - PostgreSQL - RLS - USING - WITH CHECK - 安全 - 数据库 categories: - 应用软件 - 安全杀毒 --- 启用 RLS: ``` ALTER TABLE public.orders ENABLE ROW LEVEL SECURITY; ``` 创建策略(按会话变量 tenant_id 过滤): ``` CREATE POLICY orders_rls ON public.orders USING (tenant_id = current_setting('app.tenant_id')::int) WITH CHECK (tenant_id = current_setting('app.tenant_id')::int); ``` 设置会话并验证: ``` SET app.tenant_id = '1'; SELECT * FROM public.orders; INSERT INTO public.orders(id, tenant_id, amount) VALUES (1001, 1, 9.99); ```

发表评论 取消回复