微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

错误:设置默认权限时在“FROM”处或附近出现语法错误

如何解决错误:设置默认权限时在“FROM”处或附近出现语法错误

我正在尝试创建一个用户 test,该用户数据库 INSERT 仅具有 test2 权限。该数据库由包含 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 命令,但似乎收到关于关系不存在的错误

非常感谢您的帮助。

解决方法

您的意思是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";

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。