- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
来自 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/
我是一名优秀的程序员,十分优秀!