【问题标题】:Postgres users, roles and permissionsPostgres 用户、角色和权限
【发布时间】:2018-01-12 19:29:17
【问题描述】:

我最近移动了托管环境,不得不备份旧的 Postgres 数据库并将其复制到新服务器。

在新服务器上,我导入了数据库,现在访问站点时收到错误django.db.utils.ProgrammingError: permission denied for relation django_site

我相信这是因为桌子上有所有者,如果我执行 \l 我可以看到所有者是正确的用户 userW2E

      Name      |  Owner   | Encoding |  Collate   |   Ctype    |   Access privileges
----------------+----------+----------+------------+------------+-----------------------
 hypersrvdjango | userW2E  | UTF8     | en_US.utf8 | en_US.utf8 |

但是如果我这样做\dt

List of relations
 Schema |               Name               | Type  |  Owner

--------+----------------------------------+-------+----------
 public | account_registeremailaddress     | table | postgres

所以我在尝试

ALTER TABLE account_registeremailaddress OWNER TO userW2E;

得到错误

ERROR:  role "userw2e" does not exist

我是 postgres 新手,有点不确定如何让用户 userw2e 拥有我的表

谁能帮忙?

【问题讨论】:

    标签: postgresql database-permissions


    【解决方案1】:

    userW2E这里是标识符,如果大小写不一,请使用双引号:

    ALTER TABLE account_registeremailaddress OWNER TO "userW2E";
    

    https://www.postgresql.org/docs/current/static/tutorial-table.html

    SQL 对于关键字和标识符的大小写不敏感,除非 标识符被双引号括起来以保留大小写

    强调我的

    还有https://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS

    【讨论】:

      猜你喜欢
      • 2020-01-16
      • 2020-10-20
      • 2014-08-08
      • 1970-01-01
      • 2020-10-18
      • 2015-11-26
      • 2018-11-18
      • 2015-05-28
      • 2017-10-13
      相关资源
      最近更新 更多