若要使用云数据库RDS,您需要在实例中创建数据库和账号。本文介绍如何为RDS PostgreSQL实例创建数据库和账号。

账号类型

RDS PostgreSQL实例支持两种数据库账号:高权限账号和普通账号。详细说明如下。

账号类型 说明
高权限账号
  • 只能通过控制台或API创建和管理。
  • 实例中只能创建一个高权限账号,可以管理所有普通账号和数据库。
  • 开放了更多权限,可满足个性化和精细化的权限管理需求,例如可按用户分配不同表的查询权限。
  • 可以断开任意账号的连接。
普通账号
  • 可以通过控制台、API或者SQL语句创建和管理。
  • 一个实例可以创建多个普通账号 。
  • 需要手动给普通账号授予特定数据库的权限。
  • 普通账号不能创建和管理其他账号,也不能断开其他账号的连接。

注意事项

  • 同一实例下的数据库共享该实例下的所有资源。每个PostgreSQL类型的实例支持创建无数个数据库,支持创建一个高权限账号以及多个普通账号,您还可以通过SQL命令创建、管理普通账号和数据库。
  • 如果您要迁移本地数据库到RDS,请在RDS实例中创建与本地数据库一致的迁移账号和数据库。
  • 分配数据库账号权限时,请按最小权限原则和业务角色创建账号,并合理分配只读和读写权限。必要时可以把数据库账号和数据库拆分成更小粒度,使每个数据库账号只能访问其业务之内的数据。如果不需要数据库写入操作,请分配只读权限。
  • 为保障数据库的安全,请将数据库账号的密码设置为强密码,并定期更换。

操作步骤

说明 如果您的PostgreSQL 10/11高可用版(云盘)页面和该操作步骤内的描述不一致,请参见下方PostgreSQL 10/11高可用版(云盘)临时控制台操作步骤
  1. 登录RDS管理控制台
  2. 在页面左上角,选择实例所在地域。
  3. 找到目标实例,单击实例ID。
  4. 在左侧导航栏中,单击账号管理
  5. 按如下步骤创建高权限账号。
    1. 单击创建账号创建初始账号
      说明 不同版本的按钮文字不同。
    2. 设置如下参数。
      参数 说明
      数据库账号
      • 长度为2~16个字符。
      • 由小写字母、数字或下划线组成。
      • 以字母开头,以字母或数字结尾。
      账号类型 选择高权限账号
      说明 如果之前点击的是创建初始账号,无此选项。
      密码
      • 长度为8~32个字符。
      • 由大写字母、小写字母、数字、特殊字符中的任意三种组成。
      • 特殊字符为!@#$%^&*()_+-=
      确认密码 再次输入相同的密码。
      备注 填写备注信息。
      说明 如果之前点击的是创建初始账号,无此选项。
      创建账号页面
    3. 单击创建
  6. 按如下步骤创建数据库和普通账号。
    1. 单击页面右上角的登录数据库
    2. 快捷登录页面,检查阿里云数据库标签页面显示的连接地址和端口信息。若信息正确,填写数据库用户名和密码,如下图所示。
      参数 说明
      网络地址:端口 填写实例的连接地址和端口信息。
      数据库用户名 填写要访问数据库的账号名称。
      输入密码 账号对应的密码。
    3. 单击登录
      说明 若您希望浏览器记住该账号的密码,可以先勾选记住密码,再单击登录
    4. 若出现将DMS服务器的IP段加入到RDS白名单中的提示,单击设置白名单,如下图所示。若需手动添加,请参见设置白名单
    5. 成功添加白名单后,单击登录
    6. 成功登录RDS实例后,在页面上方的菜单栏中,选择SQL操作 > SQL窗口
    7. 在SQL窗口中输入如下命令,创建数据库。
      CREATE DATABASE name
       [ [ WITH ] [ OWNER [=] user_name ]
              [ TEMPLATE [=] template ]
              [ ENCODING [=] encoding ]
              [ LC_COLLATE [=] lc_collate ]
              [ LC_CTYPE [=] lc_ctype ]
              [ TABLESPACE [=] tablespace_name ]
              [ CONNECTION LIMIT [=] connlimit ] ]

      例如,若您要创建一个名称为test的数据库,可以执行如下命令:

      create database test;
    8. 单击执行,完成创建数据库。
    9. 在SQL窗口中输入如下命令,创建普通账号。
      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

      例如,若您要创建一个名称为test2、密码为123456的用户,可以执行如下命令:

      create user test2 password '123456';
    10. 单击执行,完成创建普通账号。

PostgreSQL 10/11高可用版(云盘)临时控制台操作步骤

  1. 登录RDS管理控制台
  2. 在页面左上角,选择实例所在地域。
  3. 找到目标实例,单击实例ID。
  4. 在左侧导航栏单击账号管理
  5. 单击创建账号
  6. 设置如下参数。
    参数 说明
    账号名
    • 长度不超过16个字符。
    • 由小写字母、数字、下划线组成。
    • 以字母开头,以字母或数字结尾。
    账号类型 选择账号类型为高权限账号或普通账号。
    密码
    • 长度为8~32个字符。
    • 由大写字母、小写字母、数字、特殊字符中的任意三种组成。
    • 特殊字符为!@#$%^&*()_+-=
    确认密码 再次输入相同的密码。
  7. 单击确定
  8. 在左侧导航栏单击数据库管理
  9. 单击创建数据库
  10. 设置如下参数。
    参数 说明
    数据库(DB)名称
    • 最长64个字符。
    • 由小写字母、数字、中划线、下划线组成。
    • 以字母开头,以字母或数字结尾。
    支持字符集 数据库的字符集。
    Collate 字符串排序规则。
    Ctype 字符分类。
    数据库Owner 数据库的所有者,对数据库拥有ALL权限。
  11. 单击确定

常见问题

创建的账号在只读实例上可以用吗?

答:主实例创建的账号会同步到只读实例,只读实例无法管理账号。账号在只读实例上只能进行读操作,不能进行写操作。

相关API

API 描述
CreateAccount 创建账号