开发者社区 问答 正文

快速入门PPAS版-附录:用户及 Schema 管理


在使用 RDS 的过程中,由于 superuser 不完全放开,因此我们建议您在使用数据库时遵循单独建立用户并通过 schema 管理您的私有空间。

操作步骤


[tr=transparent][url=http://g.alicdn.com/aliyun-icms/assets/icms-main/images/note.png][/url]说明[tr=transparent]

  • 通过以上操作,用户 myadmin 将保持作为数据库的初始管理帐号。
  • 所有用户业务操作都通过 mydb 进行处理,系统原生的系统库 edb 及 postgres 会存有系统表数据,不建议将业务数据放到系统库中。
  • 以上操作以后库 mydb 库的主属用户将是 myuser,通过帐号 myuser 或以在此库建立任意对象

展开
收起
梨好橙 2018-08-31 23:49:48 1465 分享 版权
阿里云 AI 助理回答

在使用RDS PostgreSQL时,为了确保数据库的安全性和管理的规范性,推荐采取以下步骤来创建独立用户并利用Schema管理个人数据空间:

创建与配置新用户

  1. 导出自建PostgreSQL数据库的Owner用户权限:

    • 首先,在自建PostgreSQL环境中执行命令以导出特定用户的权限信息:
      pg_dumpall -g -h 服务器地址 -p 端口 -U 用户名
      
    • 从导出结果中提取testuser(或您需要迁移的用户)的角色定义部分,并准备修改以适应RDS环境。
  2. 在RDS PostgreSQL实例中创建用户:

    • 使用高权限账号登录RDS PostgreSQL,根据之前导出的信息创建用户,但需将SUPERUSER权限替换为rds_SUPERUSER
      CREATE ROLE myuser WITH rds_SUPERUSER INHERIT CREATEROLE CREATEDB LOGIN REPLICATION BYPASSRLS PASSWORD '安全密码';
      
  3. 调整角色权限(如需):

    • 根据实际需求,可能需要进一步细化用户的权限设置,例如仅赋予CREATEDBLOGIN权限等。

创建与管理Schema

  1. 登录RDS实例并创建目标数据库:

    • 确保新建数据库字符集、Collate和Ctype与原库一致,同时指定Owner为新创建的用户:
      CREATE DATABASE mydb WITH OWNER myuser TEMPLATE template0 ENCODING 'UTF8' LC_CTYPE 'en_US.UTF-8' LC_COLLATE 'en_US.UTF-8';
      
  2. 在新数据库中创建Schema:

    • 登录到mydb数据库,为每个业务应用或用户创建单独的Schema,以隔离数据和权限:
      CREATE SCHEMA IF NOT EXISTS myschema AUTHORIZATION myuser;
      
  3. 分配Schema权限:

    • 授予用户在其Schema内的操作权限,例如:
      GRANT ALL PRIVILEGES ON SCHEMA myschema TO myuser;
      

日常操作建议

  • 使用myuser进行日常操作:所有日常的业务数据操作应通过myuser账号在对应的Schema内进行。
  • 避免直接操作系统库:确保业务数据不存放于系统库(如edb, postgres)中,这些库用于存储系统表数据。

通过上述步骤,您可以有效地实现用户与Schema的分离管理,增强数据库的安全性和可维护性。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答