以下说法有何错误?
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO foo;
我收到这个错误
ERROR: syntax error at or near "ALL"
LINE 2: ON ALL TABLES IN SCHEMA public TO foo;
我在 Ubuntu 上使用 postgreSQL 8.3。
答案1
您的语法是正确的,但仅适用于 PostgreSQL 9.0 及更高版本。
在 8.3 中,您必须按名称列出所有表:
GRANT SELECT, INSERT, UPDATE, DELETE ON tab1, tab2, tab3 TO foo;
答案2
据我所知,这在 postgresql DB 中是无效的。您应该通过指定它们来授予所有表的权限。这个词ALL
在这里是无效的。