首页 文章

如何在postgresql中为db创建用户? [关闭]

提问于
浏览
174

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

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

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

如何创建新用户以及如何为特定数据库授予权限?

2 回答

  • 295

    来自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上测试,它按预期工作):

    $connString = 'port=5432 dbname=test_database user=tester password=test_password';
      $connHandler = pg_connect($connString);
      echo 'Connected to '.pg_dbname($connHandler);
    
  • 38

    使用密码创建用户:

    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;
    

相关问题