ERROR: syntax error at or near "FROM" when setting default privileges
ERROR: syntax error at or near "FROM" when setting default privileges
我正在尝试创建一个用户 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 命令,但似乎收到关于关系不存在的错误。
非常感谢任何帮助。
你的意思好像是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";
我正在尝试创建一个用户 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 命令,但似乎收到关于关系不存在的错误。
非常感谢任何帮助。
你的意思好像是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";