news 2026/6/10 17:56:26

postgresql内的RLS规则

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
postgresql内的RLS规则

来源

https://chatgpt.com/share/6969eb21-0e50-8006-b6f3-6b9413d3be7a

RLS安全,设置用户和某个特定人可以进行修改

using ( user_id = auth.uid() ) 上述代码中,除了user_id = auth.uid(),我还想加入user_id='1922d5ca-aa33-4abc-9759-6ccb05d6b533'也可以查询数据,该怎么做?

注意细节:user_id=auth.uid()与auth.uid()='xxx-xxx-xxx-xxx'的区别

using ( auth.uid() = user_id or auth.uid() = '19c8d5ca-7233-4abc-9759-6dbb05d6b570' ); 代表已登录的用户自己与某个管理员可以得到结果
using ( user_id = auth.uid() or user_id = '19aad5ca-7cc3-4ddc-9129-6db215fdb510' ); 如果是select语句,意味着仅仅能查询到自己与'19aad5-xxx'的记录 不是管理员可以查询到所有数据的功能

下面这个公式很重要,核心观点

最终推荐完整版(UPDATE 场景)

alter policy "owner or system user" on your_table for update to public using ( user_id = auth.uid() or user_id = '19c8d5ca-7233-4abc-9759-6dbb05d6b570'::uuid ) with check ( user_id = auth.uid() or user_id = '19c8d5ca-7233-4abc-9759-6dbb05d6b570'::uuid );

using()与with check()的区别是什么?

普通用户只能看自己,管理员可以看所有

select

update/delete

某个role才能insert

const { data: { session }, error } = await supabase.auth.getSession() console.log('🟩 🟩 🟩 user', session); //session.user.role就有"limited_user"
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 14:14:32

什么是SOCKS5代理?帮你彻底搞懂SOCKS5代理

SOCKS5代理是网络通信中常见的一种代理协议。许多人在使用爬虫、远程连接或提升连接效率时会听说这个词,但它到底是什么,有什么优势,为什么越来越多的开发者和企业选择它?本文将从SOCKS5代理的工作原理、核心特点、适用场景等方面…

作者头像 李华
网站建设 2026/6/10 11:18:16

使用Beyond Compare5.0+的方法

很多文章都提了用某个keygen脚本 但是没提要先改windows系统下的bc.exe 这里摘录了一位大佬的方法。原文链接: https://github.com/garfield-ts/BCompare_Keygen?tabreadme-ov-file 下载的脚本在这里: https://github.com/garfield-ts/BCompare_Ke…

作者头像 李华
网站建设 2026/6/10 13:16:35

程序员接单渠道怎么选?不同平台的真实体验分享

程序员接单渠道怎么选?不同平台的真实体验分享 很多程序员兄弟白天写公司的需求,晚上还要琢磨怎么找副业,自然也就会想到我们程序员接单,但话说回来,江湖水深,平台各异。 市面上有很多程序员接单的渠道&a…

作者头像 李华
网站建设 2026/6/10 2:01:47

HTTPS加密与JWT鉴权机制详解

HTTPS加密与JWT鉴权机制详解 1.HTTPS 数据传输加密流程 非对称加密(公钥/私钥)并不直接用于数据传输 • 直接用公钥加密大量业务数据效率太低(RSA、ECC 这种算法比 AES 慢几个数量级)。• 实际上,非对称加密只用来 …

作者头像 李华