Django - 使用不同的MySQL用户来管理manage.py和服务应用程序?

时间:2011-04-01 12:37:40

标签: mysql django security permissions

看起来manage.py需要比我的Django应用程序在日常使用中需要的更多数据库权限(例如索引,删除,创建)。

有没有办法告诉它使用一个用户来管理manage.py命令,然后用一个更受限制的用户来实际运行这个应用程序?

2 个答案:

答案 0 :(得分:3)

我认为你应该可以通过django的multidatabase config对不同的用户使用相同的db两次

e.g。

DATABASES = {
'default': {
    'NAME': 'app_data',
    'ENGINE': 'django.db.backends.postgresql_psycopg2',
    'USER': 'user',
    'PASSWORD': ''
},
'default_root': {
    'NAME': 'app_data',
    'ENGINE': 'django.db.backends.postgresql_psycopg2',
    'USER': 'super_user',
    'PASSWORD': ''
}

}

然后您可以使用--database进行维护

./manage.py syncdb --database=default_root

这是多数据库文档

http://docs.djangoproject.com/en/dev/topics/db/multi-db/

答案 1 :(得分:0)

您可以通过单独的db_settings.py文件来导入主设置文件但重新定义数据库用户的值。

然后,在执行syncdb时,您可以明确告诉Django使用该设置文件:

./manage.py syncdb --settings=db_settings