【问题标题】:ERROR: syntax error at or near "FROM" when setting default privileges错误:设置默认权限时在“FROM”处或附近出现语法错误
【发布时间】:2021-01-13 02:22:30
【问题描述】:

我正在尝试创建一个用户 test,它对数据库 test2 只有 INSERT 权限。该数据库由postgres 用户插入的数据表填充。

用户test 应该只能将数据插入到数据库表中,而不能插入其他任何内容。它应该不能删除或更改数据库中当前的任何数据。

我尝试使用命令 ALTER DEFAULT PRIVILEGES FOR ROLE test GRANT INSERT ON TABLES FROM "test2"; 但是出错了

ERROR:  syntax error at or near "FROM"
LINE 1: ...T PRIVILEGES FOR ROLE test GRANT INSERT ON TABLES FROM "test...
                                                             ^

我也尝试过单独使用 GRANT 命令,但似乎收到有关不存在关系的错误。

不胜感激。

【问题讨论】:

  • 语法不就是这样吗:GRANT INSERT ON mytable TO username

标签: postgresql privileges


【解决方案1】:

看起来你的意思是to。这里的语法(来自the docs)是:

ALTER DEFAULT PRIVILEGES
    [ FOR { ROLE | USER } target_role [, ...] ]
    [ IN SCHEMA schema_name [, ...] ]
    abbreviated_grant_or_revoke

where abbreviated_grant_or_revoke is one of:

GRANT { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | TRIGGER }
    [, ...] | ALL [ PRIVILEGES ] }
    ON TABLES
    TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ]

所以

ALTER DEFAULT PRIVILEGES FOR ROLE test GRANT INSERT ON TABLES TO "test2";

【讨论】:

    猜你喜欢
    • 2021-12-13
    • 1970-01-01
    • 2019-01-20
    • 2017-03-16
    • 1970-01-01
    • 1970-01-01
    • 2020-12-26
    • 1970-01-01
    • 2020-08-29
    相关资源
    最近更新 更多