首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在postgresql中为数据库创建用户?

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

Stack Overflow用户
提问于 2012-06-02 17:37:44
回答 2查看 327.2K关注 0票数 227

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

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

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

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

EN

回答 2

Stack Overflow用户

发布于 2012-06-02 17:47:51

在CLI中:

代码语言:javascript
复制
$ 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 (在本地主机上经过测试,它可以正常工作):

代码语言:javascript
复制
  $connString = 'port=5432 dbname=test_database user=tester password=test_password';
  $connHandler = pg_connect($connString);
  echo 'Connected to '.pg_dbname($connHandler);
票数 372
EN

Stack Overflow用户

发布于 2012-06-02 17:42:09

使用密码创建用户:

http://www.postgresql.org/docs/current/static/sql-createuser.html

代码语言:javascript
复制
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

示例:

代码语言:javascript
复制
grant all privileges on database db_name to someuser;
票数 50
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10861260

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档