关于设置PostgreSQL,我一定会有所遗漏。我想做的是创建多个彼此隔离的数据库和用户,以便特定用户只能访问我指定的数据库。但是,根据我的判断,任何创建的用户都可以访问所有数据库,而无需给予任何特定的授权。
这是我在Ubuntu Server 12.04上执行的操作:
- apt-get安装postgresql
- sudo -u postgres createuser -DRSP mike1(指定新用户的密码)
- 须藤-u postgres createdb data1
- psql -h localhost -U mike1 data1(指定用户mike1登录的密码)
似乎新用户“ mike1”可以毫无问题地连接到数据库“ data1”并创建表等。而且这根本不需要运行任何GRANT命令(而“ data1”的所有者是“ postgres”,因为我没有指定步骤3中的所有者)。这真的应该是这样吗?
我想做的就是授予mike1对data1的完全访问权限,然后对更多的用户和数据库重复此操作,以确保用户只能访问我选择的一个(或可能多个)数据库。