用户和组:对初始复制的变更¶
如果您使用复制或故障转移组将 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;
按名称链接账户对象:目标账户和源账户中具有相同名称的用户和/或角色将被链接。目标账户中链接的用户/角色不会被删除。
要按名称链接账户对象,请执行以下语句:
SELECT SYSTEM$LINK_ACCOUNT_OBJECTS_BY_NAME('<rg_name>');
备注
如果目标账户中的任何用户/角色在源账户中没有与之匹配的同名对象,就会被删除。
有关更多信息,请参阅 将全局 IDs 应用于目标账户中通过脚本创建的对象。
参考:1044