gpt4 book ai didi

postgresql - ALTER ROLE WITH CREATEDB 和 GRANT CREATE ON TABLESPACE 之间的区别

转载 作者:行者123 更新时间:2023-11-29 11:14:48 25 4
gpt4 key购买 nike

来自 MySQL 并且不知道 ROLE 我心不在焉地尝试了这个

GRANT CREATE ON TABLESPACE pg_default TO username;

它没有达到预期的效果。我正在寻找的命令是:

ALTER ROLE username WITH CREATEDB;

但是究竟有什么区别呢?给某人 CREATEDB 角色是否隐含地给他们 CREATE ON TABLESPACE ...?有一张 table 可以让我看到所有这些吗?

来自docs , GRANT CREATE ON TABLESPACE 意味着(我强调):

For tablespaces, allows tables, indexes, and temporary files to be created within the tablespace, and allows databases to be created that have the tablespace as their default tablespace. (Note that revoking this privilege will not alter the placement of existing objects.)

最佳答案

它们是完全不同的特权。 CREATEDB 表示该角色可以创建数据库。如果您的角色没有那个,它就不能创建数据库,就这样。

将表空间的 CREATE 授予角色意味着该角色将能够将该表空间用作数据库的默认表空间。因此,具有 CREATEDB 的角色将能够创建数据库;只是不在那个表空间上。请注意,对于没有默认表空间的数据库,总是有一个 pg_default 表空间将用作默认表空间。

关于postgresql - ALTER ROLE WITH CREATEDB 和 GRANT CREATE ON TABLESPACE 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1986620/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com