All Products
Search
Document Center

Data Management:SQL Console untuk database relasional

Last Updated:Mar 29, 2026

SQL Console di Data Management (DMS) mengevaluasi setiap pernyataan SQL terhadap serangkaian checkpoint keamanan sebelum dieksekusi. Checkpoint ini mengontrol pernyataan SQL mana yang dapat dijalankan, siapa yang boleh menjalankannya, dan dalam kondisi apa—sehingga memberikan Anda kontrol detail halus atas akses dan operasi database. Topik ini menggunakan ApsaraDB RDS for MySQL sebagai contoh.

Cara kerja

Saat Anda mengirimkan pernyataan SQL di SQL Console, DMS mengevaluasi setiap pernyataan secara berurutan terhadap checkpoint yang telah ditentukan. Pada setiap checkpoint, DMS membaca faktor (dengan awalan @fac.) untuk menilai konteks waktu proses—seperti jenis SQL, jumlah baris yang terpengaruh, atau role pengguna saat ini—lalu menerapkan Actions (dengan awalan @act.) berdasarkan kondisi aturan yang dikonfigurasi.

image

Checkpoint

DMS mengevaluasi pernyataan SQL terhadap checkpoint berikut secara berurutan. Setiap checkpoint memiliki aturan yang dapat dikonfigurasi sendiri.

CheckpointApa yang dikontrol
Basic Configuration ItemJumlah maksimum baris yang dikembalikan per kueri, apakah set hasil dapat dimodifikasi, dan apakah data sensitif dapat disertakan dalam perhitungan
SQL Execution Quantity CriteriaJumlah maksimum pernyataan SQL yang dapat dikirimkan sekaligus
DQL SQL CriteriaBatasan eksekusi untuk pernyataan bahasa kueri data (DQL)
Other SQL CriteriaBatasan eksekusi untuk berbagai jenis SQL—misalnya, mengizinkan SQL yang tidak dikenali dan memblokir penghapusan tabel penuh
SQL Permission CriteriaBatasan eksekusi berdasarkan izin pada database, tabel, kolom sensitif, dan baris
SQL Execution Performance CriteriaMemblokir pernyataan DDL ketika ruang tabel yang terpengaruh melebihi batas ukuran, atau pernyataan DML ketika jumlah baris yang terpengaruh melebihi batas
Exception Recognition Criteria of Database and Table Column PermissionsMenentukan apakah pernyataan DQL, DML, DDL, atau bahasa kontrol data (DCL) dilanjutkan atau ditolak saat terjadi pengecualian saat penguraian
SQL Execution Criteria in Logical DatabasesBatasan eksekusi untuk pernyataan SQL yang dijalankan terhadap database logis

DMS menyediakan konfigurasi dan aturan bawaan untuk setiap checkpoint. Untuk menyesuaikannya, lihat bagian Konfigurasikan aturan keamanan pada topik Kelola aturan keamanan.

Faktor dan action

Faktor

Faktor adalah variabel yang telah ditentukan yang disediakan DMS untuk digunakan dalam kondisi aturan keamanan. Faktor menangkap konteks waktu proses—seperti apakah suatu pernyataan memengaruhi seluruh tabel, atau apakah pengguna saat ini merupakan DBA.

Nama faktor menggunakan format @fac.<display-name>.

Setiap modul pada halaman Detail dari satu set aturan keamanan menyediakan sekumpulan faktor spesifik untuk checkpoint-nya.

Faktor yang disediakan oleh SQL Console

FaktorDeskripsi
@fac.sql_countJumlah pernyataan SQL yang dikirimkan sekaligus
@fac.select_sql_countJumlah pernyataan DQL di antara pernyataan SQL yang dikirimkan
@fac.dml_sql_countJumlah pernyataan bahasa manipulasi data (DML) di antara pernyataan SQL yang dikirimkan
@fac.sql_typeKategori pernyataan SQL. Untuk nilai yang valid, lihat Jenis pernyataan SQL.
@fac.sql_sub_typeSubkategori pernyataan SQL. Untuk nilai yang valid, lihat Jenis pernyataan SQL.
@fac.env_typeJenis lingkungan instans, ditampilkan sebagai nama lingkungan seperti DEV atau PRODUCT. Untuk detailnya, lihat Ubah jenis lingkungan instans.
@fac.fulltable_deleteApakah pernyataan tersebut menghapus seluruh tabel. Nilai yang valid: true, false
@fac.fulltable_updateApakah pernyataan tersebut memperbarui seluruh tabel. Nilai yang valid: true, false
@fac.current_sqlPernyataan SQL saat ini
@fac.user_is_adminApakah pengguna saat ini merupakan administrator DMS. Nilai yang valid: true, false
@fac.user_is_dbaApakah pengguna saat ini merupakan database administrator (DBA). Nilai yang valid: true, false
@fac.user_is_inst_dbaApakah pengguna saat ini merupakan DBA dari instansiasi basis data saat ini. Nilai yang valid: true, false
@fac.user_is_sec_adminApakah pengguna saat ini merupakan administrator keamanan. Nilai yang valid: true, false
@fac.sql_affected_rowsJumlah baris yang akan dipengaruhi oleh pernyataan saat ini.
Catatan

Faktor ini memicu operasi COUNT. Gunakan faktor ini dengan hati-hati.

@fac.sql_relate_table_store_sizePerkiraan ukuran total tabel yang diakses oleh pernyataan saat ini, dalam MB. Nilai ini diperkirakan berdasarkan metadata DMS dan bukan nilai aktual.

Tindakan

Action menentukan apa yang dilakukan DMS ketika kondisi IF suatu aturan terpenuhi—misalnya, mengizinkan atau menolak suatu pernyataan, atau memeriksa apakah pengguna memiliki izin pada kolom sensitif.

Nama action menggunakan format @act.<display-name>.

Setiap modul pada halaman Detail dari satu set aturan keamanan menyediakan sekumpulan action spesifik untuk checkpoint-nya.

Tindakan yang Tersedia di SQL Console

ActionDeskripsi
@act.reject_executeMenolak pernyataan SQL saat ini
@act.allow_executeMengizinkan pernyataan SQL saat ini
@act.reject_sql_type_executeMenolak subkategori tertentu dari pernyataan SQL. Tentukan subkategori sebagai argumen. Contoh: @act.reject_sql_type_execute 'UPDATE'
@act.allow_sql_type_executeMengizinkan subkategori tertentu dari pernyataan SQL. Tentukan subkategori sebagai argumen. Contoh: @act.allow_sql_type_execute 'UPDATE'
@act.check_dml_sec_column_permissionMemeriksa apakah pengguna memiliki izin pada kolom sensitif. Jika tidak, pernyataan DML tidak dieksekusi.
@act.uncheck_dml_sec_column_permissionMelewati pemeriksaan izin kolom sensitif untuk pernyataan DML
@act.check_sql_access_permissionMemeriksa apakah pengguna memiliki izin yang diperlukan pada database, tabel, atau kolom yang terlibat dalam pernyataan—misalnya, izin baca atau tulis
@act.uncheck_sql_access_permissionMelewati pemeriksaan izin akses
@act.enable_sec_column_maskMenyamarkan kolom sensitif dalam set hasil kueri untuk pengguna yang tidak memiliki izin pada kolom tersebut
@act.disable_sec_column_maskTidak menyamarkan kolom sensitif dalam set hasil kueri untuk pengguna yang tidak memiliki izin pada kolom tersebut

Jenis pernyataan SQL

DMS mengklasifikasikan pernyataan SQL ke dalam empat kategori. Faktor @fac.sql_type mengembalikan kategorinya, dan @fac.sql_sub_type mengembalikan jenis pernyataan spesifik yang tercantum di bawah ini.

DML

INSERT, INSERT_SELECT, SELECT_INTO, MULTI_INSERT, REPLACE, REPLACE_INTO, UPDATE, DELETE, MERGE, REMOVE, MSCK_REPAIR, REFRESH_MATERIALIZED_VIEW, BEGIN, START_TRANSACTION, COMMIT, ROLLBACK, SAVEPOINT, RELEASE_SAVEPOINT, SET, ADD_EDGE, ADD_VERTEX, SET_PROPERTY, GDB_DROP, INSERT_MANY, INSERT_ONE, DELETE_MANY, DELETE_ONE, UPDATE_MANY, UPDATE_ONE, WLM_ADD_RULE

DDL

CREATE, CREATE_SCHEMA, CREATE_INDEX, CREATE_VIEW, CREATE_SEQUENCE, CREATE_TABLE, CREATE_TABLEGROUP, CREATE_PACKAGE, CREATE_SELECT, TRUNCATE, DROP, DROP_SCHEMA, DROP_INDEX, DROP_VIEW, DROP_TABLE, DROP_TABLEGROUP, DROP_SEQUENCE, RENAME, ALTER_TABLE_DROP_COLUMN, ALTER_TABLE_CHARACTER_COLLATE, ALTER_TABLE_AUTOINCREMENT, ALTER, ALTER_SCHEMA, ALTER_INDEX, ALTER_VIEW, ALTER_TABLE, ALTER_TABLEGROUP, ALTER_SEQUENCE, CREATE_FUNCTION, ALTER_FUNCTION, DROP_FUNCTION, CREATE_PROCEDURE, ALTER_PROCEDURE, DROP_PROCEDURE, MONGO_CREATE_INDEX, MONGO_DROP_INDEX, CREATE_DATABASE, ALTER_DATABASE, DROP_DATABASE, CREATE_USER, ALTER_USER, DROP_USER, CREATE_ROLE, DROP_ROLE, EXEC, CALL_PROCEDURE, CREATE_TRIGGER, ALTER_TRIGGER, DROP_TRIGGER, CREATE_EVENT, ALTER_EVENT, DROP_EVENT, ROLLBACK_DDL, CANCEL_DDL, VACUUM, SUBMIT_JOB, CANCEL_JOB, BUILD_TABLE, IF

DQL

Pernyataan bahasa kueri data (DQL) mengambil data tanpa memodifikasinya.

SELECT, DESC, EXPLAIN, SHOW_INDEX, SHOW, CHECK_TABLE, SHOW_DDL, LIST, GDB_QUERY, CHECKSUM, SELECT_PG_TERMINATION_BACKEND, WLM_LIST_RULE

DCL

Pernyataan bahasa kontrol data (DCL) mengelola akses database dan status sesi.

GRANT, DECLARE, SET, ANALYZE, FLUSH, OPTIMIZE, KILL, RECOVER_DDL, REMOVE_DDL, SELECT_PG_TERMINATION_BACKEND

FAQ

  • Q: Bisakah saya membatasi eksekusi pernyataan SQL 'select *'?

    A: Ini hanya berlaku untuk instans yang telah mengaktifkan mode Security Collaboration.

    1. Pada bilah menu atas DMS, pilih Security and Disaster Recovery (DBS) > Security Rules.

    2. Pada tab Specification Management, pilih ruleset yang sesuai dengan jenis mesin data Anda.

    3. Temukan aturan tujuan, lalu pada kolom Actions, klik tombol Edit untuk membuka halaman Details.

    4. Pada panel navigasi di sebelah kiri, pilih SQL Console. Pada bagian Checkpoint, pilih SQL execution quantity specifications.

    5. Klik Add Rule dan masukkan skrip DSL untuk konfigurasi.

      if 
        @fac.sql_sub_type in ['SELECT'] 
        AND @fun.is_contain_str(@fac.current_sql,'*') 
      then 
        @act.reject_execute 'Pernyataan SQL mengandung *. Gunakan metode alternatif.' 
      end
  • Q: Bagaimana cara mengatur batasan untuk kueri besar di SQL Console DMS?

    A: Tindakan ini memerlukan instans dengan mode Security Collaboration yang diaktifkan.

    1. Pada bilah menu atas DMS, pilih Security and Disaster Recovery (DBS) > Security Rules.

    2. Pada tab Specification Management, pilih ruleset yang sesuai dengan jenis mesin data Anda.

    3. Temukan aturan tujuan, klik Edit pada kolom Operation untuk membuka halaman Details.

    4. Pada panel navigasi di sebelah kiri, pilih SQL Console. Pada bilah pencarian, masukkan "full table scan" lalu klik tombol Search.

    5. Pada daftar yang muncul, pilih aturan tujuan dan klik tombol edit untuk mengonfigurasinya.