⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

行级安全策略的继承与多层组织架构权限控制

设计一套支持多级部门的数据权限模型,利用RLS策略的继承特性和current_setting实现动态上下文权限。 · 难度:入门 · +10XP

RLS进阶:组织架构权限树

本教程实现三层权限:员工只能看自己数据,主管看本部门,经理看所有下属部门。利用CREATE POLICYUSING表达式结合递归CTE查询部门树。关键点:使用app.user_role自定义GUC参数传递用户角色,通过pg_has_role检查角色继承。演示如何防止RLS被超级用户绕过(需设置force_parallel_mode)。

CREATE POLICY dept_access ON employee_records FOR ALL TO PUBLIC USING (
    emp_dept IN (
        WITH RECURSIVE dept_tree AS (
            SELECT dept_id FROM departments WHERE manager = current_setting('app.user_id')::int
            UNION ALL
            SELECT d.dept_id FROM departments d JOIN dept_tree dt ON d.parent_dept = dt.dept_id
        )
        SELECT dept_id FROM dept_tree
    )
);
Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 131 篇
0 完成
🔥 0