我在我的CentOS服务器上安装了PostgreSQL 8.4,并从shell连接到root用户并访问了PostgreSQL shell。
我已经在PostgreSQL中创建了数据库和用户。
当我从我的PHP脚本尝试连接时,它显示身份验证失败。
我应该如何创建一个新用户,并为特定的数据库授予他们权限?
我在我的CentOS服务器上安装了PostgreSQL 8.4,并从shell连接到root用户并访问了PostgreSQL shell。
我已经在PostgreSQL中创建了数据库和用户。
当我从我的PHP脚本尝试连接时,它显示身份验证失败。
我应该如何创建一个新用户,并为特定的数据库授予他们权限?
从命令行界面:
$ 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(在本地测试,按预期工作):
$connString = 'port=5432 dbname=test_database user=tester password=test_password';
$connHandler = pg_connect($connString);
echo 'Connected to '.pg_dbname($connHandler);
sudo su - postgres
命令。 - Hengjiepsql -U postgres -c "CREATE ROLE..."
。 - Hugo Mota'
和 "
的区别!请注意不要改变原意,使内容更通俗易懂。 - andilabs创建带有密码的用户:
http://www.postgresql.org/docs/current/static/sql-createuser.html
CREATE USER name [ [ WITH ] option [ ... ] ]
where option can be:
SUPERUSER | NOSUPERUSER
| CREATEDB | NOCREATEDB
| CREATEROLE | NOCREATEROLE
| CREATEUSER | NOCREATEUSER
| INHERIT | NOINHERIT
| LOGIN | NOLOGIN
| REPLICATION | NOREPLICATION
| CONNECTION LIMIT connlimit
| [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password'
| VALID UNTIL 'timestamp'
| IN ROLE role_name [, ...]
| IN GROUP role_name [, ...]
| ROLE role_name [, ...]
| ADMIN role_name [, ...]
| USER role_name [, ...]
| SYSID uid
然后为特定数据库授予用户权限:
http://www.postgresql.org/docs/current/static/sql-grant.html
示例:
grant all privileges on database db_name to someuser;
psql
登录? - user330315