全部产品
Search
文档中心

ApsaraDB for OceanBase:Izin Pengguna

更新时间:Jan 17, 2026

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 SELECT pada database sumber.

    Jika targetnya adalah database, seperti database MySQL atau OceanBase Database dalam mode kompatibel MySQL, pengguna harus memiliki izin SELECT pada database sumber dan database oceanbase.

    GRANT SELECT ON <database_name>.* TO '<user_name>';
    GRANT SELECT ON oceanbase.* TO '<user_name>';
    Penting

    Izin SELECT pada database oceanbase hanya 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, dan DELETE pada database test.

    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 sys pada instans sumber dan berikan izin SELECT 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, dan DELETE pada database target.

    GRANT CREATE,CREATE VIEW,SELECT,INSERT,UPDATE,ALTER,INDEX,DELETE ON <database_name>.* TO '<user_name>';
  • Izin SELECT pada 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 SELECT pada DBA_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 SELECT pada DBA_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:

  • Metode 1

    • Jalankan pernyataan berikut untuk memberikan semua izin kepada pengguna migrasi. Metode ini sederhana tetapi memberikan izin tingkat tinggi.

      GRANT ALL PRIVILEGES ON *.* TO '<user_name>';
  • Metode 2

    1. Jika instans OceanBase Database berada dalam VPC, berikan izin SELECT kepada pengguna migrasi pada tampilan sistem di tenant sys.

      GRANT SELECT ON SYS.* TO '<user_name>';
    2. Berikan berbagai izin pada tabel bisnis kepada pengguna migrasi. Jika terdapat beberapa database bisnis, berikan izin secara terpisah.

      GRANT SELECT, UPDATE, DELETE ON <db_name>.* TO '<user_name>';
      GRANT CREATE, INDEX, ALTER ON <db_name>.* TO '<user_name>';

V2.2.7 dan versi yang lebih baru

Anda dapat memberikan izin kepada pengguna migrasi dengan salah satu dari dua cara berikut:

  • Metode 1

    Jalankan pernyataan berikut. Metode ini sederhana tetapi memberikan izin tingkat tinggi kepada pengguna.

    GRANT DBA TO '<user_name>';
  • Metode 2

    Berikan berbagai izin pada tabel bisnis kepada pengguna. Jika terdapat beberapa database bisnis, berikan izin secara terpisah.

    GRANT CONNECT TO '<user_name>';
    GRANT CREATE SESSION, ALTER SESSION, SELECT ANY TABLE, SELECT ANY DICTIONARY TO '<user_name>';
    GRANT CREATE ANY TABLE, CREATE ANY INDEX, CREATE ANY VIEW, INSERT ANY TABLE, UPDATE ANY TABLE, ALTER ANY TABLE, DELETE ANY TABLE TO '<user_name>';

Izin yang diperlukan ketika database Oracle menjadi sumber

Setelah membuat pengguna, izin yang diperlukan bervariasi tergantung pada versi database Oracle dan peran pengguna.

Catatan
  • 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, dan SELECT 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:

  1. Berikan izin CONNECT.

    GRANT CONNECT TO <user_name>;
  2. Berikan izin CREATE SESSION, ALTER SESSION, SELECT ANY TRANSACTION, SELECT ANY TABLE, dan SELECT ANY DICTIONARY kepada pengguna migrasi.

    GRANT CREATE SESSION, ALTER SESSION, 
    SELECT ANY TRANSACTION, SELECT ANY TABLE, SELECT ANY DICTIONARY TO <user_name>;
  3. Berikan izin terkait LOGMINER kepada pengguna migrasi.

    GRANT EXECUTE ON SYS.DBMS_LOGMNR TO <user_name>;
  4. Berikan izin CREATE TABLE dan UNLIMITED TABLESPACE kepada pengguna migrasi.

    GRANT CREATE TABLE, UNLIMITED TABLESPACE TO <user_name>;
  5. 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

    1. Jalankan pernyataan berikut untuk memberikan izin DBA kepada pengguna migrasi.

      GRANT DBA TO <user_name>;
    2. 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).

    1. 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.

    2. Jalankan pernyataan berikut untuk memberikan izin DBA kepada pengguna migrasi.

      GRANT DBA TO C##XXX CONTAINER=ALL;
    3. 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

    1. Berikan izin CONNECT.

      GRANT CONNECT TO <user_name>;
    2. Jalankan pernyataan berikut untuk memberikan izin baca pada tabel SYS.USER$ kepada pengguna migrasi.

      GRANT SELECT ON SYS.USER$ TO <user_name>;
    3. Berikan izin CREATE SESSION, ALTER SESSION, SELECT ANY TRANSACTION, SELECT ANY TABLE, dan SELECT ANY DICTIONARY kepada pengguna migrasi.

      GRANT CREATE SESSION, ALTER SESSION, SELECT ANY TRANSACTION, SELECT ANY TABLE, SELECT ANY DICTIONARY TO <user_name>;
    4. Berikan izin terkait LOGMINER kepada pengguna migrasi.

      GRANT LOGMINING TO <user_name>;
      GRANT EXECUTE ON SYS.DBMS_LOGMNR TO <user_name>;
    5. Berikan izin CREATE TABLE dan UNLIMITED TABLESPACE kepada pengguna migrasi.

      GRANT CREATE TABLE, UNLIMITED TABLESPACE TO <user_name>;
    6. 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.

    1. Berikan izin CONNECT.

      GRANT CONNECT TO <C##XXX> CONTAINER=ALL;
    2. Jalankan pernyataan berikut untuk memberikan izin baca pada tabel SYS.USER$ kepada pengguna migrasi.

      GRANT SELECT ON SYS.USER$ TO <C##XXX> CONTAINER=ALL;
    3. Berikan izin CREATE SESSION, ALTER SESSION, SELECT ANY TRANSACTION, SELECT ANY TABLE, dan SELECT ANY DICTIONARY kepada pengguna migrasi.

      GRANT CREATE SESSION, ALTER SESSION, 
      SELECT ANY TRANSACTION, SELECT ANY TABLE, SELECT ANY DICTIONARY TO <C##XXX> CONTAINER=ALL;
    4. Berikan izin terkait LOGMINER kepada pengguna migrasi.

      GRANT LOGMINING TO <C##XXX> CONTAINER=ALL;
      GRANT EXECUTE ON SYS.DBMS_LOGMNR TO <C##XXX> CONTAINER=ALL;
    5. Berikan izin CREATE TABLE dan UNLIMITED TABLESPACE kepada pengguna migrasi.

      GRANT CREATE TABLE, UNLIMITED TABLESPACE TO <C##XXX> CONTAINER=ALL;
    6. 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, dan SELECT *.*.

    GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO '<user_name>' [WITH GRANT OPTION];
    GRANT SELECT ON *.* TO '<user_name>';
    Catatan
    • Selama sinkronisasi inkremental, proyek mungkin terganggu jika pengguna tidak memiliki izin baca pada semua tabel di database sumber.

    • Parameter WITH GRANT OPTION bersifat 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, dan DELETE pada database test.

    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, dan SELECT *.*.

    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.