You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL:检查当前用户角色权限及行级策略配置问题

解决PostgreSQL行级策略与用户权限检查问题

1. 填充行级策略的USING子句

你需要将**?**替换为PostgreSQL内置的current_user函数,它会返回当前会话的有效用户名。注意原SQL语句缺少ON关键字指定表,需补充完整,同时要先开启表的行级安全(否则策略不会生效)。完整代码如下:

-- 开启student表的行级安全(必须步骤)
ALTER TABLE student ENABLE ROW LEVEL SECURITY;

CREATE POLICY student_rls_policy
ON student
FOR ALL
TO role_manager
USING (name = current_user);

如果需要匹配会话初始用户(即使切换过角色也保持不变),可以用session_user代替current_user。

2. 检查当前用户的角色与权限

查看当前用户拥有的角色

  • 使用SQL语句查询:
SELECT rolname 
FROM pg_roles 
WHERE pg_has_role(current_user, rolname, 'member');
  • 使用psql客户端元命令:
\du

查看当前会话的用户信息

SELECT current_user AS "当前有效用户", session_user AS "会话初始用户";

检查用户对特定表的权限

  • 使用SQL语句查询:
SELECT privilege_type, table_name
FROM information_schema.table_privileges
WHERE grantee = current_user AND table_name = 'student';
  • 使用psql客户端元命令:
\dp student

内容的提问来源于stack exchange,提问作者Raju Earelli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 12:15:32