---

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

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部