所以我在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上的每个新用户都没有必要。
答案 0 :(得分:16)
您正在混合使用PostgreSQL用户和UNIX用户,这是完全不同的事情。
CREATE USER python with PASSWORD 'python';
此命令仅创建PostgreSQL用户而不创建任何UNIX用户,您可以通过在/etc/passwd
文件上显示用户列表来检查它。
如果您还想要UNIX用户,则必须自己创建(或编写脚本)。