我有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)如果用户admin拥有所有权限,为什么我会获得权限被拒绝错误?
2)如果创建了用户admin,为什么我看不到它?
答案 0 :(得分:1)
我认为你错过了'默认'关键词DATABASES dict。您的设置应如下所示:
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',
}
}