在99%的用例中,我不需要任何这些东西。可以在PostgreSQL中完全禁用它吗?所有这些用户,角色,权限等......
答案 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
文件中,但要注意那里的安全风险。