【发布时间】:2021-02-05 21:35:55
【问题描述】:
我有 2 个 Postgresql 数据库,分别称为 abc 和 xyz。我想为每个在网站中使用的用户创建一个用户,所以我使用如下命令创建了一个用户:
CREATE ROLE abc LOGIN PASSWORD 'abc';
然后我这样做是为了授予他们访问数据库的权限:
GRANT ALL PRIVILEGES ON DATABASE abc TO abc;
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO abc;
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO abc;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL on TABLES TO abc;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL on SEQUENCES TO abc;
此时 abc 用户可以访问这些表,我相信任何未来创建的表。
我注意到 abc 用户可以看到 xyz 数据库存在并实际进入其中并在 pgAdmin 中查看表的架构、表甚至结构。
我想防止这种情况发生并锁定 abc 用户,以便尽可能多地了解 abc 数据库。
我在这个配置中哪里出了问题,锁定它的最佳方法是什么?
谢谢!
【问题讨论】:
标签: postgresql roles privileges grant