Utilisateurs et groupes : changements relatifs à la réplication initiale¶
Attention
Ce changement de comportement est présent dans le bundle 2023_04.
Pour connaître le statut actuel du bundle, reportez-vous à Historique du bundle.
Si vous utilisez un groupe de réplication ou de basculement pour répliquer des USERS et/ou des ROLES d’un compte source vers un compte cible, et qu’il y a des utilisateurs/rôles existants dans ce compte qui ont été créés par d’autres moyens que la réplication, l’opération d’actualisation initiale de ces types d’objets entraîne la suppression de tous les utilisateurs et/ou rôles dans le compte cible.
Si l’actualisation initiale supprime des utilisateurs et/ou des rôles dans le compte cible, elle peut entraîner une perte de données et de métadonnées :
Si des USERS sont inclus dans la liste OBJECT_TYPES pour le groupe de réplication ou de basculement :
Les feuilles de calcul sont perdues
L’historique des requêtes est perdu
Si des USERS sont inclus dans la liste OBJECT_TYPES, mais pas de ROLES :
Les privilèges accordés aux utilisateurs sont perdus
Si des ROLES sont inclus dans la liste OBJECT_TYPES :
Les privilèges accordés pour partager des objets sont perdus
Dans une prochaine version, ce comportement sera modifié comme suit :
- Précédemment:
Si un groupe de réplication ou de basculement inclut des USERS et/ou des ROLES dans la liste OBJECT_TYPES, l’opération d’actualisation initiale de ces types d’objets entraîne la suppression d’utilisateurs et/ou de rôles dans le compte cible.
- Actuellement:
Si un groupe de réplication ou de basculement inclut des USERS et/ou des ROLES dans la liste OBJECT_TYPES, l’opération d’actualisation initiale de ces types d’objets échouera avec un message d’erreur si :
Il existe des utilisateurs et/ou des rôles dans le compte cible qui correspondent à des objets portant le même nom dans le compte source et
Des USERS et/ou des ROLES n’ont pas été répliqués précédemment sur le compte cible
Le message d’erreur invite l’utilisateur à choisir entre deux options :
Forcez l’opération d’actualisation et autorisez la suppression de tout utilisateur et/ou rôle existant dans le compte cible. Les utilisateurs/rôles du compte source seront recréés dans le compte cible.
Pour forcer une actualisation, vous devez exécuter l’instruction suivante :
ALTER ( { FAILOVER | REPLICATION } ) GROUP <rg_name> REFRESH FORCE;
Associez les objets de compte par le nom : les utilisateurs et/ou les rôles portant le même nom dans le compte cible et le compte source seront associés. Les utilisateurs/rôles du compte cible qui sont associés ne seront pas supprimés.
Pour lier les comptes par leur nom, exécutez l’instruction suivante :
SELECT SYSTEM$LINK_ACCOUNT_OBJECTS_BY_NAME('<rg_name>');
Note
Tout utilisateur/rôle dans le compte cible qui n’a pas d’objet correspondant dans le compte source avec le même nom est supprimé.
Pour plus d’informations, reportez-vous à Appliquer des IDs globaux à des objets créés par des scripts dans des comptes cibles.
Réf : 1044