Mengelola tampilan RDS_X$ untuk instans DB Oracle - Layanan Basis Data Relasional Amazon

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mengelola tampilan RDS_X$ untuk instans DB Oracle

Anda mungkin perlu mengakses tabel tetap SYS.X$, yang hanya dapat diakses oleh SYS. Untuk membuat tampilan SYS.RDS_X$ pada tabel X$ yang memenuhi syarat, gunakan prosedur dalam paket rdsadmin.rdsadmin_util. Pengguna master Anda secara otomatis diberikan hak istimewa SELECT … WITH GRANT OPTION pada tampilan RDS_X$.

rdsadmin.rdsadmin_utilProsedur tersedia dalam kasus-kasus berikut:

  • Instans DB yang ada yang belum pernah ditingkatkan dan menggunakan rilis berikut:

    • 21.0.0.0.ru-2023-10.rur-2023-10.r1dan rilis 21c yang lebih tinggi

    • 19.0.0.0.ru-2023-10.rur-2023-10.r1dan rilis 19c yang lebih tinggi

  • Instans DB baru apa pun yang Anda buat

  • Instans DB yang ada yang telah Anda tingkatkan

penting

Secara internal, paket rdsadmin.rdsadmin_util membuat tampilan pada tabel X$. Tabel X$ adalah objek sistem internal yang tidak dijelaskan dalam dokumentasi Oracle Database. Sebaiknya uji tampilan spesifik dalam basis data non-produksi dan hanya membuat tampilan di basis data produksi Anda berdasarkan panduan Dukungan Oracle.

Mencantumkan tabel tetap X$ yang memenuhi syarat untuk digunakan dalam tampilan RDS_X$

Untuk mencantumkan tabel X$ yang memenuhi syarat untuk digunakan dalam tampilan RDS_X$, gunakan prosedur rdsadmin.rdsadmin_util.list_allowed_sys_x$_views RDS. Prosedur ini tidak menerima parameter. Pernyataan berikut mencantumkan semua tabel X$ yang memenuhi syarat (sampel output disertakan).

SQL> SET SERVEROUTPUT ON SQL> SELECT * FROM TABLE(rdsadmin.rdsadmin_util.list_allowed_sys_x$_views); 'X$BH' 'X$K2GTE' 'X$KCBWBPD' 'X$KCBWDS' 'X$KGLLK' 'X$KGLOB' 'X$KGLPN' 'X$KSLHOT' 'X$KSMSP' 'X$KSPPCV' 'X$KSPPI' 'X$KSPPSV' 'X$KSQEQ' 'X$KSQRS' 'X$KTUXE' 'X$KQRFP'

Daftar tabel X$ yang memenuhi syarat dapat berubah seiring waktu. Untuk memastikan bahwa daftar tabel tetap X$ yang memenuhi syarat Anda selalu terbaru, jalankan kembali list_allowed_sys_x$_views secara berkala.

Membuat tampilan SYS.RDS_X$

Untuk membuat tampilan RDS_X$ pada tabel X$ yang memenuhi syarat, gunakan prosedur rdsadmin.rdsadmin_util.create_sys_x$_view RDS. Anda hanya dapat membuat tampilan untuk tabel yang tercantum dalam output rdsadmin.rdsadmin_util.list_allowed_sys_x$_views. Prosedur create_sys_x$_view menerima parameter berikut.

Nama parameter Jenis data Default Wajib Deskripsi

p_x$_tbl

varchar2

Null

Ya

Nama tabel X$ yang valid. Nilai harus menjadi salah satu tabel X$ yang dilaporkan olehlist_allowed_sys_x$_views.

p_force_creation

Boolean

FALSE

Tidak

Nilai yang menunjukkan apakah akan memaksa pembuatan tampilan RDS_X$ yang sudah ada untuk tabel X$. Secara default, RDS tidak akan membuat tampilan jika sudah ada. Untuk memaksa pembuatan, tetapkan parameter ini ke TRUE.

Contoh berikut membuat tampilan SYS.RDS_X$KGLOB di tabel X$KGLOB. Format untuk nama tampilan adalah RDS_X$tablename.

SQL> SET SERVEROUTPUT ON SQL> EXEC rdsadmin.rdsadmin_util.create_sys_x$_view('X$KGLOB'); PL/SQL procedure successfully completed.

Kueri kamus data berikut mencantumkan tampilan SYS.RDS_X$KGLOB dan menunjukkan statusnya. Pengguna master Anda secara otomatis diberikan hak istimewa SELECT ... WITH GRANT OPTION pada tampilan ini.

SQL> SET SERVEROUTPUT ON SQL> COL OWNER FORMAT A30 SQL> COL OBJECT_NAME FORMAT A30 SQL> COL STATUS FORMAT A30 SQL> SET LINESIZE 200 SQL> SELECT OWNER, OBJECT_NAME, STATUS FROM DBA_OBJECTS WHERE OWNER = 'SYS' AND OBJECT_NAME = 'RDS_X$KGLOB'; OWNER OBJECT_NAME STATUS ------------------------------ ------------------------------ ------------------------------ SYS RDS_X$KGLOB VALID
penting

Tabel X$ tidak dijamin untuk tetap sama sebelum dan sesudah pemutakhiran. RDS for Oracle menghapus dan membuat ulang tampilan RDS_X$ pada tabel X$ selama pemutakhiran mesin. Kemudian, hak istimewa SELECT ... WITH GRANT OPTION diberikan kepada pengguna master. Setelah pemutakhiran, berikan hak istimewa kepada pengguna basis data sesuai kebutuhan pada tampilan RDS_X$ yang sesuai.

Mencantumkan tampilan SYS.RDS_X$

Untuk mencantumkan tampilan RDS_X$ yang ada, gunakan prosedur rdsadmin.rdsadmin_util.list_created_sys_x$_views RDS. Prosedur hanya mencantumkan tampilan yang dibuat oleh prosedur create_sys_x$_view. Contoh berikut mencantumkan tabel X$ yang memiliki tampilan RDS_X$ yang sesuai (sampel output disertakan).

SQL> SET SERVEROUTPUT ON SQL> COL XD_TBL_NAME FORMAT A30 SQL> COL STATUS FORMAT A30 SQL> SET LINESIZE 200 SQL> SELECT * FROM TABLE(rdsadmin.rdsadmin_util.list_created_sys_x$_views); XD_TBL_NAME STATUS ------------------------------ ------------------------------ X$BH VALID X$K2GTE VALID X$KCBWBPD VALID 3 rows selected.

Menghapus tampilan RDS_X$

Untuk menghapus tampilan SYS.RDS_X$, gunakan prosedur rdsadmin.rdsadmin_util.drop_sys_x$_view RDS. Anda hanya dapat menghapus tampilan yang tercantum dalam output rdsadmin.rdsadmin_util.list_allowed_sys_x$_views. Prosedur drop_sys_x$_view menerima parameter berikut.

Nama parameter Jenis data Default Wajib Deskripsi

p_x$_tbl

varchar2

Null

Ya

Nama tabel tetap X$ yang valid. Nilai harus menjadi salah satu tabel tetap X$ yang dilaporkan oleh list_created_sys_x$_views.

Contoh berikut menghapus tampilan RDS_X$KGLOB, yang dibuat di tabel X$KGLOB.

SQL> SET SERVEROUTPUT ON SQL> EXEC rdsadmin.rdsadmin_util.drop_sys_x$_view('X$KGLOB'); PL/SQL procedure successfully completed.

Contoh berikut menunjukkan bahwa tampilan SYS.RDS_X$KGLOB telah dihapus (sampel output disertakan).

SQL> SET SERVEROUTPUT ON SQL> COL OWNER FORMAT A30 SQL> COL OBJECT_NAME FORMAT A30 SQL> COL STATUS FORMAT A30 SQL> SET LINESIZE 200 SQL> SELECT OWNER, OBJECT_NAME, STATUS FROM DBA_OBJECTS WHERE OWNER = 'SYS' AND OBJECT_NAME = 'RDS_X$KGLOB'; no rows selected