语法eroor grant roles

时间:2018-02-12 12:31:46

标签: database postgresql roles

我尝试授予角色时遇到问题。我的命令是:

grant john.doe to john;

我收到错误:

ERROR:  syntax error at or near "."

我正在使用postgres数据库。

1 个答案:

答案 0 :(得分:1)

如果您的角色确实是john.doe,请使用

grant "john.doe" to john; 

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

  

SQL标识符和关键字必须以字母开头(a-z,但也是   带变音符号和非拉丁字母的字母)或下划线   (_)。标识符或关键字中的后续字符可以是   字母,下划线,数字(0-9)或美元符号($)。注意   根据信函的标识符不允许使用美元符号   SQL标准,因此它们的使用可能会减少应用程序   便携式的。

并进一步:

  

还有第二种标识符:分隔标识符或   引用标识符。它是通过包围任意序列形成的   双引号中的字符(")

最后:

  

带引号的标识符可以包含除字符外的任何字符   代码为零。 (要包含双引号,请写两个双引号。)   这允许构造否则将构造表或列名称   不可能,例如包含空格或&符号的那些。该   长度限制仍然适用。

大多数Postgres家伙都建议避免" camelCase"或" Other.Nam3s"作为标识符...