2017-11-23 15 views
0

私はPostgreSQLでDjangoアプリケーションを持っています。PostgreSQLとDjangoの許可が拒否されました。 PostgreSQLユーザ管理者に権利を与える

アプリは、これらの環境変数があります。ここでは

DATABASE_HOST=localhost 
DATABASE_USER=admin 
DATABASE_PASSWORD=admin 

はpsqlの出力です:

postgres=# CREATE USER admin WITH PASSWORD 'admin123'; 
ERROR: role "admin" already exists 


postgres=# select * from USER; 
current_user 
-------------- 
postgres 
(1 row) 

postgres=# GRANT ALL privileges ON DATABASE my_db to admin;     
GRANT 

私は ProgrammingError: permission denied for relation app_rangeslotを取得するDBから何かを取るしようとします。

ので、質問:

1)私は許可拒否エラーを取得する理由は、ユーザ管理者は、すべての権限を持っている場合は?

2)ユーザーadminが作成されていると、なぜ私はそれを見ることができませんか?

+0

あなたが使用しているとデータベース –

+0

@MohammadMustaqeem Djangoのバージョンの値を書き込むことができます1.8 'データベースは= { 'MY_DB' です:{ 'ENGINE':「django.db.backends.postgresql_psycopg2 '、''NAME':os.getenv( 'DATABASE_NAME'、 'my_dev')、 'USER':os.getenv( 'DATABASE_USER'、 'postgres')、 'パスワード':os.getenv( 'DATABASE_PASSWORD' 、os.getenv( 'DATABASE_HOST'、 ''))、 'PORT': '5432'、 、os.getenv( 'DATABASE_PASSWORD'、) ')、 'ホスト ':os.getenv } } ' – pngnviko

答えて

1

私は、あなたがDATABASES dictの 'default'キーがないと思います。あなたの設定は下記のようにする必要があります:

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.postgresql_psycopg2', 
     'NAME': os.getenv('DATABASE_NAME', 'my_dev'), 
     'USER': os.getenv('DATABASE_USER', 'postgres'), 
     'PASSWORD': os.getenv('DATABASE_PASSWORD', ''), 
     'HOST': os.getenv('DATABASE_HOST', ''), 
     'PORT': '5432', 
    } 
} 
+0

いいえ、デフォルトは別のdbで占有されています。私は1つのアプリで2 dbを持っています。そしてデフォルトのdbはうまく動作します。 – pngnviko

0

私はあなたがpostgresユーザ

 'USER': os.getenv('DATABASE_USER', 'postgres'), 

あなたが実際に管理者として接続する必要はありませんように接続されていると思いますか?バージョンをDjangoの

 'USER': os.getenv('DATABASE_USER', 'admin'), 
関連する問題