是否可以完全禁用PostgreSQL角色,用户,权限等

时间:2017-06-01 23:52:10

标签: postgresql

在99%的用例中,我不需要任何这些东西。可以在PostgreSQL中完全禁用它吗?所有这些用户,角色,权限等......

2 个答案:

答案 0 :(得分:3)

不,不是。

但是,如果你真的坚持,你可以在trust中将所有内容设置为pg_hba.conf,并使用postgres超级用户获取所有内容。

我希望您的系统与互联网完全隔离,但不接受任何外部用户输入。因为那些功能是有原因的。即使您的应用程序位于中间件层等之后,您至少应该使用非超级用户进行正常的应用程序操作。最好也是一个不拥有表格并且只是获得所需访问权限的人。这将有助于通过中间件层限制各种可能的攻击造成的损害。

答案 1 :(得分:2)

我认为你不能完全禁用用户/角色系统,因为Postgres是一个客户端/服务器架构,你需要用户/角色等来连接服务器。< / p>

但您可以通过设置默认帐户绕过,例如如果您使用Unix / Linux作为数据库超级用户,则使用您的用户名,或GRANT使用所有必需的权限。

您还可以修改postgres配置文件,例如在/etc/postgresql/9.x/main/pg_hba.conf并将某些身份验证方法更改为trust,例如,信任来自本地计算机的任何连接:

# IPv4 local connections:
#host    all             all             127.0.0.1/32            md5
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
#host    all             all             ::1/128                 md5
host    all             all             ::1/128                 trust

您也可以将密码存储在.pgpass文件中,但要注意那里的安全风险。