暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

pg 中 pg_ident.conf 具体配置及应用

原创 alexlei_liu 2024-09-06
412

pg_ident.conf 是 PostgreSQL 的一个配置文件,用于配置用户身份映射,以便允许系统用户(操作系统用户)以数据库用户的身份连接到 PostgreSQL 数据库。这在使用 IDENT 或 PEER 认证方法时特别有用。

1、文件位置

默认情况下,pg_ident.conf 文件位于 PostgreSQL 数据目录中。你可以通过查看 PostgreSQL 配置文件 postgresql.conf 来确认其路径:

SHOW ident_file;

pg_ident.conf 格式
pg_ident.conf 文件的格式非常简单,每行包含三个字段:

MAPNAME:映射名称,可以是任意字符串。
SYSTEM-USERNAME:操作系统用户名。
PG-USERNAME:PostgreSQL 数据库用户名。
字段之间以空格或制表符分隔。例如:

mymap       osuser1           dbuser1
mymap       osuser2           dbuser2
othermap    osuser3           dbuser3

2、示例配置

假设你有以下需求:

操作系统用户 alice 映射到 PostgreSQL 用户 pg_alice
操作系统用户 bob 映射到 PostgreSQL 用户 pg_bob
你可以这样配置 pg_ident.conf:

# MAPNAME   SYSTEM-USERNAME   PG-USERNAME

mymap       alice             pg_alice
mymap       bob               pg_bob

3、配置 pg_hba.conf 使用映射

SHOW hba_file;

要使这些映射生效,还需要配置 pg_hba.conf 文件,并指定使用 IDENT 或 PEER 认证方法以及对应的映射名称。

假设你希望本地连接使用 IDENT 认证和你定义的映射 mymap,可以如下配置 pg_hba.conf:

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# Allow local connections using the "mymap" ident map
local    all             all                                     ident map=mymap

或者,如果你使用的是 PEER 认证(通常在 Unix 系统上用于本地连接):


# Allow local connections using the "mymap" peer map
local    all             all                                     peer map=mymap

4、完整示例

假设你的需求是:

操作系统用户 os_user1 映射到 PostgreSQL 用户 db_user1
操作系统用户 os_user2 映射到 PostgreSQL 用户 db_user2

pg_ident.conf 配置:
# MAPNAME   SYSTEM-USERNAME   PG-USERNAME

mymap       os_user1          db_user1
mymap       os_user2          db_user2

pg_hba.conf 配置:

# Allow local connections using the "mymap" ident map
local    all             all                                     ident map=mymap

5、重启 PostgreSQL 服务

每次修改 pg_ident.conf 或 pg_hba.conf 文件后,必须重载或重启 PostgreSQL 服务以使配置生效:

sudo systemctl reload postgresql-14

或者:

sudo systemctl restart postgresql-14

6、验证配置

修改配置文件并重启服务后,你可以尝试以操作系统用户的身份连接到 PostgreSQL,验证映射是否有效:

sudo -u os_user1 psql -U db_user1

如果配置正确,你应该能够成功登录到 PostgreSQL。

7、总结

通过配置 pg_ident.conf 文件,你可以灵活地将操作系统用户映射到 PostgreSQL 用户,从而实现安全的用户管理和认证。

最后修改时间:2024-09-06 11:40:52
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论