Sebelum melakukan migrasi data menggunakan Data Transmission Service (DTS), Anda harus membuat pengguna database untuk setiap sumber data sebagai pengguna migrasi atau sinkronisasi. Pengguna tersebut harus memiliki izin yang diperlukan pada sumber dan target sumber data.
Izin yang diperlukan ketika OceanBase Database dalam mode kompatibel MySQL menjadi sumber
Saat OceanBase Database dalam mode kompatibel MySQL menjadi sumber, pengguna migrasi atau sinkronisasi harus memiliki izin berikut:
Jika targetnya adalah antrian pesan, seperti Kafka, DataHub, atau RocketMQ, pengguna harus memiliki izin
SELECTpada database sumber.Jika targetnya adalah database, seperti database MySQL atau OceanBase Database dalam mode kompatibel MySQL, pengguna harus memiliki izin
SELECTpada database sumber dan databaseoceanbase.GRANT SELECT ON <database_name>.* TO '<user_name>'; GRANT SELECT ON oceanbase.* TO '<user_name>';PentingIzin
SELECTpada databaseoceanbasehanya diperlukan untuk OceanBase Database V4.0.0 dan versi yang lebih baru.Saat melakukan migrasi data antar instans OceanBase Database dalam mode kompatibel MySQL dengan sinkronisasi inkremental terbalik diaktifkan, pengguna migrasi juga harus memiliki izin
CREATE,SELECT,INSERT,UPDATE, danDELETEpada databasetest.GRANT CREATE,SELECT,INSERT,UPDATE,DELETE ON test.* TO '<user_name>';Untuk sinkronisasi data inkremental dari instans OceanBase Database dalam VPC, Anda perlu membaca data log inkremental dan informasi struktur objek database. Untuk itu, buat pengguna di tenant
syspada instans sumber dan berikan izinSELECT ON *.*kepada pengguna tersebut.GRANT SELECT ON <database_name>.* TO <drc_user>;
Izin yang diperlukan ketika OceanBase Database dalam mode kompatibel MySQL menjadi target
Saat OceanBase Database dalam mode kompatibel MySQL menjadi target, pengguna migrasi harus memiliki izin berikut:
Izin
CREATE,CREATE VIEW,SELECT,INSERT,UPDATE,ALTER,INDEX, danDELETEpada database target.GRANT CREATE,CREATE VIEW,SELECT,INSERT,UPDATE,ALTER,INDEX,DELETE ON <database_name>.* TO '<user_name>';Izin
SELECTpada seluruh tenant.GRANT SELECT ON *.* TO '<user_name>';
Izin yang diperlukan ketika OceanBase Database dalam mode kompatibel Oracle menjadi sumber
Saat OceanBase Database dalam mode kompatibel Oracle menjadi sumber, pengguna migrasi atau sinkronisasi harus memiliki izin berikut:
Untuk versi OceanBase Database dalam mode kompatibel Oracle sebelum V2.2.70, pengguna sumber harus memiliki izin
GRANT SELECT ON *.* TO '<user_name>';.Untuk OceanBase Database dalam mode kompatibel Oracle V2.2.70 dan versi yang lebih baru, pengguna sumber harus memiliki izin
GRANT DBA TO '<user_name>';.Untuk OceanBase Database dalam mode kompatibel Oracle V4.0.0 dan versi yang lebih baru, pengguna migrasi sumber juga harus memiliki izin
SELECTpadaDBA_OB_ARCHIVELOG.GRANT SELECT ON DBA_OB_ARCHIVELOG TO '<user_name>';Untuk OceanBase Database dalam mode kompatibel Oracle V4.2.0 dan versi yang lebih baru, pengguna migrasi sumber juga harus memiliki izin
SELECTpadaDBA_OB_TABLE_LOCATIONS.GRANT SELECT ON DBA_OB_TABLE_LOCATIONS TO '<user_name>';
Izin yang diperlukan ketika OceanBase Database dalam mode kompatibel Oracle menjadi target
Saat melakukan migrasi data dari database Oracle ke OceanBase Database dalam mode kompatibel Oracle, izin yang diperlukan bervariasi tergantung pada versi database target.
Versi target | Deskripsi izin |
V2.2.5 atau V2.2.3 | Anda dapat memberikan izin kepada pengguna migrasi dengan salah satu dari dua cara berikut:
|
V2.2.7 dan versi yang lebih baru | Anda dapat memberikan izin kepada pengguna migrasi dengan salah satu dari dua cara berikut:
|
Izin yang diperlukan ketika database Oracle menjadi sumber
Setelah membuat pengguna, izin yang diperlukan bervariasi tergantung pada versi database Oracle dan peran pengguna.
Untuk database sekunder Active Data Guard (ADG), izin yang diberikan mungkin tidak langsung berlaku. Jika hal ini terjadi, Anda dapat menjalankan perintah
ALTER SYSTEM FLUSH SHARED_POOL;di database sekunder untuk merefresh Shared Pool.Izin yang dijelaskan dalam topik ini mencakup izin luas seperti
SELECT ANY TRANSACTION,SELECT ANY TABLE, danSELECT ANY DICTIONARY. Ini bukan izin minimum yang diperlukan. Untuk meningkatkan keamanan saat database Oracle menjadi sumber, Anda dapat memberikan izin yang lebih granular daripada menggunakan `ANY`. Untuk informasi selengkapnya, lihat Izin Minimum untuk Database Oracle Sumber.
Izin pengguna DBA untuk versi sebelum Oracle 12c
Jika lingkungan Anda memungkinkan pemberian peran administrator basis data (DBA) kepada pengguna migrasi dan versi database Oracle sebelum 12c, Anda dapat menjalankan pernyataan berikut untuk memberikan izin DBA kepada pengguna migrasi.
GRANT DBA TO <user_name>;Izin pengguna non-DBA untuk versi sebelum Oracle 12c
Jika lingkungan Anda mengharuskan pemberian hanya izin yang diperlukan kepada pengguna migrasi dan versi database Oracle sebelum 12c, lakukan langkah-langkah berikut:
Berikan izin CONNECT.
GRANT CONNECT TO <user_name>;Berikan izin
CREATE SESSION,ALTER SESSION,SELECT ANY TRANSACTION,SELECT ANY TABLE, danSELECT ANY DICTIONARYkepada pengguna migrasi.GRANT CREATE SESSION, ALTER SESSION, SELECT ANY TRANSACTION, SELECT ANY TABLE, SELECT ANY DICTIONARY TO <user_name>;Berikan izin terkait
LOGMINERkepada pengguna migrasi.GRANT EXECUTE ON SYS.DBMS_LOGMNR TO <user_name>;Berikan izin
CREATE TABLEdanUNLIMITED TABLESPACEkepada pengguna migrasi.GRANT CREATE TABLE, UNLIMITED TABLESPACE TO <user_name>;Jika nama skema yang ingin Anda migrasikan sama dengan
user_name, jalankan pernyataan berikut.GRANT CREATE SEQUENCE,CREATE VIEW TO <user_name>;Jika nama skema yang ingin Anda migrasikan berbeda dari
user_name, jalankan pernyataan berikut.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>;Atau, Anda dapat menjalankan pernyataan berikut.
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>; # Tambahkan tabel spesifik yang akan dimigrasikan ke database Oracle. GRANT DELETE, INSERT, UPDATE ON <database_name>.<table_name> TO <user_name>;
Izin pengguna DBA untuk Oracle 12c dan versi yang lebih baru
Jika lingkungan Anda memungkinkan pemberian peran DBA kepada pengguna migrasi dan versi database Oracle 12c atau lebih baru, periksa apakah Anda menggunakan database yang dapat dicolokkan (PDB) Oracle 12c, 18c, atau 19c.
Non-PDB
Jalankan pernyataan berikut untuk memberikan izin DBA kepada pengguna migrasi.
GRANT DBA TO <user_name>;Jalankan pernyataan berikut untuk memberikan izin baca pada tabel
SYS.USER$kepada pengguna migrasi.GRANT SELECT ON SYS.USER$ TO <user_name>;
PDB
Jika sumber migrasi data adalah PDB dari Oracle 12c, 18c, atau 19c, akun yang digunakan untuk menarik data dari PDB harus merupakan pengguna umum (common user).
Jalankan pernyataan berikut untuk beralih ke CDB$ROOT.
ALTER SESSION SET CONTAINER=CDB$ROOT;Setiap pengguna umum dapat terhubung ke kontainer root, bernama
CDB$ROOT, dan ke PDB mana pun yang memiliki izin koneksi, lalu melakukan operasi terkait.Jalankan pernyataan berikut untuk memberikan izin DBA kepada pengguna migrasi.
GRANT DBA TO C##XXX CONTAINER=ALL;Jalankan pernyataan berikut untuk memberikan izin baca pada tabel
SYS.USER$kepada pengguna migrasi.GRANT SELECT ON SYS.USER$ TO C##XXX CONTAINER=ALL;
Izin pengguna non-DBA untuk Oracle 12c dan versi yang lebih baru
Jika lingkungan Anda mengharuskan pemberian hanya izin yang diperlukan kepada pengguna migrasi dan versi database Oracle 12c atau lebih baru, lakukan langkah-langkah berikut:
Non-PDB
Berikan izin CONNECT.
GRANT CONNECT TO <user_name>;Jalankan pernyataan berikut untuk memberikan izin baca pada tabel
SYS.USER$kepada pengguna migrasi.GRANT SELECT ON SYS.USER$ TO <user_name>;Berikan izin
CREATE SESSION,ALTER SESSION,SELECT ANY TRANSACTION,SELECT ANY TABLE, danSELECT ANY DICTIONARYkepada pengguna migrasi.GRANT CREATE SESSION, ALTER SESSION, SELECT ANY TRANSACTION, SELECT ANY TABLE, SELECT ANY DICTIONARY TO <user_name>;Berikan izin terkait
LOGMINERkepada pengguna migrasi.GRANT LOGMINING TO <user_name>; GRANT EXECUTE ON SYS.DBMS_LOGMNR TO <user_name>;Berikan izin
CREATE TABLEdanUNLIMITED TABLESPACEkepada pengguna migrasi.GRANT CREATE TABLE, UNLIMITED TABLESPACE TO <user_name>;Jika nama skema yang ingin Anda migrasikan sama dengan
user_name, jalankan pernyataan berikut.GRANT CREATE SEQUENCE,CREATE VIEW TO <user_name>;Jika nama skema yang ingin Anda migrasikan berbeda dari
user_name, jalankan pernyataan berikut.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
Jika sumber migrasi data adalah PDB dari Oracle 12c, 18c, atau 19c, akun yang digunakan untuk menarik data dari PDB harus merupakan pengguna umum.
Berikan izin CONNECT.
GRANT CONNECT TO <C##XXX> CONTAINER=ALL;Jalankan pernyataan berikut untuk memberikan izin baca pada tabel
SYS.USER$kepada pengguna migrasi.GRANT SELECT ON SYS.USER$ TO <C##XXX> CONTAINER=ALL;Berikan izin
CREATE SESSION,ALTER SESSION,SELECT ANY TRANSACTION,SELECT ANY TABLE, danSELECT ANY DICTIONARYkepada pengguna migrasi.GRANT CREATE SESSION, ALTER SESSION, SELECT ANY TRANSACTION, SELECT ANY TABLE, SELECT ANY DICTIONARY TO <C##XXX> CONTAINER=ALL;Berikan izin terkait
LOGMINERkepada pengguna migrasi.GRANT LOGMINING TO <C##XXX> CONTAINER=ALL; GRANT EXECUTE ON SYS.DBMS_LOGMNR TO <C##XXX> CONTAINER=ALL;Berikan izin
CREATE TABLEdanUNLIMITED TABLESPACEkepada pengguna migrasi.GRANT CREATE TABLE, UNLIMITED TABLESPACE TO <C##XXX> CONTAINER=ALL;Jika nama skema yang ingin Anda migrasikan sama dengan
C##XXX, jalankan pernyataan berikut.GRANT CREATE SEQUENCE,CREATE VIEW TO <C##XXX> CONTAINER=ALL;Jika nama skema yang ingin Anda migrasikan berbeda dari
C##XXX, jalankan pernyataan berikut.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;
Izin yang diperlukan ketika database MySQL menjadi sumber
Pengguna database harus memiliki izin baca pada database yang ingin Anda migrasikan. Jika Anda menggunakan MySQL 8.0, Anda juga harus memberikan izin
SHOW VIEW.GRANT SELECT ON <database_name>.* TO '<user_name>';Untuk sinkronisasi inkremental dari database MySQL, pengguna database harus memiliki izin
REPLICATION CLIENT,REPLICATION SLAVE, danSELECT *.*.GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO '<user_name>' [WITH GRANT OPTION]; GRANT SELECT ON *.* TO '<user_name>';CatatanSelama sinkronisasi inkremental, proyek mungkin terganggu jika pengguna tidak memiliki izin baca pada semua tabel di database sumber.
Parameter
WITH GRANT OPTIONbersifat opsional.
Saat melakukan migrasi data dari database MySQL ke OceanBase Database dalam mode kompatibel MySQL dengan sinkronisasi inkremental terbalik diaktifkan, pengguna migrasi juga harus memiliki izin
CREATE,SELECT,INSERT,UPDATE, danDELETEpada databasetest.GRANT CREATE,SELECT,INSERT,UPDATE,DELETE ON test.* TO '<user_name>';
Izin yang diperlukan ketika database TiDB menjadi sumber
Pengguna database harus memiliki izin baca pada database yang ingin Anda migrasikan.
GRANT SELECT ON <database_name>.* TO '<user_name>';Untuk sinkronisasi inkremental dari database TiDB, pengguna database harus memiliki izin
REPLICATION CLIENT,REPLICATION SLAVE, danSELECT *.*.GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO '<user_name>' [WITH GRANT OPTION]; GRANT SELECT ON *.* TO '<user_name>';
Izin yang diperlukan ketika database AnalyticDB for MySQL menjadi target
AnalyticDB for MySQL (ADB) memungkinkan pemberian izin berbeda pada tingkat granularitas yang berbeda untuk mengontrol akses. Untuk informasi selengkapnya, lihat Model Izin.
ADB mendukung kontrol akses pada empat tingkat granularitas berikut:
GLOBAL: Tingkat klaster
DB: Tingkat database
TABLE: Tingkat tabel
COLUMN: Tingkat kolom (bidang)
Izin yang diperlukan ketika instans Kafka menjadi target
Jika instans Kafka memerlukan autentikasi, lihat Buat Sumber Data Kafka.
Pengguna Kafka harus memiliki izin untuk melakukan operasi berikut:
Membuat dan melihat topik.
Menampilkan informasi partisi topik.
Menulis catatan.
Membaca catatan.
Izin yang diperlukan ketika instans DataHub menjadi target
DataHub melakukan otentikasi pengguna berdasarkan titik akhir, ID AccessKey, dan Rahasia AccessKey.
Pengguna DataHub harus memiliki izin GetProject, CreateTopic, ListTopic, GetTopic, ListShard, PutRecords, GetRecords, dan GetCursor.
Izin yang diperlukan ketika instans RocketMQ menjadi target
Saat instans RocketMQ menjadi target, pengguna sinkronisasi harus memiliki izin untuk melakukan operasi berikut:
Membuat dan melihat topik.
Menampilkan informasi antrian pesan topik.
Menulis catatan.
Membaca catatan.