Postgresql数据库rls(row level security)生效条件

本文详细介绍了如何在PostgreSQL中管理行级安全(RLS)。内容涵盖superuser权限管理、表所有者规则、bypassrls规则的启用与禁用,以及确认RLS规则的启用状态。通过示例SQL语句,帮助读者理解并掌握RLS的配置和检查方法。
摘要由CSDN通过智能技术生成

满足以下条件之一的用户,rls对其无效

  1. superuser
  2. 表所有者
  3. bypassrls规则
  4. 确认表rls规则是否启用

1.superuser

--使用户失去superuser规则
alter user username with nosuperuser;

--使用户晋升为superuser
alter user username with superuser; 

--查看用户是否为超级用户
select rolsuper from pg_roles where rolname = 'username'; 

2.表所有者:

--使表所有者强制执行rls规则
alter table tablename force row level security;

--查询表的rls是否对表所有者生效
select relname,relrowsecurity,relforcerowsecurity from pg_class where relrowsecurity=true;

3.bypassrls规则

--使用户bypassrls变成nobypassrls,从而遵从rls规则
alter user username with nobypassrls;

--查询用户是否跳过rls
select rolbypassrls  from pg_roles where rolname = 'username';

4.表配置rls规则后,需确认表rls是否启用

--查看表是否启用rls使用:
select relname,relrowsecurity from pg_class where relname='tablename';

--启用/失效 tablename的rls
alter table tablename enable/disable row level security;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值