在Ubuntu

时间:2015-04-24 07:28:45

标签: sql postgresql ubuntu

所以我在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文件,并将本地frompeer的身份验证设置更改为md5。

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

ubuntu@ip-172-31-33-139:~$ su python 
No passwd entry for user 'python'

但是

ubuntu@ip-172-31-33-139:~$ sudo service postgresql restart
 * Restarting PostgreSQL 9.3 database server                             [ OK ]
ubuntu@ip-172-31-33-139:~$ psql -d dbpython -U python
Password for user python:
psql (9.3.6)
Type "help" for help.

dbpython=>

为什么这样工作而且su python不是? 重要说明:我没有在我的Ubuntu中创建一个新的python用户,我希望这对postgres上的每个新用户都没有必要。

1 个答案:

答案 0 :(得分:16)

您正在混合使用PostgreSQL用户和UNIX用户,这是完全不同的事情。

CREATE USER python with PASSWORD 'python';

此命令仅创建PostgreSQL用户而不创建任何UNIX用户,您可以通过在/etc/passwd文件上显示用户列表来检查它。

如果您还想要UNIX用户,则必须自己创建(或编写脚本)。