Database Designer 访问要求

默认情况下,只有具有 DBADMIN 角色的用户才能运行 Database Designer。非 DBADMIN 用户只有在被授予必要的权限和 DBDUSER 角色之后,才能运行 Database Designer,如下所述。此外,您还可以允许用户在管理控制台上运行 Database Designer(请参阅允许用户在管理控制台上运行 Database Designer)。

  1. 使用 CREATE LOCATION 将临时文件夹添加到所有群集节点中:

    => CREATE LOCATION '/tmp/dbd' ALL NODES;
    
  2. 使用 GRANT DATABASE 授予所需用户在当前(默认)数据库上创建架构的 CREATE 权限:

    => GRANT CREATE ON DATABASE DEFAULT TO dbd-user;
    
  3. 使用 GRANT ROLE 将 DBDUSER 角色授予 dbd-user

    => GRANT DBDUSER TO dbd-user;
    
  4. 在群集的所有节点上,使用 GRANT LOCATION 授予 dbd-user 临时文件夹的访问权限。

    => GRANT ALL ON LOCATION '/tmp/dbd' TO dbd-user;
    
  5. 分别使用 GRANT SCHEMAGRANT TABLE 授予 dbd-user 对一个或多个数据库架构及其表的权限:

    => GRANT ALL ON SCHEMA this-schema[,...] TO dbd-user;
    => GRANT ALL ON ALL TABLES IN SCHEMA this-schema[,...] TO dbd-user;
    
  6. 通过以下方式之一启用 dbd-user 中的 DBDUSER 角色:

    • 对于 dbd-user,使用 SET ROLE 启用 DBDUSER 角色:

      => SET ROLE DBDUSER;
      
    • 对于 DBADMIN,使用 ALTER USER 在每次登录时自动为 dbd-user 启用 DBDUSER 角色:

      => ALTER USER dbd-user DEFAULT ROLE DBDUSER;
      

使用户能够在管理控制台上运行 Database Designer

上文所述,已授予 DBDUSER 角色和所需权限的用户也可以在管理控制台上运行 Database Designer:

  1. 以超级用户身份登录管理控制台。

  2. 单击 MC 设置 (MC Settings)

  3. 单击用户管理 (User Management)

  4. 指定 MC 用户

    • 要创建 MC 用户,请单击 添加 (Add)

    • 要使用现有的 MC 用户,请选择该用户并单击 编辑 (Edit)

  5. 单击数据库访问级别 (DB access level) 窗口旁边的添加 (Add)

  6. 添加权限 (Add Permissions) 窗口中:

    1. 选择数据库 (Choose a database) 下拉列表中,选择要为其创建设计的数据库。

    2. 数据库用户名 (Database username) 字段中,输入您先前创建的 dbd-user 用户名。

    3. 在数据库密码字段中,输入数据库密码。

    4. 限制访问 (Restrict access) 下拉列表中,选择此用户具有的 MC 用户级别。

  7. 单击确定 (OK) 以保存更改。

  8. 退出 MC 超级用户帐户。

现在,MC 用户已映射到 dbd-user。以 MC 用户身份登录,然后使用 Database Designer 为数据库创建优化设计。

DBDUSER 功能和限制

对于 DBDUSER,以下约束适用:

  • 设计必须将 K-safety 设置为等于系统 K-safety。如果设计因缺少足够的表伙伴实例投影而违反 K-safety,则设计不会完成。

  • 只有部署设计完成之后,才可显式推进 Ancient History Mark (AHM)(例如,调用 MAKE_AHM_NOW)。

创建设计时,会自动获得处理该设计的权限。其他任务可能需要额外的权限:

提交设计表
  • 对于设计表架构的 USAGE

  • 对于设计表的 OWNER

提交单个设计查询
  • 对于设计查询的 EXECUTE
提交设计查询文件
  • 对于查询文件所在存储位置的读取权限

  • 文件中所有查询的 EXECUTE 权限

根据用户查询结果提交设计查询
  • 对于用户查询的 EXECUTE 权限

  • 从用户查询结果中获取的每个设计查询的 EXECUTE 权限

创建设计和部署脚本
  • 对于设计脚本存储位置的 WRITE 权限

  • 对于部署脚本存储位置的 WRITE 权限