我有一个在 Linux 操作系统中创建用户的用例。该系统已安装 Postgresql。用户有权访问数据库凭据。我想限制用户以任何方式访问数据库记录。
我正在使用 setfacl 命令来限制用户对 /bin/psql 的访问。但是,用户可以使用 psycopg 等 PostgreSQL 数据库适配器连接数据库。谁能告诉我 psycopg 如何连接到数据库以及如何限制 os 用户使用相同的方法访问数据库?
如果用户尝试以任何其他方式访问数据库,我希望执行失败。
不允许通过 TCP 环回接口进行任何连接,并对 Unix 套接字连接使用
peer
身份验证。 示例 pg_hba.conf
文件可能如下所示:
# TYPE DATABASE USER ADDRESS METHOD
local all all peer
host all all 127.0.0.1/32 reject
host all all ::1/128 reject
那么本地用户无法连接,除非操作系统用户名等于数据库用户名。