用户和组:对初始复制的变更

注意

此行为变更在 2023_04 捆绑包中。

有关捆绑包的当前状态,请参阅 捆绑包历史记录

如果您使用复制或故障转移组将 USERS 和/或 ROLES 从源账户复制到目标账户,而该账户中的现有用户/角色是通过复制以外的方式创建的,则这些对象类型的初始刷新操作会导致目标账户中的所有用户和/或角色被删除。

如果初始刷新删除了目标账户中的用户和/或角色,则可能会导致数据和元数据丢失:

  • 如果复制或故障转移组的 OBJECT_TYPES 列表中包含 USERS,则会导致以下数据和元数据丢失:

    • 工作表丢失

    • 查询历史记录丢失

  • 如果 OBJECT_TYPES 列表中包含 USERS,但不包含 ROLES,则会导致以下数据和元数据丢失:

    • 向用户授予的权限丢失

  • 如果 OBJECT_TYPES 列表中包含 ROLES,则会导致以下数据和元数据丢失:

    • 向共享对象授予的权限丢失

在未来的版本中,此行为将发生如下变更:

之前:

如果复制或故障转移组的 OBJECT_TYPES 列表中包含 USERS 和/或 ROLES,则这些对象类型的初始刷新操作会导致目标账户中的用户和/或角色被删除。

现在:

如果复制或故障转移组的 OBJECT_TYPES 列表中包含 USERS 和/或 ROLES,则当出现以下情况时,这些对象类型的初始刷新操作将失败并显示错误消息:

  • 目标账户中存在与源账户中同名的对象相匹配的现有用户和/或角色,并且

  • USERS 和/或 ROLES 之前没有复制到目标账户

错误消息将提示用户两个选项:

  • 强制刷新操作并允许删除目标账户中的任何现有用户和/或角色。源账户中的用户/角色将在目标账户中重新创建。

    要强制刷新,您可以执行以下语句:

    ALTER ( { FAILOVER | REPLICATION } ) GROUP <rg_name> REFRESH FORCE;
    
    Copy
  • 按名称链接账户对象:目标账户和源账户中具有相同名称的用户和/或角色将被链接。目标账户中链接的用户/角色不会被删除。

    要按名称链接账户对象,请执行以下语句:

    SELECT SYSTEM$LINK_ACCOUNT_OBJECTS_BY_NAME('<rg_name>');
    
    Copy

备注

如果目标账户中的任何用户/角色在源账户中没有与之匹配的同名对象,就会被删除。

有关更多信息,请参阅 将全局 IDs 应用于目标账户中通过脚本创建的对象

参考:1044

语言: 中文