簡體   English   中英

PostgreSQL和Django的權限被拒絕錯誤。 授予PostgreSQL用戶admin的權限

[英]Permission denied error with PostgreSQL and Django. Giving rights to PostgreSQL user admin

我有PostgreSQL的Django應用。

該應用程序具有以下環境變量:

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

當我嘗試從db中獲取內容時,我收到ProgrammingError: permission denied for relation app_rangeslot

因此,問題是:

1)如果用戶管理員擁有所有權限,為什么我會收到權限被拒絕的錯誤?

2)如果創建了用戶admin,為什么我看不到它?

我認為您在DATABASES字典中缺少“默認”鍵。 您的設置應如下所示:

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',
  }
}

我認為您以postgres用戶身份連接

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

您是否不想以管理員身份實際連接?

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM