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

标签 sql postgresql sql-grant

我目前正忙于尝试从我的 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;

关于sql - 如何解决此查询中的 pgadmin 4 GRANT 语法错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44609810/

相关文章:

sql - 获取所有记录,包括不匹配的记录

linux - OpenSUSE 需要 Postgresql 8.3 版本

mysql - 如何撤销mysql中新用户对*.*的访问?

database - 如何在 PostgreSQL 中以星型模式结构排列我的数据

postgresql - PGAdmin 显示 Heroku 的数据库量过多

mysql - 如何使用MySQL数据库创建角色

mysql - 在mysql中创建DB和授予语法错误

mysql - 是否有数据库级别的软删除机制

php - MS SQL/PHP 截断结果文本

mysql - 从一个字符串中的(多个)括号中提取值