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