Usuários e grupos: mudanças na replicação inicial¶
Atenção
Essa mudança de comportamento está no pacote 2023_04.
Para saber o status atual do pacote, consulte Histórico do pacote.
Se você estiver usando um grupo de replicação ou failover para replicar USERS e/ou ROLES de uma conta de origem para uma conta de destino e houver usuários/funções existentes nessa conta que foram criados por meios diferentes da replicação, a operação de atualização inicial desses tipos de objeto resultará na exclusão de todos os usuários e/ou funções na conta de destino.
Se a atualização inicial excluir usuários e/ou funções na conta de destino, isso poderá resultar em perda de dados e metadados:
Se USERS estiverem incluídos na lista OBJECT_TYPES para o grupo de replicação ou failover:
As planilhas são perdidas
O histórico de consultas é perdido
Se USERS estiverem incluídos na lista OBJECT_TYPES, mas ROLES não:
As concessões de privilégios aos usuários são perdidas
Se ROLES estiverem incluídos na lista OBJECT_TYPES:
Concessões de privilégio para compartilhar objetos são perdidas
Em uma versão futura, esse comportamento será alterado da seguinte forma:
- Anteriormente:
Se um grupo de replicação ou failover incluir USERS e/ou ROLES na lista OBJECT_TYPES, a operação de atualização inicial desses tipos de objeto resultará na eliminação de usuários e/ou funções na conta de destino.
- Atualmente:
Se um grupo de replicação ou failover incluir USERS e/ou ROLES na lista OBJECT_TYPES, a operação de atualização inicial desses tipos de objeto falhará com uma mensagem de erro se:
Houver usuários e/ou funções existentes na conta de destino que correspondem a objetos com o mesmo nome na conta de origem e
USERS e/ou ROLES não foram replicados anteriormente para a conta de destino
A mensagem de erro solicitará ao usuário duas opções:
Forçar a operação de atualização e permitir que quaisquer usuários e/ou funções existentes na conta de destino sejam excluídos. Os usuários/funções na conta de origem serão recriados na conta de destino.
Para forçar uma atualização, você executaria a seguinte instrução:
ALTER ( { FAILOVER | REPLICATION } ) GROUP <rg_name> REFRESH FORCE;
Vincule os objetos de conta por nome: usuários e/ou funções com o mesmo nome na conta de destino e na conta de origem serão vinculados. Os usuários/funções na conta de destino que estão vinculados não serão excluídos.
Para vincular objetos de conta por nome, execute a seguinte instrução:
SELECT SYSTEM$LINK_ACCOUNT_OBJECTS_BY_NAME('<rg_name>');
Nota
Qualquer usuário/função na conta de destino que não tenha um objeto correspondente na conta de origem com o mesmo nome será descartado.
Para obter mais informações, consulte Aplicação de IDs globais a objetos criados por scripts em contas de destino.
Ref: 1044