Php Doctrine2 PostgreSQL模式限制

Php Doctrine2 PostgreSQL模式限制,php,symfony,doctrine-orm,postgis,postgresql-9.2,Php,Symfony,Doctrine Orm,Postgis,Postgresql 9.2,我有一个安装了PostGIS扩展的PostgreSQL数据库。它还有3个其他模式(tiger、tiger_数据、拓扑)和公共模式。我的表应该在公共架构中,但现在我无法运行条令:schema:update,因为出现以下错误: [PDOException] SQLSTATE[42501]: Insufficient privilege: 7 ERROR: permission denied for schema topology LINE 1: SELECT min_value, incremen

我有一个安装了PostGIS扩展的PostgreSQL数据库。它还有3个其他模式(tiger、tiger_数据、拓扑)和公共模式。我的表应该在公共架构中,但现在我无法运行条令:schema:update,因为出现以下错误:

[PDOException]
SQLSTATE[42501]: Insufficient privilege: 7 ERROR:  permission denied for schema topology
LINE 1: SELECT min_value, increment_by FROM "topology"."topology_id_...
因此,我无法从实体生成表(或者只是转储DDL sql)


我是否可以以某种方式限制该原则只分析公共模式而跳过其他模式?

超级用户创建扩展后,您可以向默认用户授予所需模式的权限

——表和视图
将模式拓扑中所有表上的SELECT授予某个_用户名;
更改默认权限
模式内拓扑
授予选择权
在桌子上
对某些用户;
--序列
将模式拓扑中所有序列的SELECT用法授予某个\u用户名;
更改默认权限
模式内拓扑
授予、选择、使用
关于序列
对某些用户;
--用法
将模式拓扑上的用法授予公共;

以下是我的Ansible模板,用于准备与PostGIS一起使用的数据库:如果在共享环境中使用数据库,可能会收紧一些特权。

您是否已安装
PostGIS
作为
Postgres
用户?是的。我应该和普通用户一起做吗?我指的是创建扩展命令。删除此扩展并以您的Symfony2用户身份安装我刚刚尝试过,但似乎所有者权限还不够。用户需要是超级用户。错误:创建扩展“postgis”的权限被拒绝提示:必须是超级用户才能创建此扩展。