postgresql - 如何授予用户对 Postgres 中所有新表的权限?
问题描述
假设,我在 Postgres 9.6 中有两个用户,名为user1
和user2
. 我想对user2
创建的任何新表授予权限,user1
而无需为创建的表创建额外的显式授权命令。换句话说,我想让以下命令正常工作:
- 授予权限
user2
(我不知道应该在这里做什么!) CREATE TABLE t1 (id int)
(下user1
)INSERT INTO t1 VALUES (5)
(下user2
)
请注意,我不应该在第 2 步和第 3 步之间授予任何权限。
在第 3 步我总是有错误:
permission denied for relation t1
我努力了:
GRANT ALL PRIVILEGES ON DATABASE test TO user2;
和
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO user2;
没有任何成功。
我也试过:
GRANT user1 TO user2
它有帮助。但我不能将其视为解决方案,因为可能具有我不想与之共享的user1
过高权限(例如,它可能是) 。postgres
user2
解决方案
您可以通过创建默认权限来做到这一点:
ALTER DEFAULT PRIVILEGES
FOR USER user1
GRANT ALL ON TABLES TO user2
推荐阅读
- caching - 我们应该将 HTTP Expires 或 Cache-control: max-age 标头设置多长时间?
- ios - 前台应用程序的状态是什么,但几分钟后显示为非活动状态?
- c# - 在 Xamarin Forms 中单击按钮时调用接口类
- c - 解决来自外部文件的依赖关系
- python - 如何将多个函数应用于 dask 数据帧的几个块?
- python - 列表索引超出范围/范围
- cron - Magento 2:Cron 未按预定时间工作
- amazon-quicksight - QuickSight 的计算字段中是否可以有一个常数值?
- python - VSCode 从其他文件夹导入文件
- java - 什么是正确的 java 数据结构和搜索算法来搜索一组 ip 范围以进行包含