---
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);

发表评论 取消回复