Python Django:关系Django_迁移的权限被拒绝,PostgreSql-Django用户?
我一直在努力弄清楚postgre用户和linux用户之间的关系以及他们之间的权限。我想问的第一个问题是,假设我有tom linux用户和tom postgre用户,这是我用psql命令创建的。这两者之间的关系是什么?我问的原因与以下问题有关: 我在里面使用的是vagrant和ubuntu。有两个用户,第一个是Python Django:关系Django_迁移的权限被拒绝,PostgreSql-Django用户?,python,linux,django,postgresql,Python,Linux,Django,Postgresql,我一直在努力弄清楚postgre用户和linux用户之间的关系以及他们之间的权限。我想问的第一个问题是,假设我有tom linux用户和tom postgre用户,这是我用psql命令创建的。这两者之间的关系是什么?我问的原因与以下问题有关: 我在里面使用的是vagrant和ubuntu。有两个用户,第一个是Linux“vagrant”用户,第二个是PostgreSql“vagrant”用户,我通过以下命令创建: CREATE USER vagrant WITH PASSWORD '123.12
Linux
“vagrant”用户,第二个是PostgreSql
“vagrant”用户,我通过以下命令创建:
CREATE USER vagrant WITH PASSWORD '123.123';
GRANT ALL PRIVILEGES ON DATABASE cashier to vagrant;
这应该意味着,也就是说,流浪汉拥有出纳数据库的所有权限
我还应该顺便提一下,我正在使用设置,vagrant在执行设置时使用root用户,因此root用户也应该拥有出纳数据库的所有权限,因为我正在设置时将转储导入出纳数据库
因此,您可以轻松地假定root用户已通过以下方式授予权限:
CREATE USER root WITH PASSWORD 'vagrant';
GRANT ALL PRIVILEGES ON DATABASE cashier to root;
问题是:当我尝试在django python manage.py runserver中运行服务器时
如果我使用以下设置:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'cashier',
'USER': 'vagrant',
'PASSWORD': '123.123',
'HOST': '127.0.0.1',
'PORT': '5432',
}
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'cashier',
'USER': 'vagrant',
'PASSWORD': 'vagrant',
'HOST': '127.0.0.1',
'PORT': '5432',
}
}
我收到身份验证错误,如果使用以下设置:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'cashier',
'USER': 'vagrant',
'PASSWORD': '123.123',
'HOST': '127.0.0.1',
'PORT': '5432',
}
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'cashier',
'USER': 'vagrant',
'PASSWORD': 'vagrant',
'HOST': '127.0.0.1',
'PORT': '5432',
}
}
然后我有Django:Django_迁移关系的权限被拒绝,问题。我的问题是发生了什么?用户之间的关系是什么?我应该使用哪个用户?为什么django不能同时使用两个用户凭据进行迁移
回顾:
Linux用户游民通行证游民
Postgre user vagrant pass 123.123要知道相同的名称是否造成问题,只需尝试在psql中创建一个具有不同名称的用户,并尝试使用该用户和密码进行迁移,然后检查您是否面临相同的问题,如果没有,则我猜您不能拥有相同的名称,如果问题仍然存在,则linux shell上的Connector存在一些问题,用户为
vagrant
尝试psql-h localhost-U vagrant vagrant
检查是否可以连接到DBA运行psql-h localhost-U vagrant-cashier命令,然后键入密码“vagrant”是,我可以被提示到cashier db.hmm中。。您是否尝试过创建一个不同的数据库用户,例如“dbvagrant”,并按照Experator的建议使用这个用户。这也是我现在的猜测。Postgres可以配置为依赖系统密码。因此,当我转储到db中时,它会在末尾发出警告,警告:不能为“public”REVOKE撤销特权警告:不能为“public”REVOKE撤销特权警告:不能为“public”授予特权授予警告:不能为“public”授予特权
要知道相同的名称是否造成问题,只需尝试在psql中创建一个不同名称的用户,并尝试使用该用户和密码进行迁移,然后检查您是否面临相同的问题,如果没有,那么我猜您不能拥有相同的名称,如果问题仍然存在,则linux shell上的Connector存在一些问题,用户为vagrant
尝试psql-h localhost-U vagrant vagrant
检查是否可以连接到DBA运行psql-h localhost-U vagrant-cashier命令,然后键入密码“vagrant”是,我可以被提示到cashier db.hmm中。。您是否尝试过创建一个不同的数据库用户,例如“dbvagrant”,并按照Experator的建议使用这个用户。这也是我现在的猜测。Postgres可以配置为依赖系统密码。因此,当我转储到db中时,它会在结尾处发出警告,警告:不能为“public”撤销特权警告:不能为“public”撤销特权警告:不能为“public”授予特权授予警告:不能为“public”授予特权