Аутентификация IDENT оказалась более хлопотной, чем она того стоила.Вот что я в итоге сделал, чтобы избежать использования роли суперпользователя PostgreSQL ...
Переключение на пользователя postgres
linux:
sudo su - postgres
Редактирование конфигурации аутентификации на основе хоста PostgreSQLfile:
nano /etc/postgresql/8.4/main/pg_hba.conf
Прокрутите до нижней части этого файла, ища строку, которая выглядит следующим образом:
local all all ident
Измените ident
на md5
, выйдите и сохраните,Это говорит PostgreSQL использовать зашифрованный MD5 пароль для аутентификации на локальных соединениях.Теперь перезапустите PostgreSQL:
/etc/init.d/postgresql-8.4 restart
Создайте пользователя PostgreSQL:
createuser django_user --pwprompt
Не принимайте никаких специальных привилегий при запросе.Теперь создайте новую базу данных:
createdb -E UTF8 -O django_user django_db
Эти параметры кодируют базу данных в UTF8 и устанавливают для владельца django_user.Теперь вы можете вернуться к исходной учетной записи пользователя linux:
exit
В вашем файле настроек проекта (settings.py) должно быть что-то вроде этого:
DATABASES = {
'default': {
'ENGINE': 'django.contrib.gis.db.backends.postgis',
'NAME': 'django_db',
'USER': 'django_user',
'PASSWORD': '[your password]',
'HOST': '',
'PORT': '',
}
}
При запускеpython manage.py syncdb
или любые другие команды управления Django, указанные выше настройки будут использоваться для аутентификации в базе данных.