我目前在Postgres工作,我正在创建一些用户。在创建这些用户并测试它们的同时,我注意到他们能够查看比他们有权访问的更多Schema。除此之外,他们还可以查看受限制的Schemas表,视图和函数。这不太理想。
创建用户及其权限时,有一种方法可以让用户进行设置,使他们只能查看某些Schema而不是我们数据库中的所有Schema吗?
我还应该提到这些用户将使用PgAdmin或Tableau查看我们的postgres数据库。
答案 0 :(得分:4)
是。使用命令GRANT USAGE ON [schemaname] TO [username]
或REVOKE USAGE ON [schemaname] FROM [username]
来控制对架构本身的访问。
您可能还需要执行REVOKE USAGE ON [schemaname] FROM public
以删除默认访问权限。
我建议您查看https://www.postgresql.org/docs/current/static/sql-grant.html以获取可用的全套GRANT命令,因为您可能还需要在某些表上授予/撤消读/写访问权限。