Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django:关系Django_迁移的权限被拒绝,PostgreSql-Django用户?_Python_Linux_Django_Postgresql - Fatal编程技术网

Python Django:关系Django_迁移的权限被拒绝,PostgreSql-Django用户?

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

我一直在努力弄清楚postgre用户和linux用户之间的关系以及他们之间的权限。我想问的第一个问题是,假设我有tom linux用户和tom postgre用户,这是我用psql命令创建的。这两者之间的关系是什么?我问的原因与以下问题有关:

我在里面使用的是vagrant和ubuntu。有两个用户,第一个是
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”授予特权