创建的用户可以在没有任何授权的情况下访问PostgreSQL中的所有数据库

前端之家收集整理的这篇文章主要介绍了创建的用户可以在没有任何授权的情况下访问PostgreSQL中的所有数据库前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
关于设置Postgresql,我一定会遗漏一些东西.我想要做的是创建多个彼此隔离的数据库用户,以便特定用户只能访问我指定的数据库.但是,根据我的判断,任何创建的用户都可以访问所有数据库,而不会给出任何特定的授权.

这是我在Ubuntu Server 12.04上做的事情:

> apt-get install postgresql
> sudo -u postgres createuser -DRSP mike1
(指定新用户的密码)
> sudo -u postgres createdb data1
> psql -h localhost -U mike1 data1
(指定用户mike1登录的密码)

似乎新用户“mike1”没有问题连接到数据库“data1”和创建表等.这没有运行任何GRANT命令(并且“data1”的所有者是“postgres”,因为我没有指定所有者在步骤3).这真的是它应该如何工作吗?

我想做的是授予mike1对data1的完全访问权限,然后对更多用户数据库重复此操作,确保用户只能访问我选择的一个(或可能是几个)数据库.

sql级别,每个用户都可以确实连接到新创建的数据库,直到发出以下sql命令:
REVOKE connect ON DATABASE database_name FROM PUBLIC;

完成后,应该能够连接的每个用户或角色必须明确授予连接权限:

GRANT connect ON DATABASE database_name TO rolename;

编辑:
在多租户方案中,将删除不仅仅是连接权限.对于多租户提示和最佳实践,您可能需要阅读postgresql public wiki:Shared Database HostingManaging rights in PostgreSQL.

原文链接:https://www.f2er.com/postgresql/192402.html

猜你在找的Postgre SQL相关文章