在postgres中添加其他用户拥有的表上的索引

时间:2015-09-07 06:05:49

标签: postgresql

我有两个用户&模式,

  1. 舞台用户拥有的舞台。
  2. DataMart用户拥有的DataMart。
  3. 我希望这种情况发生:

    1. 在舞台上创建的任何新表都应具有对DataMart用户的S / I / U / D访问权限。 - 我已将其授予

      在SCHEMA阶段TO DATAmart的所有表格中全部授予;

      但新添加的表格未向DataMart用户显示任何授权。

    2. 使用DataMart用户连接到数据库时,我想在stage数据库中的表上添加索引。 (由舞台用户拥有)。

1 个答案:

答案 0 :(得分:1)

  1. 为了自动将阶段架构中的权限授予DataMart角色,您必须ALTER DEFAULT PRIVILEGES获取架构。但是,除了分配所有权限,您应该分配特定权限,只是为了安全起见(即不要向任何用户授予TRUNCATE):
  2. ALTER DEFAULT PRIVILEGES IN SCHEMA stage
      GRANT SELECT, INSERT, UPDATE, DELETE
      ON TABLES TO datamart;

    如果模式中的任何表使用它们,您必须对序列,函数和类型执行相同的操作。

    1. 你不能这样做。只有超级用户或表所有者才能在表上创建索引。