小编orm*_*orm的帖子

postgres:如何允许同一用户创建索引但不允许表更改或表删除?

我正在设置一个 postgres 服务器,它将是一个(主要是)只读工作负载。

我想允许我自己和同事按照我们认为合适的方式创建/删除索引,而不允许我们删除表或改变表。

我花了一些时间阅读授权/撤销文档以及角色文档页面,但似乎表所有者角色获得了这两种权力。

我发现的一件事是,据说,在表空间上授予创建允许创建索引,但它不起作用(注意,我没有创建任何其他表空间)。

具体来说,我试过:

mydb=# grant create on tablespace pg_default to bob;
GRANT
Run Code Online (Sandbox Code Playgroud)

...然后切换到鲍勃:

mydb=> create index on foo(a);
ERROR:  must be owner of relation foo
Run Code Online (Sandbox Code Playgroud)

我也尝试让 bob 成为所有者,但是 bob 获得了删除表的权利,而且似乎无法撤销该特权。所以我要么两者兼而有之,要么什么都不做。

有任何想法吗?

postgresql permissions role

9
推荐指数
1
解决办法
4711
查看次数

尽管在列上排序了索引,但为什么查询计划仍然对表进行排序?

我正在使用 Postgres 9.1 我要加入两个表:

wikidb=> \d page
                         Table "public.page"
        Column         |     Type      |          Modifiers           
-----------------------+---------------+------------------------------
 page_id               | bigint        | not null
 page_namespace        | integer       | not null default 0
 page_title            | text          | not null default ''::text
 [...]
Indexes:
    [...]
    "page_page_namespace_page_title_idx" UNIQUE, btree (page_namespace, page_title)

wikidb=> \d pagelinks
                 Table "public.pagelinks"
      Column       |  Type   |         Modifiers          
-------------------+---------+----------------------------
 pl_from           | bigint  | not null default 0::bigint
 pl_namespace      | integer | not null default 0
 pl_title          | text    | not null default ''::text …
Run Code Online (Sandbox Code Playgroud)

postgresql performance optimization execution-plan postgresql-9.1 query-performance

2
推荐指数
1
解决办法
3092
查看次数