问题为pgSQL表添加权限

时间:2013-06-25 20:10:51

标签: php sql postgresql pdo

根据我在“示例”部分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行的......中......

我哪里出错?

1 个答案:

答案 0 :(得分:3)

很可能你是在太旧的PostgreSQL上运行查询。在9.0中添加了ALTER DEFAULT PRIVILEGES。