如何解决错误:设置默认权限时在“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 举报,一经查实,本站将立刻删除。