PgAdmin连接PostgreSQL时出现set_config权限拒绝错误
解决PostgreSQL只读用户连接PgAdmin时的set_config权限错误
这个问题的核心是:pg_read_all_data预定义角色仅赋予了全量数据读取权限,但PgAdmin在建立连接时会自动调用pg_catalog.set_config函数配置会话参数(比如search_path),而该函数的执行权限默认并未包含在pg_read_all_data角色中。
解决步骤如下:
- 以超级用户身份登录PostgreSQL,执行以下SQL授予权限:
记得将GRANT EXECUTE ON FUNCTION pg_catalog.set_config(text, text, boolean) TO 你的只读用户名;你的只读用户名替换为实际的只读用户名称。
授予该权限不会破坏只读用户的权限限制——set_config仅修改会话级参数,无法让用户获得数据修改能力,之后即可正常通过PgAdmin连接。
内容的提问来源于stack exchange,提问作者Collin Blomberg
相关产品推荐
相关产品推荐

