【发布时间】:2012-02-06 22:24:12
【问题描述】:
我计划在 Ubuntu 10.04 上使用 Apache + mod_wsgi 和 PostgreSQL 部署一个 Django 站点。
我打算使用 IDENT 身份验证连接到数据库。为此,我需要为 Apache (www-data) 创建一个 Postgresql 用户。我已选择不将此设置为超级用户或提供任何特殊权限。
然后我创建了一个数据库。我实际上在测试期间这样做了两次。我第一次将Apache用户设置为所有者;第二次我将所有者设置为我自己(超级用户),并将数据库的所有权限授予 Apache 用户。
当我(作为我自己)使用 Django syncdb 管理命令时,Apache 用户无法访问创建的表。这可以通过向 Apache 用户授予每个表的所有权限来解决,但这有点麻烦。
替代方法似乎是允许以超级用户身份访问。
我的项目以 Postgresql 超级用户身份访问本地数据库是否安全/可接受,使用 IDENT 身份验证是否安全?如果不是,通常的做法是什么?
编辑:我发现切换 PostgreSQL 以使用 md5 身份验证进行本地连接可以让生活更轻松。
使用 ident 身份验证时,在正常操作期间通过 Apache 用户连接到数据库。使用 Django 管理命令时,连接是通过当前用户进行的。
如果您使用 MD5,两种情况都将使用您的 settings.py 文件的 DATABASES 部分中指定的详细信息连接到数据库,从而避免上面列出的问题。
我仍然想知道使用 PostgreSQL 超级用户是否明智。
【问题讨论】:
标签: django apache postgresql