加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-13 16:23:10 所属栏目:百科 来源:网络整理
导读:关于设置PostgreSQL,我一定会遗漏一些东西.我想要做的是创建多个彼此隔离的数据库和用户,以便特定用户只能访问我指定的数据库.但是,根据我的判断,任何创建的用户都可以访问所有数据库,而不会给出任何特定的授权. 这是我在Ubuntu Server 12.04上做的事情: ap
关于设置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 Hosting和Managing rights in PostgreSQL.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读