【问题标题】:Create Multiple PostgreSQL Databases with Different Users and Passwords使用不同的用户和密码创建多个 PostgreSQL 数据库
【发布时间】:2020-11-02 09:03:18
【问题描述】:

我们如何在 PostgreSQL 中创建多个具有不同用户和密码的数据库?

例如 - 我创建了一个 AWS PostgreSQL 实例,现在我想创建 3 个数据库,每个数据库都具有单独的访问权限,例如

数据库01

 User - user01     
 Password - password01

数据库02

   User - user02
   Password - password02

数据库03

   User - user03
   Password - password03

每个数据库应仅对其用户具有完全访问权限,并且应限制在其他数据库中创建和删除任何内容,并且应仅具有读取权限。

由于我是 PostgreSQL 的新手,我希望手动和自动化实现上述场景。

感谢任何帮助。

【问题讨论】:

    标签: database postgresql amazon-rds


    【解决方案1】:

    这些是我遵循的步骤:

    1. 使用 Postgres ADMIN 用户使用 PgAdmin4 GUI 连接到 AWS RDS 实例。

    2. 使用管理员用户创建 3 个数据库 [database01、02 和 03]。

    3. 使用以下命令创建具有管理员用户的用户:

    CREATE USER user01 with ENCRYPTED PASSWORD 'password01';
    CREATE USER user02 with ENCRYPTED PASSWORD 'password02';
    CREATE USER user03 with ENCRYPTED PASSWORD 'password03';
    
    1. 在 SQL 级别,每个用户确实可以连接到新创建的数据库,直到使用以下 SQL 命令:

      REVOKE connect ON DATABASE database01 FROM PUBLIC;
      REVOKE connect ON DATABASE database02 FROM PUBLIC;
      REVOKE connect ON DATABASE database03 FROM PUBLIC;
      
    2. 一旦完成,每个应该能够连接的用户或角色都必须被明确授予连接权限:

      GRANT CONNECT ON DATABASE database01 TO user01;
      GRANT CONNECT ON DATABASE database02 TO user02;
      GRANT CONNECT ON DATABASE database03 TO user03;
      
    3. 一旦我们授予连接,我们还可以使用以下命令向用户授予完全权限:

      GRANT ALL PRIVILEGES ON DATABASE database01 to user01;
      GRANT ALL PRIVILEGES ON DATABASE database02 to user02;
      GRANT ALL PRIVILEGES ON DATABASE database03 to user03;
      

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-18
      • 2013-06-30
      • 2012-08-23
      • 1970-01-01
      • 2015-12-20
      • 2012-11-26
      相关资源
      最近更新 更多