在Ubuntu上创建用户postgres

11 浏览
0 Comments

在Ubuntu上创建用户postgres

我在Ubuntu上安装了postgresql9.3。

现在我需要创建一个新用户。使用超级用户postgres可以做到任何事情。但是我需要为每个新的数据库创建一个新用户。

所以我做了以下操作:

sudo -u postgres psql
CREATE USER python with PASSWORD 'python';
CREATE DATABASE dbpython;
GRANT ALL PRIVILEGES ON DATABASE dbpython to python;

我还修改了/etc/postgresql/9.1/main/pg_hba.conf文件,并将本地的身份验证设置从peer改为md5。

在重新启动postgres之后,我想使用我的新用户:

ubuntu@ip-172-31-33-139:~$ su python 
用户'python'没有密码条目

但是

ubuntu@ip-172-31-33-139:~$ sudo service postgresql restart
 * 正在重启 PostgreSQL 9.3 数据库服务器                             [ OK ]
ubuntu@ip-172-31-33-139:~$ psql -d dbpython -U python
用户python的密码:
psql (9.3.6)
键入"help"获取帮助。
dbpython=>

为什么psql命令可以正常工作而su python命令不行呢?

重要提示:我没有在Ubuntu上创建一个新的python用户,我希望这对于postgres上的每个新用户都不是必需的。

0
0 Comments

问题原因:混淆了PostgreSQL用户和UNIX用户的概念,它们是完全不同的东西。

解决方法:使用CREATE USER命令只能创建PostgreSQL用户,而不能创建UNIX用户。可以通过在/etc/passwd文件中显示用户列表来进行验证。如果需要创建UNIX用户,需要自己手动创建或编写脚本进行创建。

0