根据我在“示例”部分here中所读到的内容,我认为下面的代码应该允许我更改我的表,以便所有当前和未来的表都可以读/写。
$sql = "ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO PUBLIC;";
$sth = $pdo->prepare($sql);
$sth->execute(); // <-- LINE 14
$sql1 = "ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALTER ON TABLES TO PUBLIC;";
$sth1 = $pdo->prepare($sql1);
$sth1->execute();
但是我收到了这个错误:
致命错误:带有消息的未捕获异常'PDOException' 'SQLSTATE [42601]:语法错误:7错误:语法错误在或附近 “默认”第1行:在SCHEMA公共资格中更改默认特权 选择ON ...在第14行的......中......
我哪里出错?
答案 0 :(得分:3)
很可能你是在太旧的PostgreSQL上运行查询。在9.0中添加了ALTER DEFAULT PRIVILEGES。