Database 如何在postgresql中为数据库创建用户?

Database 如何在postgresql中为数据库创建用户?,database,postgresql,authentication,connection,Database,Postgresql,Authentication,Connection,我已经在CentOS服务器上安装了PostgreSQL 8.4,并从shell连接到root用户并访问PostgreSQL shell 我在PostgreSQL中创建了数据库和用户 当尝试从PHP脚本连接时,它显示身份验证失败 如何创建新用户以及如何向他们授予特定数据库的权限?使用密码创建用户: 然后授予特定数据库的用户权限: 例如: grant all privileges on database db_name to someuser; 从CLI: $ su - postgres $

我已经在CentOS服务器上安装了PostgreSQL 8.4,并从shell连接到root用户并访问PostgreSQL shell

我在PostgreSQL中创建了数据库和用户

当尝试从PHP脚本连接时,它显示身份验证失败


如何创建新用户以及如何向他们授予特定数据库的权限?

使用密码创建用户:

然后授予特定数据库的用户权限:

例如:

grant all privileges on database db_name to someuser;
从CLI:

$ su - postgres 
$ psql template1
template1=# CREATE USER tester WITH PASSWORD 'test_password';
template1=# GRANT ALL PRIVILEGES ON DATABASE "test_database" to tester;
template1=# \q
PHP(在localhost上经过测试,可以正常工作):


我已经这样做了:用密码“ravi”创建用户ravi;将数据库提名的所有特权授予ravi;但我无法连接以下PHP代码:@Darji Krunal:PHP错误是什么,它是什么样子的?授予所有权限*…错误消息到底是什么?你能从命令行通过
psql
登录吗?这到底是怎么被当作离题关闭的?@BenCreasy可能是因为它更适合serverfault.com或superuser?@knocte所以我想你是说它属于6类,有一个例外“除非它们直接涉及编程或编程工具”,我想postgres不算是一个编程工具吧?有趣的是,对于Ubuntu来说,它应该是sudo su-postgres对于Ubuntu来说,它应该是:sudo-u postgres psql我认为发出命令的最便捷的方式是:
psql-u postgres-c“CREATE ROLE…”
只要记住,在shell中键入和运行的所有东西通常都会在shell历史中结束,包括您选择的密码。请注意命令中
之间的区别!
$ su - postgres 
$ psql template1
template1=# CREATE USER tester WITH PASSWORD 'test_password';
template1=# GRANT ALL PRIVILEGES ON DATABASE "test_database" to tester;
template1=# \q
  $connString = 'port=5432 dbname=test_database user=tester password=test_password';
  $connHandler = pg_connect($connString);
  echo 'Connected to '.pg_dbname($connHandler);