Создана база данных со сценарием оболочки, однако пользователю не разрешено входить в систему - PullRequest
0 голосов
/ 29 мая 2018

Когда я пытаюсь запустить мой djangoRESTapi, я получаю сообщение об ошибке:

FATAL: role "admin3" is not permitted to log in

каждый раз, когда я пытаюсь использовать manage.py

Текущий скрипт.

pg_ctl -D /usr/local/var/postgres stop
pg_ctl -D /usr/local/var/postgres start
psql -c "DROP DATABASE $sqlProject;"
psql -c "DROP ROLE $projectAdmin;"
#createdb -E UTF-8 $sqlProject

psql -c "CREATE DATABASE $sqlProject;"
psql -c "CREATE ROLE $projectAdmin WITH SUPERUSER PASSWORD '$projectPassword';"
psql -c "ALTER ROLE $projectAdmin SET client_encoding TO 'utf8';"
psql -c "ALTER ROLE $projectAdmin SET default_transaction_isolation TO 'read committed';"
psql -c "ALTER ROLE $projectAdmin SET timezone TO 'UTC';"
psql -c "GRANT ALL PRIVILEGES ON DATABASE $sqlProject TO $projectAdmin;"
psql -c "GRANT CONNECT ON DATABASE $sqlProject TO $projectAdmin;"
psql -c "\q"

Есть идеи по исправлению?

Ответы [ 2 ]

0 голосов
/ 29 мая 2018

https://www.postgresql.org/docs/current/static/sql-createuser.html

CREATE USER теперь является псевдонимом CREATE ROLE.Единственное отличие состоит в том, что когда команда написана как CREATE USER, по умолчанию принимается LOGIN, тогда как NOLOGIN предполагается, когда команда пишется как CREATE ROLE.

, так как вы нашли себя, либо используйте create user или добавьте login в ваш скрипт:

db=# create role canlogin login;
CREATE ROLE
Time: 18.688 ms
db=# \q
MacBook-Air:~ vao$ psql so -U canlogin
Timing is on.
Pager usage is off.
psql (9.6.1)
Type "help" for help.
0 голосов
/ 29 мая 2018

У меня есть CREATE ROLE, а не CREATE USER.

Это решило мою проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...