如何解决此查询中的 pgadmin 4 GRANT 语法错误?

How to resolve pgadmin 4 GRANT syntax error in this query?

我目前正忙于尝试从我的 PostgreSQL/Postgis 数据库演示中执行一些 SQL 查询。但是我在查询中的某一行得到了语法。

这个查询过去在另一台计算机上确实有效,所以我在这里看不到它为什么现在不起作用的问题:

CREATE ROLE demonstratieuser NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
CREATE ROLE demonstratieadmin NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
GRANT demonstratieuser TO demonstratieadmin
GRANT ALL ON DATABASE demodatabase TO demonstratieadmin

下一行在更具体的 Grant 部分有语法错误。

GRANT ALL ON DATABASE demodatabase TO demonstratieadmin

我该如何解决这个问题?

编辑错误代码:

ERROR:  syntax error at or near "GRANT"
LINE 4: GRANT ALL ON DATABASE demodatabase TO demonstratieadmin;
        ^
********** Error **********

ERROR: syntax error at or near "GRANT"
SQL state: 42601
Character: 222

那是因为你在作为行终止符的下一行中缺少一个 ; 分号。

GRANT demonstratieuser TO demonstratieadmin

所以实际上应该是

CREATE ROLE demonstratieuser NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
CREATE ROLE demonstratieadmin NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
GRANT demonstratieuser TO demonstratieadmin;
GRANT ALL ON DATABASE demodatabase TO demonstratieadmin;