Postgres行级安全RLS:USING/WITH CHECK与多租治理概览行级安全(RLS)在表级约束行的可见与可写;适合多租与敏感数据控制。需正确设计角色与策略,避免绕过与性能问题。技术参数(已验证)启用:`ALTER TABLE ... ENABLE ROW LEVEL SECURITY`;默认策略 `FOR ALL` 或特定命令。策略:`CREATE POLICY name USING (<read predicate>) WITH CHECK (<write predicate>)`;读与写分别约束。角色与 BYPASS:`pg_catalog.bypassrls` 可绕过;生产环境禁止授予;使用特定角色最小权限。应用上下文:通过 `SET app.current_tenant_id` 或 `jwt.claims.tenant_id`(外部扩展)在策略中引用。性能与索引:谓词应与索引匹配;避免复杂函数导致规划失败。实战清单为多租表按 `tenant_id` 编写 USING/WITH CHECK;提供管理角色与审计。在迁移与落地前进行基准与计划检查;记录拒绝与绕过事件。与视图与 API 契约协同,保持一致与可回滚。

发表评论 取消回复