我有一个用户just_one_schema_user
。
在我的数据库中,我有两个模式:public
和sample
如何使该用户仅看到sample
?
这是我所做的:
GRANT USAGE ON SCHEMA sample TO just_one_schema_user
REVOKE ALL PRIVILEGES ON SCHEMA public FROM just_one_schema_user
但是用户仍然可以在public
中列出表并查看其结构。
REVOKE
删除从未被授予的特权将无声无息。
将模式USAGE
的public
特权授予PUBLIC
,而不是just_one_schema_user
。
使用它显示psql
中的权限:
\dn+
您正在寻找:
REVOKE CREATE, USAGE ON SCHEMA public FROM public;
我建议不将任何应用程序数据存储在public
中,而仅存储扩展名。然后不要撤消USAGE
,仅撤消CREATE
。