Avant de migrer des données avec Data Transmission Service (DTS), créez un utilisateur de base de données pour chaque source de données. Cet utilisateur servira d'utilisateur de migration ou de synchronisation et doit disposer des autorisations requises sur les sources de données source et cible.
Autorisations requises lorsque la source est une base de données OceanBase en mode compatible MySQL
Lorsqu'une base de données OceanBase en mode compatible MySQL sert de source, l'utilisateur de migration ou de synchronisation doit disposer des autorisations suivantes :
-
Si la cible est une file d'attente de messages, telle que Kafka, DataHub ou RocketMQ, l'utilisateur doit disposer de l'autorisation
SELECTsur la base de données source.Si la cible est une base de données, telle qu'une base de données MySQL ou une base de données OceanBase en mode compatible MySQL, l'utilisateur doit disposer de l'autorisation
SELECTsur la base de données source et sur la base de donnéesoceanbase.GRANT SELECT ON <database_name>.* TO '<user_name>'; GRANT SELECT ON oceanbase.* TO '<user_name>';ImportantL'autorisation
SELECTsur la base de donnéesoceanbasen'est requise que pour OceanBase Database V4.0.0 et versions ultérieures. -
Lors d'une migration de données entre des instances OceanBase Database en mode compatible MySQL, si la synchronisation incrémentielle inverse est activée, l'utilisateur de migration doit également disposer des autorisations
CREATE,SELECT,INSERT,UPDATEetDELETEsur la base de donnéestest.GRANT CREATE,SELECT,INSERT,UPDATE,DELETE ON test.* TO '<user_name>'; -
Pour la synchronisation incrémentielle des données d'une instance OceanBase Database dans un VPC, vous devez lire les données des journaux incrémentiels et les informations sur la structure des objets de la base de données. Créez un utilisateur dans le locataire
sysde l'instance source et accordez-lui l'autorisationSELECT ON *.*.GRANT SELECT ON <database_name>.* TO <drc_user>;
Autorisations requises lorsque la cible est une base de données OceanBase en mode compatible MySQL
Lorsqu'une base de données OceanBase en mode compatible MySQL sert de cible, l'utilisateur de migration doit disposer des autorisations suivantes :
-
Les autorisations
CREATE,CREATE VIEW,SELECT,INSERT,UPDATE,ALTER,INDEXetDELETEsur la base de données cible.GRANT CREATE,CREATE VIEW,SELECT,INSERT,UPDATE,ALTER,INDEX,DELETE ON <database_name>.* TO '<user_name>'; -
L'autorisation
SELECTsur l'ensemble du locataire.GRANT SELECT ON *.* TO '<user_name>';
Autorisations requises lorsque la source est une base de données OceanBase en mode compatible Oracle
Lorsqu'une base de données OceanBase en mode compatible Oracle sert de source, l'utilisateur de migration ou de synchronisation doit disposer des autorisations suivantes :
Pour les versions d'OceanBase Database en mode compatible Oracle antérieures à la V2.2.70, l'utilisateur source doit disposer de l'autorisation
GRANT SELECT ON *.* TO '<user_name>';.-
Pour OceanBase Database en mode compatible Oracle V2.2.70 et versions ultérieures, l'utilisateur source doit disposer de l'autorisation
GRANT DBA TO '<user_name>';.-
Pour OceanBase Database en mode compatible Oracle V4.0.0 et versions ultérieures, l'utilisateur de migration source doit également disposer de l'autorisation
SELECTsurDBA_OB_ARCHIVELOG.GRANT SELECT ON DBA_OB_ARCHIVELOG TO '<user_name>'; -
Pour OceanBase Database en mode compatible Oracle V4.2.0 et versions ultérieures, l'utilisateur de migration source doit également disposer de l'autorisation
SELECTsurDBA_OB_TABLE_LOCATIONS.GRANT SELECT ON DBA_OB_TABLE_LOCATIONS TO '<user_name>';
-
Autorisations requises lorsque la cible est une base de données OceanBase en mode compatible Oracle
Lors de la migration de données d'une base de données Oracle vers une base de données OceanBase en mode compatible Oracle, les autorisations requises varient selon la version de la base de données cible.
Version cible | Description des autorisations |
V2.2.5 ou V2.2.3 | Accordez des autorisations à l'utilisateur de migration de l'une des deux manières suivantes :
|
V2.2.7 et versions ultérieures | Accordez des autorisations à l'utilisateur de migration de l'une des deux manières suivantes :
|
Autorisations requises lorsque la source est une base de données Oracle
Une fois l'utilisateur créé, les autorisations requises varient selon la version de la base de données Oracle et le rôle de l'utilisateur.
Pour une base de données secondaire Active Data Guard (ADG), les autorisations accordées peuvent ne pas prendre effet immédiatement. Le cas échéant, exécutez la commande
ALTER SYSTEM FLUSH SHARED_POOL;dans la base de données secondaire pour actualiser le Shared Pool.Les autorisations décrites dans cette rubrique incluent des autorisations larges telles que
SELECT ANY TRANSACTION,SELECT ANY TABLEetSELECT ANY DICTIONARY. Il ne s'agit pas des autorisations minimales requises. Pour améliorer la sécurité lorsque la source est une base de données Oracle, accordez des autorisations plus granulaires au lieu d'utiliserANY. Pour plus d'informations, consultez la section Autorisations minimales pour une base de données Oracle source.
Autorisations de l'utilisateur DBA pour les versions antérieures à Oracle 12c
Si votre environnement vous permet d'attribuer le rôle d'administrateur de base de données (DBA) à l'utilisateur de migration et que la version de la base de données Oracle est antérieure à 12c, exécutez l'instruction suivante pour accorder les autorisations DBA à l'utilisateur de migration.
GRANT DBA TO <user_name>;
Autorisations de l'utilisateur non-DBA pour les versions antérieures à Oracle 12c
Si votre environnement exige que vous n'accordiez que les autorisations nécessaires à l'utilisateur de migration et que la version de la base de données Oracle est antérieure à 12c, procédez comme suit :
-
Accordez l'autorisation CONNECT.
GRANT CONNECT TO <user_name>; -
Accordez les autorisations
CREATE SESSION,ALTER SESSION,SELECT ANY TRANSACTION,SELECT ANY TABLEetSELECT ANY DICTIONARYà l'utilisateur de migration.GRANT CREATE SESSION, ALTER SESSION, SELECT ANY TRANSACTION, SELECT ANY TABLE, SELECT ANY DICTIONARY TO <user_name>; -
Accordez les autorisations liées à
LOGMINERà l'utilisateur de migration.GRANT EXECUTE ON SYS.DBMS_LOGMNR TO <user_name>; -
Accordez les autorisations
CREATE TABLEetUNLIMITED TABLESPACEà l'utilisateur de migration.GRANT CREATE TABLE, UNLIMITED TABLESPACE TO <user_name>; -
Si le nom du schéma que vous souhaitez migrer est identique à
user_name, exécutez l'instruction suivante.GRANT CREATE SEQUENCE,CREATE VIEW TO <user_name>;Si le nom du schéma que vous souhaitez migrer est différent de
user_name, exécutez l'instruction suivante.GRANT CREATE ANY TABLE,CREATE ANY INDEX,DROP ANY TABLE,ALTER ANY TABLE,COMMENT ANY TABLE, DROP ANY INDEX,ALTER ANY INDEX,CREATE ANY SEQUENCE,ALTER ANY SEQUENCE,DROP ANY SEQUENCE, CREATE ANY VIEW,DROP ANY VIEW,INSERT ANY TABLE,DELETE ANY TABLE,UPDATE ANY TABLE TO <user_name>;Vous pouvez également exécuter les instructions suivantes.
GRANT CREATE ANY TABLE,CREATE ANY INDEX,DROP ANY TABLE,ALTER ANY TABLE,COMMENT ANY TABLE, DROP ANY INDEX,ALTER ANY INDEX,CREATE ANY SEQUENCE,ALTER ANY SEQUENCE,DROP ANY SEQUENCE, CREATE ANY VIEW,DROP ANY VIEW TO <user_name>; # Add the specific table to be migrated to the Oracle database. GRANT DELETE, INSERT, UPDATE ON <database_name>.<table_name> TO <user_name>;
Autorisations de l'utilisateur DBA pour Oracle 12c et versions ultérieures
Si votre environnement vous permet d'attribuer le rôle DBA à l'utilisateur de migration et que la version de la base de données Oracle est 12c ou ultérieure, vérifiez si vous utilisez une base de données enfichable (PDB) d'Oracle 12c, 18c ou 19c.
-
Non-PDB
-
Exécutez l'instruction suivante pour accorder les autorisations DBA à l'utilisateur de migration.
GRANT DBA TO <user_name>; -
Exécutez l'instruction suivante pour accorder l'autorisation de lecture sur la table
SYS.USER$à l'utilisateur de migration.GRANT SELECT ON SYS.USER$ TO <user_name>;
-
-
PDB
Si la source de migration des données est une PDB d'Oracle 12c, 18c ou 19c, le compte utilisé pour extraire les données de la PDB doit être un utilisateur commun.
-
Exécutez l'instruction suivante pour basculer vers CDB$ROOT.
ALTER SESSION SET CONTAINER=CDB$ROOT;Chaque utilisateur commun peut se connecter au conteneur racine, nommé
CDB$ROOT, et à toute PDB pour laquelle il dispose d'autorisations de connexion, puis effectuer les opérations associées. -
Exécutez l'instruction suivante pour accorder les autorisations DBA à l'utilisateur de migration.
GRANT DBA TO C##XXX CONTAINER=ALL; -
Exécutez l'instruction suivante pour accorder l'autorisation de lecture sur la table
SYS.USER$à l'utilisateur de migration.GRANT SELECT ON SYS.USER$ TO C##XXX CONTAINER=ALL;
-
Autorisations de l'utilisateur non-DBA pour Oracle 12c et versions ultérieures
Si votre environnement exige que vous n'accordiez que les autorisations nécessaires à l'utilisateur de migration et que la version de la base de données Oracle est 12c ou ultérieure, procédez comme suit :
-
Non-PDB
-
Accordez l'autorisation CONNECT.
GRANT CONNECT TO <user_name>; -
Exécutez l'instruction suivante pour accorder l'autorisation de lecture sur la table
SYS.USER$à l'utilisateur de migration.GRANT SELECT ON SYS.USER$ TO <user_name>; -
Accordez les autorisations
CREATE SESSION,ALTER SESSION,SELECT ANY TRANSACTION,SELECT ANY TABLEetSELECT ANY DICTIONARYà l'utilisateur de migration.GRANT CREATE SESSION, ALTER SESSION, SELECT ANY TRANSACTION, SELECT ANY TABLE, SELECT ANY DICTIONARY TO <user_name>; -
Accordez les autorisations liées à
LOGMINERà l'utilisateur de migration.GRANT LOGMINING TO <user_name>; GRANT EXECUTE ON SYS.DBMS_LOGMNR TO <user_name>; -
Accordez les autorisations
CREATE TABLEetUNLIMITED TABLESPACEà l'utilisateur de migration.GRANT CREATE TABLE, UNLIMITED TABLESPACE TO <user_name>; -
Si le nom du schéma que vous souhaitez migrer est identique à
user_name, exécutez l'instruction suivante.GRANT CREATE SEQUENCE,CREATE VIEW TO <user_name>;Si le nom du schéma que vous souhaitez migrer est différent de
user_name, exécutez l'instruction suivante.GRANT CREATE ANY TABLE,CREATE ANY INDEX,DROP ANY TABLE,ALTER ANY TABLE,COMMENT ANY TABLE, DROP ANY INDEX,ALTER ANY INDEX,CREATE ANY SEQUENCE,ALTER ANY SEQUENCE,DROP ANY SEQUENCE, CREATE ANY VIEW,DROP ANY VIEW,INSERT ANY TABLE,DELETE ANY TABLE,UPDATE ANY TABLE TO <user_name>;
-
-
PDB
Si la source de migration des données est une PDB d'Oracle 12c, 18c ou 19c, le compte utilisé pour extraire les données de la PDB doit être un utilisateur commun.
-
Accordez l'autorisation CONNECT.
GRANT CONNECT TO <C##XXX> CONTAINER=ALL; -
Exécutez l'instruction suivante pour accorder l'autorisation de lecture sur la table
SYS.USER$à l'utilisateur de migration.GRANT SELECT ON SYS.USER$ TO <C##XXX> CONTAINER=ALL; -
Accordez les autorisations
CREATE SESSION,ALTER SESSION,SELECT ANY TRANSACTION,SELECT ANY TABLEetSELECT ANY DICTIONARYà l'utilisateur de migration.GRANT CREATE SESSION, ALTER SESSION, SELECT ANY TRANSACTION, SELECT ANY TABLE, SELECT ANY DICTIONARY TO <C##XXX> CONTAINER=ALL; -
Accordez les autorisations liées à
LOGMINERà l'utilisateur de migration.GRANT LOGMINING TO <C##XXX> CONTAINER=ALL; GRANT EXECUTE ON SYS.DBMS_LOGMNR TO <C##XXX> CONTAINER=ALL; -
Accordez les autorisations
CREATE TABLEetUNLIMITED TABLESPACEà l'utilisateur de migration.GRANT CREATE TABLE, UNLIMITED TABLESPACE TO <C##XXX> CONTAINER=ALL; -
Si le nom du schéma que vous souhaitez migrer est identique à
C##XXX, exécutez l'instruction suivante.GRANT CREATE SEQUENCE,CREATE VIEW TO <C##XXX> CONTAINER=ALL;Si le nom du schéma que vous souhaitez migrer est différent de
C##XXX, exécutez l'instruction suivante.GRANT CREATE ANY TABLE,CREATE ANY INDEX,DROP ANY TABLE,ALTER ANY TABLE,COMMENT ANY TABLE, DROP ANY INDEX,ALTER ANY INDEX,CREATE ANY SEQUENCE,ALTER ANY SEQUENCE,DROP ANY SEQUENCE, CREATE ANY VIEW,DROP ANY VIEW,INSERT ANY TABLE,DELETE ANY TABLE,UPDATE ANY TABLE TO <C##XXX> CONTAINER=ALL;
-
Autorisations requises lorsque la source est une base de données MySQL
-
L'utilisateur de la base de données doit disposer de l'autorisation de lecture sur la base de données que vous souhaitez migrer. Si vous utilisez MySQL 8.0, accordez également l'autorisation
SHOW VIEW.GRANT SELECT ON <database_name>.* TO '<user_name>'; -
Pour la synchronisation incrémentielle depuis une base de données MySQL, l'utilisateur de la base de données doit disposer des autorisations
REPLICATION CLIENT,REPLICATION SLAVEetSELECT *.*.GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO '<user_name>' [WITH GRANT OPTION]; GRANT SELECT ON *.* TO '<user_name>';RemarqueLors de la synchronisation incrémentielle, le projet risque d'être interrompu si l'utilisateur ne dispose pas de l'autorisation de lecture sur toutes les tables de la base de données source.
Le paramètre
WITH GRANT OPTIONest facultatif.
-
Lors de la migration de données d'une base de données MySQL vers une base de données OceanBase en mode compatible MySQL, si la synchronisation incrémentielle inverse est activée, l'utilisateur de migration doit également disposer des autorisations
CREATE,SELECT,INSERT,UPDATEetDELETEsur la base de donnéestest.GRANT CREATE,SELECT,INSERT,UPDATE,DELETE ON test.* TO '<user_name>';
Autorisations requises lorsque la source est une base de données TiDB
-
L'utilisateur de la base de données doit disposer de l'autorisation de lecture sur la base de données que vous souhaitez migrer.
GRANT SELECT ON <database_name>.* TO '<user_name>'; -
Pour la synchronisation incrémentielle depuis une base de données TiDB, l'utilisateur de la base de données doit disposer des autorisations
REPLICATION CLIENT,REPLICATION SLAVEetSELECT *.*.GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO '<user_name>' [WITH GRANT OPTION]; GRANT SELECT ON *.* TO '<user_name>';
Autorisations requises lorsque la cible est une base de données AnalyticDB for MySQL
AnalyticDB for MySQL (ADB) vous permet d'accorder différentes autorisations à différents niveaux de granularité pour contrôler l'accès. Pour plus d'informations, consultez la section Modèle d'autorisations.
ADB prend en charge le contrôle d'accès aux quatre niveaux de granularité suivants :
GLOBAL : Niveau du cluster
DB : Niveau de la base de données
TABLE : Niveau de la table
COLUMN : Niveau de la colonne (champ)
Autorisations requises lorsque la cible est une instance Kafka
Si l'instance Kafka nécessite une authentification, consultez la section Créer une source de données Kafka.
Un utilisateur Kafka doit disposer des autorisations pour effectuer les opérations suivantes :
Créer et afficher des rubriques.
Afficher les informations de partition des rubriques.
Écrire des enregistrements.
Lire des enregistrements.
Autorisations requises lorsque la cible est une instance DataHub
DataHub authentifie les utilisateurs en fonction des endpoints, des ID AccessKey et des secrets AccessKey.
Un utilisateur DataHub doit disposer des autorisations GetProject, CreateTopic, ListTopic, GetTopic, ListShard, PutRecords, GetRecords et GetCursor.
Autorisations requises lorsque la cible est une instance RocketMQ
Lorsqu'une instance RocketMQ sert de cible, l'utilisateur de synchronisation doit disposer des autorisations pour effectuer les opérations suivantes :
Créer et afficher des rubriques.
Afficher les informations de file d'attente de messages des rubriques.
Écrire des enregistrements.
Lire des enregistrements.