小编Bra*_*rth的帖子

通过 pg_hba.conf 文件之外的 IP 地址限制 Postgres 角色

我目前正在向目前仅支持 MySQL 的部署工具添加 Postgres 支持。该工具动态提供和配置数据库等。

在 MySQL 中,我们可以使用 SQL 将用户限制为一组特定的 IP 地址,作为授权命令的一部分,如下所示:

GRANT ALL PRIVILEGES ON my_database_name.* TO 'my_user_name'@'192.168.101.%' IDENTIFIED BY 'my_secret_password'
GRANT ALL PRIVILEGES ON my_database_name.* TO 'my_user_name'@'internal.example.com' IDENTIFIED BY 'my_secret_password'
Run Code Online (Sandbox Code Playgroud)

在 Postgres 中,似乎设置类似安排的唯一方法是首先无限制地创建用户:

CREATE USER "my_user_name" WITH PASSWORD 'my_secret_password'
Run Code Online (Sandbox Code Playgroud)

我已经整理出如何以编程方式将此角色限制到特定数据库,但似乎通过主机限制 Postgres 用户的唯一方法是在 pg_hba.conf 文件中创建条目。

这是有问题的,因为没有文件系统访问权限的代理以编程方式创建了许多用户/主机。

看起来我们围绕这个的唯一三个选择是:

  1. 在使用 SQL 创建角色后,不使用 SQL 来操作 pg_hba.conf 来限制角色
  2. 对于允许的主机,允许“所有”,而不是特定用户
  3. 仅限制对 localhost 的访问,并使用 ssh 隧道进行连接

这似乎不太理想,让我怀疑我是否忽略了一个明显的解决方案。是否可以仅使用 SQL 命令通过 IP 地址限制 Postgres 角色?

mysql postgresql permissions

7
推荐指数
1
解决办法
3932
查看次数

标签 统计

mysql ×1

permissions ×1

postgresql ×1