Melakukan tugas sistem umum 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.

Melakukan tugas sistem umum untuk instans DB Oracle

Setelah itu, Anda dapat menemukan cara melakukan tugas DBA umum tertentu yang terkait dengan sistem di instans DB Amazon RDS yang menjalankan Oracle. Untuk memberikan pengalaman layanan terkelola, Amazon RDS tidak memberikan akses shell ke instans DB, dan membatasi akses ke sejumlah prosedur dan tabel sistem tertentu yang memerlukan hak istimewa tingkat lanjut.

Memutus koneksi sesi

Untuk memutus koneksi sesi saat ini dengan mengakhiri proses server khusus, gunakan prosedur rdsadmin.rdsadmin_util.disconnect Amazon RDS. Prosedur disconnect memiliki parameter berikut.

Nama parameter Tipe data Default Diperlukan Deskripsi

sid

number

Ya

Pengidentifikasi sesi.

serial

number

Ya

Nomor seri sesi.

method

varchar

'IMMEDIATE'

Tidak

Nilai yang valid adalah 'IMMEDIATE' atau 'POST_TRANSACTION'.

Berikut ini adalah contoh cara memutus koneksi sesi.

begin rdsadmin.rdsadmin_util.disconnect( sid => sid, serial => serial_number); end; /

Untuk mendapatkan pengidentifikasi sesi dan nomor sesi, buka tampilan V$SESSION . Contoh berikut mendapatkan semua sesi untuk pengguna AWSUSER.

SELECT SID, SERIAL#, STATUS FROM V$SESSION WHERE USERNAME = 'AWSUSER';

Basis data harus terbuka untuk menggunakan metode ini. Untuk informasi selengkapnya tentang cara memutuskan koneksi sesi, lihat ALTER SYSTEM di dokumentasi Oracle.

Mengakhiri sesi

Untuk mengakhiri sesi, gunakan prosedur rdsadmin.rdsadmin_util.kill Amazon RDS. Prosedur kill memiliki parameter berikut.

Nama parameter Tipe data Default Diperlukan Deskripsi

sid

number

Ya

Pengidentifikasi sesi.

serial

number

Ya

Nomor seri sesi.

method

varchar

null

Tidak

Nilai yang valid adalah 'IMMEDIATE' atau 'PROCESS'. Jika Anda menentukan IMMEDIATE, efeknya akan sama seperti menjalankan pernyataan berikut:

ALTER SYSTEM KILL SESSION 'sid,serial#' IMMEDIATE

Jika Anda menentukan PROCESS, Anda akan mengakhiri proses yang terkait dengan sesi. Hanya tentukan PROCESS jika mengakhiri sesi menggunakan IMMEDIATE tidak berhasil.

Untuk mendapatkan pengidentifikasi sesi dan nomor seri sesi, buat kueri tampilan V$SESSION. Contoh berikut mendapatkan semua sesi untuk pengguna AWSUSER.

SELECT SID, SERIAL#, STATUS FROM V$SESSION WHERE USERNAME = 'AWSUSER';

Berikut ini adalah contoh cara mengakhiri sesi.

BEGIN rdsadmin.rdsadmin_util.kill( sid => sid, serial => serial_number, method => 'IMMEDIATE'); END; /

Contoh berikut akan mengakhiri proses yang terkait dengan sesi.

BEGIN rdsadmin.rdsadmin_util.kill( sid => sid, serial => serial_number, method => 'PROCESS'); END; /

Membatalkan pernyataan SQL dalam sesi

Untuk membatalkan pernyataan SQL dalam sesi, gunakan prosedur rdsadmin.rdsadmin_util.cancel Amazon RDS.

catatan

Prosedur ini mendukung Oracle Database 19c (19.0.0) dan semua versi utama dan minor yang lebih tinggi dari RDS for Oracle.

Prosedur cancel memiliki parameter berikut.

Nama parameter Tipe data Default Diperlukan Deskripsi

sid

number

Ya

Pengidentifikasi sesi.

serial

number

Ya

Nomor seri sesi.

sql_id

varchar2

null

Tidak

Pengidentifikasi SQL dari pernyataan SQL.

Contoh berikut membatalkan pernyataan SQL dalam sesi.

begin rdsadmin.rdsadmin_util.cancel( sid => sid, serial => serial_number, sql_id => sql_id); end; /

Untuk mendapatkan pengidentifikasi sesi, nomor seri sesi, dan pengidentifikasi SQL dari pernyataan SQL, buat kueri tampilan V$SESSION. Contoh berikut mendapatkan semua sesi untuk pengidentifikasi SQL untuk pengguna AWSUSER.

select SID, SERIAL#, SQL_ID, STATUS from V$SESSION where USERNAME = 'AWSUSER';

Mengaktifkan dan menonaktifkan sesi terbatas

Untuk mengaktifkan dan menonaktifkan sesi terbatas, gunakan prosedur rdsadmin.rdsadmin_util.restricted_session Amazon RDS. Prosedur restricted_session memiliki parameter berikut.

Nama parameter Tipe data Default Ya Deskripsi

p_enable

boolean

true

Tidak

Tetapkan ke true untuk memungkinkan sesi terbatas, false untuk menonaktifkan sesi terbatas.

Contoh berikut menunjukkan cara mengaktifkan dan menonaktifkan sesi terbatas.

/* Verify that the database is currently unrestricted. */ SELECT LOGINS FROM V$INSTANCE; LOGINS ------- ALLOWED /* Enable restricted sessions */ EXEC rdsadmin.rdsadmin_util.restricted_session(p_enable => true); /* Verify that the database is now restricted. */ SELECT LOGINS FROM V$INSTANCE; LOGINS ---------- RESTRICTED /* Disable restricted sessions */ EXEC rdsadmin.rdsadmin_util.restricted_session(p_enable => false); /* Verify that the database is now unrestricted again. */ SELECT LOGINS FROM V$INSTANCE; LOGINS ------- ALLOWED

Menghapus kolam bersama

Untuk menghapus kolam bersama, terapkan prosedur rdsadmin.rdsadmin_util.flush_shared_pool Amazon RDS. Prosedur flush_shared_pool tidak memiliki parameter.

Contoh berikut menghapus kolam bersama.

EXEC rdsadmin.rdsadmin_util.flush_shared_pool;

Menghapus cache buffer

Untuk menghapus cache buffer, terapkan prosedur rdsadmin.rdsadmin_util.flush_buffer_cache Amazon RDS. Prosedur flush_buffer_cache tidak memiliki parameter.

Contoh berikut akan menghapus cache buffer.

EXEC rdsadmin.rdsadmin_util.flush_buffer_cache;

Menghapus cache flash smart flash basis data

Untuk menghapus cache smart flash basis data, terapkan prosedur rdsadmin.rdsadmin_util.flush_flash_cache Amazon RDS. Prosedur flush_flash_cache tidak memiliki parameter. Contoh berikut akan menghapus cache smart flash basis data.

EXEC rdsadmin.rdsadmin_util.flush_flash_cache;

Untuk informasi selengkapnya tentang penggunaan cache smart flash basis data dengan RDS for Oracle, lihat Menyimpan data sementara di penyimpanan instans RDS for Oracle.

Memberikan hak istimewa SELECT atau EXECUTE pada objek SYS

Biasanya Anda mentransfer hak istimewa dengan menggunakan peran, yang dapat berisi banyak objek. Untuk memberikan hak istimewa kepada satu objek, gunakan prosedur rdsadmin.rdsadmin_util.grant_sys_object Amazon RDS. Prosedur ini memberikan hanya hak istimewa yang telah diberikan kepada pengguna master melalui peran atau pemberian langsung.

Prosedur grant_sys_object memiliki parameter berikut.

penting

Untuk semua nilai parameter, gunakan huruf besar kecuali jika Anda membuat pengguna dengan pengidentifikasi yang peka huruf besar. Misalnya, jika Anda menjalankan CREATE USER myuser atau CREATE USER MYUSER, kamus data menyimpan MYUSER. Namun, jika Anda menggunakan tanda kutip ganda di CREATE USER "MyUser", kamus data menyimpan MyUser.

Nama parameter Tipe data Default Diperlukan Deskripsi

p_obj_name

varchar2

Ya

Nama objek untuk menerima pemberian hak istimewa. Objek dapat berupa direktori, fungsi, paket, prosedur, urutan, tabel, atau tampilan. Nama objek harus dieja persis seperti yang muncul di DBA_OBJECTS. Sebagian besar objek sistem didefinisikan dalam huruf besar, jadi kami menyarankan Anda untuk mencobanya terlebih dahulu.

p_grantee

varchar2

Ya

Nama objek untuk menerima pemberian hak istimewa. Objek dapat berupa skema atau peran.

p_privilege

varchar2

null

Ya

p_grant_option

boolean

false

Tidak

Tetapkan ke true untuk menggunakan opsi pemberian. Parameter p_grant_option mendukung 12.1.0.2.v4 dan versi yang lebih baru, semua versi 12.2.0.1, dan semua versi 19.0.0.

Contoh berikut memberikan hak istimewa tertentu pada objek yang diberi nama V_$SESSION ke pengguna bernama USER1.

begin rdsadmin.rdsadmin_util.grant_sys_object( p_obj_name => 'V_$SESSION', p_grantee => 'USER1', p_privilege => 'SELECT'); end; /

Contoh berikut memberikan hak istimewa tertentu pada objek yang diberi nama V_$SESSION ke pengguna bernama USER1 dengan opsi pemberian.

begin rdsadmin.rdsadmin_util.grant_sys_object( p_obj_name => 'V_$SESSION', p_grantee => 'USER1', p_privilege => 'SELECT', p_grant_option => true); end; /

Agar dapat memberikan hak istimewa kepada suatu objek, akun Anda harus memiliki hak istimewa yang diberikan kepadanya secara langsung dengan opsi pemberian, atau melalui peran yang diberikan menggunakan with admin option. Dalam kasus yang paling umum, Anda mungkin ingin memberikan SELECT pada tampilan DBA yang telah diberikan kepada peran SELECT_CATALOG_ROLE. Jika peran tersebut belum diberikan secara langsung kepada pengguna Anda menggunakan with admin option, Anda tidak dapat mentransfer hak istimewa tersebut. Jika Anda memiliki hak istimewa DBA, Anda dapat memberikan peran tersebut secara langsung ke pengguna lain.

Contoh berikut memberikan SELECT_CATALOG_ROLE dan EXECUTE_CATALOG_ROLE kepada USER1. Sejak with admin option digunakan, USER1 sekarang dapat memberikan akses ke objek SYS yang telah diberikan kepada SELECT_CATALOG_ROLE.

GRANT SELECT_CATALOG_ROLE TO USER1 WITH ADMIN OPTION; GRANT EXECUTE_CATALOG_ROLE to USER1 WITH ADMIN OPTION;

Objek yang telah diberikan kepada PUBLIC tidak perlu diberikan ulang. Jika Anda menggunakan prosedur grant_sys_object untuk memberikan ulang akses, pemanggilan prosedur berhasil.

Mencabut hak istimewa SELECT atau EXECUTE pada objek SYS

Untuk mencabut hak pada satu objek, gunakan prosedur rdsadmin.rdsadmin_util.revoke_sys_object Amazon RDS. Prosedur ini membatalkan hanya hak istimewa yang telah diberikan kepada pengguna master melalui peran atau pemberian langsung.

Prosedur revoke_sys_object memiliki parameter berikut.

Nama parameter Tipe data Default Diperlukan Deskripsi

p_obj_name

varchar2

Ya

Nama objek yang akan dicabut hak istimewanya. Objek dapat berupa direktori, fungsi, paket, prosedur, urutan, tabel, atau tampilan. Nama objek harus dieja persis seperti yang muncul di DBA_OBJECTS. Sebagian besar objek sistem didefinisikan dalam huruf besar, jadi kami menyarankan Anda untuk mencobanya terlebih dahulu.

p_revokee

varchar2

Ya

Nama objek yang akan dicabut hak istimewanya. Objek dapat berupa skema atau peran.

p_privilege

varchar2

null

Ya

Contoh berikut mencabut hak istimewa tertentu pada objek yang diberi nama V_$SESSION ke pengguna bernama USER1.

begin rdsadmin.rdsadmin_util.revoke_sys_object( p_obj_name => 'V_$SESSION', p_revokee => 'USER1', p_privilege => 'SELECT'); end; /

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

Prosedur rdsadmin.rdsadmin_util tersedia dalam versi mesin basis data berikut:

  • 21.0.0.0.ru-2023-10.rur-2023-10.r1 dan versi Oracle Database 21c yang lebih baru

  • 19.0.0.0.ru-2023-10.rur-2023-10.r1 dan versi Oracle Database 19c yang lebih baru

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 Tipe data Default Diperlukan 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 Tipe data Default Diperlukan 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

Memberikan hak istimewa kepada pengguna non-master

Anda dapat memberikan hak istimewa pilihan untuk banyak objek dalam skema SYS dengan menggunakan peran SELECT_CATALOG_ROLE. Peran SELECT_CATALOG_ROLE memberi pengguna hak istimewa SELECT pada tampilan kamus data. Contoh berikut memberikan peran SELECT_CATALOG_ROLE kepada pengguna dengan nama user1.

GRANT SELECT_CATALOG_ROLE TO user1;

Anda dapat memberikan hak istimewa EXECUTE untuk banyak objek dalam skema SYS menggunakan peran EXECUTE_CATALOG_ROLE. Peran EXECUTE_CATALOG_ROLE memberi pengguna hak istimewa EXECUTE untuk paket dan prosedur dalam kamus data. Contoh berikut memberikan peran EXECUTE_CATALOG_ROLE kepada pengguna dengan nama user1.

GRANT EXECUTE_CATALOG_ROLE TO user1;

Contoh berikut mendapatkan izin yang peran SELECT_CATALOG_ROLE dan EXECUTE_CATALOG_ROLE izinkan.

SELECT * FROM ROLE_TAB_PRIVS WHERE ROLE IN ('SELECT_CATALOG_ROLE','EXECUTE_CATALOG_ROLE') ORDER BY ROLE, TABLE_NAME ASC;

Contoh berikut membuat pengguna non-master bernama user1, memberikan hak istimewa CREATE SESSION, dan memberikan hak istimewa SELECT pada basis data yang diberi nama sh.sales.

CREATE USER user1 IDENTIFIED BY PASSWORD; GRANT CREATE SESSION TO user1; GRANT SELECT ON sh.sales TO user1;

Membuat fungsi kustom untuk memverifikasi kata sandi

Anda dapat membuat fungsi verifikasi kata sandi kustom dengan cara berikut:

  • Untuk menggunakan logika verifikasi standar dan untuk menyimpan fungsi Anda di skema SYS, gunakan prosedur create_verify_function.

  • Untuk menggunakan logika verifikasi kustom atau untuk menghindari menyimpan fungsi Anda dalam skema SYS, gunakan prosedur create_passthrough_verify_fcn.

Prosedur create_verify_function

Anda dapat membuat fungsi kustom untuk memverifikasi kata sandi dengan menerapkan prosedur rdsadmin.rdsadmin_password_verify.create_verify_function Amazon RDS. Prosedur create_verify_function mendukung versi 12.1.0.2.v5 dan semua versi utama dan minor yang lebih baru dari RDS for Oracle.

Prosedur create_verify_function memiliki parameter berikut.

Nama parameter Tipe data Default Diperlukan Deskripsi

p_verify_function_name

varchar2

Ya

Nama untuk fungsi kustom Anda. Fungsi ini dibuat untuk Anda dalam skema SYS. Anda menetapkan fungsi ini ke profil pengguna.

p_min_length

number

8

Tidak

Jumlah karakter minimum wajib diisi.

p_max_length

number

256

Tidak

Jumlah maksimum karakter diperbolehkan.

p_min_letters

number

1

Tidak

Jumlah huruf minimum wajib diisi.

p_min_uppercase

number

0

Tidak

Jumlah huruf besar minimum wajib diisi.

p_min_lowercase

number

0

Tidak

Jumlah huruf kecil minimum wajib diisi.

p_min_digits

number

1

Tidak

Jumlah digit minimum wajib diisi.

p_min_special

number

0

Tidak

Jumlah karakter khusus minimum wajib diisi.

p_min_different_chars

number

3

Tidak

Jumlah minimum karakter berbeda wajib diisi antara kata sandi lama dan baru.

p_disallow_username

boolean

true

Tidak

Tetapkan ke true untuk tidak mengizinkan nama pengguna dalam kata sandi.

p_disallow_reverse

boolean

true

Tidak

Tetapkan ke true untuk tidak mengizinkan pembalikan nama pengguna dalam kata sandi.

p_disallow_db_name

boolean

true

Tidak

Tetapkan ke true agar tidak mengizinkan nama basis data atau server ke dalam kata sandi.

p_disallow_simple_strings

boolean

true

Tidak

Tetapkan ke true untuk tidak mengizinkan string simpel ke dalam kata sandi.

p_disallow_whitespace

boolean

false

Tidak

Tetapkan ke true untuk tidak mengizinkan karakter dengan spasi dalam kata sandi.

p_disallow_at_sign

boolean

false

Tidak

Tetapkan ke true untuk tidak mengizinkan karakter @ dalam kata sandi.

Anda dapat membuat beberapa fungsi verifikasi kata sandi.

Ada pembatasan pada nama fungsi kustom Anda. Fungsi kustom Anda tidak dapat memiliki nama yang sama dengan objek sistem yang sudah ada. Panjang nama tidak boleh lebih dari 30 karakter. Selain itu, nama harus menyertakan salah satu dari string berikut: PASSWORD, VERIFY, COMPLEXITY, ENFORCE, atau STRENGTH.

Contoh berikut membuat fungsi dengan nama CUSTOM_PASSWORD_FUNCTION. Fungsi tersebut mengharuskan agar kata sandi memiliki setidaknya 12 karakter, 2 karakter huruf besar, 1 digit, dan 1 karakter khusus, dan kata sandi tidak boleh berisi karakter @.

begin rdsadmin.rdsadmin_password_verify.create_verify_function( p_verify_function_name => 'CUSTOM_PASSWORD_FUNCTION', p_min_length => 12, p_min_uppercase => 2, p_min_digits => 1, p_min_special => 1, p_disallow_at_sign => true); end; /

Untuk melihat teks fungsi verifikasi Anda, kueri DBA_SOURCE. Contoh berikut mendapatkan teks fungsi kata sandi kustom bernama CUSTOM_PASSWORD_FUNCTION.

COL TEXT FORMAT a150 SELECT TEXT FROM DBA_SOURCE WHERE OWNER = 'SYS' AND NAME = 'CUSTOM_PASSWORD_FUNCTION' ORDER BY LINE;

Untuk mengaitkan fungsi verifikasi Anda dengan profil pengguna, gunakan alter profile. Contoh berikut mengaitkan fungsi verifikasi dengan profil pengguna DEFAULT.

ALTER PROFILE DEFAULT LIMIT PASSWORD_VERIFY_FUNCTION CUSTOM_PASSWORD_FUNCTION;

Untuk melihat keterkaitan profil pengguna dengan fungsi verifikasi, kueri DBA_PROFILES. Contoh berikut mendapatkan profil yang terkait dengan fungsi verifikasi kustom bernama CUSTOM_PASSWORD_FUNCTION.

SELECT * FROM DBA_PROFILES WHERE RESOURCE_NAME = 'PASSWORD' AND LIMIT = 'CUSTOM_PASSWORD_FUNCTION'; PROFILE RESOURCE_NAME RESOURCE LIMIT ------------------------- -------------------------------- -------- ------------------------ DEFAULT PASSWORD_VERIFY_FUNCTION PASSWORD CUSTOM_PASSWORD_FUNCTION

Contoh berikut mendapatkan semua profil dan fungsi verifikasi kata sandi yang terkait dengan profil.

SELECT * FROM DBA_PROFILES WHERE RESOURCE_NAME = 'PASSWORD_VERIFY_FUNCTION'; PROFILE RESOURCE_NAME RESOURCE LIMIT ------------------------- -------------------------------- -------- ------------------------ DEFAULT PASSWORD_VERIFY_FUNCTION PASSWORD CUSTOM_PASSWORD_FUNCTION RDSADMIN PASSWORD_VERIFY_FUNCTION PASSWORD NULL

Prosedur create_passthrough_verify_fcn

Prosedur create_passthrough_verify_fcn mendukung versi 12.1.0.2.v7 dan semua versi utama dan minor yang lebih baru dari RDS for Oracle.

Anda dapat membuat fungsi kustom untuk memverifikasi kata sandi dengan menerapkan prosedur rdsadmin.rdsadmin_password_verify.create_passthrough_verify_fcn Amazon RDS. Prosedur create_passthrough_verify_fcn memiliki parameter berikut.

Nama parameter Tipe data Default Diperlukan Deskripsi

p_verify_function_name

varchar2

Ya

Nama untuk fungsi verifikasi kustom Anda. Ini adalah fungsi pembungkus yang dibuat untuk Anda dalam skema SYS, dan tidak berisi logika verifikasi apa pun. Anda menetapkan fungsi ini ke profil pengguna.

p_target_owner

varchar2

Ya

Pemilik skema untuk fungsi verifikasi kustom Anda.

p_target_function_name

varchar2

Ya

Nama fungsi kustom Anda saat ini yang berisi logika verifikasi. Fungsi kustom Anda harus menampilkan boolean. Fungsi Anda harus menampilkan true jika kata sandi valid dan false jika kata sandi tidak valid.

Contoh berikut membuat fungsi verifikasi kata sandi yang menggunakan logika dari fungsi yang disebut PASSWORD_LOGIC_EXTRA_STRONG.

begin rdsadmin.rdsadmin_password_verify.create_passthrough_verify_fcn( p_verify_function_name => 'CUSTOM_PASSWORD_FUNCTION', p_target_owner => 'TEST_USER', p_target_function_name => 'PASSWORD_LOGIC_EXTRA_STRONG'); end; /

Untuk mengaitkan fungsi verifikasi dengan profil pengguna, gunakan alter profile. Contoh berikut mengaitkan fungsi verifikasi dengan profil pengguna DEFAULT.

ALTER PROFILE DEFAULT LIMIT PASSWORD_VERIFY_FUNCTION CUSTOM_PASSWORD_FUNCTION;

Menyiapkan server DNS kustom

Amazon RDS mendukung akses jaringan keluar di instans DB Anda yang menjalankan Oracle. Untuk informasi selengkapnya tentang akses jaringan keluar, termasuk prasyarat, lihat Mengonfigurasi akses UTL_HTTP menggunakan sertifikat dan dompet Oracle.

Amazon RDS Oracle memungkinkan resolusi Layanan Nama Domain (DNS) dari server DNS kustom yang dimiliki oleh pelanggan. Anda hanya dapat menyelesaikan nama domain yang benar-benar memenuhi syarat dari instans DB Amazon RDS Anda melalui server DNS khusus.

Setelah Anda mengatur nama server DNS Anda, perlu waktu hingga 30 menit untuk menyebarkan perubahan ke instans DB Anda. Setelah perubahan diterapkan ke instans DB Anda, semua lalu lintas jaringan keluar mengharuskan pencarian DNS mengkueri server DNS melalui port 53.

Untuk membuat server DNS khusus untuk instans DB Amazon RDS for Oracle, lakukan hal berikut:

  • Dari set opsi DHCP yang terlampir pada cloud privat virtual (VPC) Anda, tetapkan opsi domain-name-servers ke alamat IP server nama DNS Anda. Untuk informasi selengkapnya, lihat Set opsi DHCP.

    catatan

    Opsi domain-name-servers menerima hingga empat nilai, tetapi instans DB Amazon RDS Anda hanya menggunakan nilai pertama.

  • Pastikan bahwa server DNS Anda dapat menyelesaikan semua kueri pencarian, termasuk nama DNS publik, nama DNS privat Amazon EC2, dan nama DNS khusus pelanggan. Jika lalu lintas jaringan keluar memuat setiap pencarian DNS yang tidak dapat ditangani server DNS Anda, server DNS Anda harus dikonfigurasikan oleh penyedia DNS hulu yang sesuai.

  • Konfigurasikan server DNS Anda untuk menghasilkan respons Protokol Datagram Pengguna (UDP) sebesar 512 byte atau kurang.

  • Konfigurasikan server DNS Anda untuk menghasilkan respons Protokol Kontrol Transmisi (TCP) sebesar 1024 byte atau kurang.

  • Konfigurasikan server DNS Anda untuk mengizinkan lalu lintas masuk dari instans DB Amazon RDS Anda melalui port 53. Jika server DNS Anda berada di Amazon VPC, maka VPC harus memiliki grup keamanan yang berisi aturan masuk yang mengizinkan lalu lintas UDP dan TCP di port 53. Jika server DNS Anda tidak berada di dalam VPC Amazon, server harus memiliki daftar izin firewall yang sesuai untuk mengizinkan lalu lintas masuk UDP dan TCP di port 53.

    Untuk informasi lebih lanjut, lihat Grup keamanan untuk VPC Anda dan Menambahkan dan menghapus aturan.

  • Konfigurasikan VPC instans DB Amazon RDS Anda untuk mengizinkan lalu lintas keluar melalui port 53. VPC Anda harus memiliki grup keamanan yang berisi aturan keluar yang mengizinkan lalu lintas UDP dan TCP di port 53.

    Untuk informasi lebih lanjut, lihat Grup keamanan untuk VPC Anda serta Menambahkan dan menghapus aturan.

  • Jalur perutean antara instans DB Amazon RDS dan server DNS harus dikonfigurasi dengan benar untuk memungkinkan lalu lintas DNS.

    • Jika instans DB Amazon RDS dan server DNS tidak berada dalam VPC yang sama, koneksi peering harus diatur di antara keduanya. Untuk informasi selengkapnya, lihat Apa yang dimaksud peering VPC?

Mengatur dan membatalkan pengaturan peristiwa diagnostik sistem

Untuk mengatur dan membatalkan pengaturan peristiwa diagnostik pada tingkat sesi, Anda dapat menggunakan pernyataan ALTER SESSION SET EVENTS Oracle SQL. Namun, untuk menyetel peristiwa di tingkat sistem, Anda tidak dapat menggunakan Oracle SQL. Sebaliknya, gunakan prosedur peristiwa sistem dalam paket rdsadmin.rdsadmin_util. Prosedur peristiwa sistem tersedia dalam versi mesin berikut:

  • Semua versi Oracle Database 21c

  • Versi 19.0.0.ru-2020-10.rur-2020-10.rur-2020-10.r1 dan Oracle Database 19c yang lebih baru

    Untuk informasi selengkapnya, lihat Versi 19.0.0.0.ru-2020-10.rur-2020-10.r1 di Catatan Rilis Amazon RDS for Oracle.

  • Versi 12.2.0.1.ru-2020-10.rur-2020-10.rur-2020-10.r1 dan Oracle Database 12c Rilis 2 (12.2.0.1)

    Untuk informasi selengkapnya, lihat Versi 12.2.0.1.ru-2020-10.rur-2020-10.r1 di Catatan Rilis Amazon RDS for Oracle.

  • Versi 12.1.0.2.V22 dan Oracle Database 12c Rilis 1 (12.1.0.2) yang lebih baru

    Untuk informasi selengkapnya, lihat Versi 12.1.0.2.v22 di Catatan Rilis Amazon RDS for Oracle.

para

penting

Secara internal, paket rdsadmin.rdsadmin_util menetapkan peristiwa menggunakan pernyataan ALTER SYSTEM SET EVENTS. Pernyataan ALTER SYSTEM tidak didokumentasikan di dokumentasi Oracle Database. Beberapa peristiwa diagnostik sistem dapat menghasilkan informasi pelacakan dalam jumlah besar, menyebabkan pertentangan, atau memengaruhi ketersediaan basis data. Sebaiknya uji peristiwa diagnostik tertentu dalam basis data nonproduksi, dan hanya tetapkan persitiwa dalam basis data produksi Anda berdasarkan panduan Dukungan Oracle.

Mencantumkan peristiwa diagnostik sistem yang diizinkan

Untuk mencantumkan peristiwa sistem yang dapat Anda tetapkan, gunakan prosedur rdsadmin.rdsadmin_util.list_allowed_system_events Amazon RDS. Prosedur ini tidak menerima parameter.

Contoh berikut mencantumkan semua peristiwa sistem yang dapat Anda tetapkan.

SET SERVEROUTPUT ON EXEC rdsadmin.rdsadmin_util.list_allowed_system_events;

Output sampel berikut mencantumkan nomor peristiwa dan deskripsinya. Gunakan prosedur set_system_event Amazon RDS untuk mengatur peristiwa dan unset_system_event untuk membatalkan pengaturannya.

604 - error occurred at recursive SQL level 942 - table or view does not exist 1401 - inserted value too large for column 1403 - no data found 1410 - invalid ROWID 1422 - exact fetch returns more than requested number of rows 1426 - numeric overflow 1427 - single-row subquery returns more than one row 1476 - divisor is equal to zero 1483 - invalid length for DATE or NUMBER bind variable 1489 - result of string concatenation is too long 1652 - unable to extend temp segment by in tablespace 1858 - a non-numeric character was found where a numeric was expected 4031 - unable to allocate bytes of shared memory ("","","","") 6502 - PL/SQL: numeric or value error 10027 - Specify Deadlock Trace Information to be Dumped 10046 - enable SQL statement timing 10053 - CBO Enable optimizer trace 10173 - Dynamic Sampling time-out error 10442 - enable trace of kst for ORA-01555 diagnostics 12008 - error in materialized view refresh path 12012 - error on auto execute of job 12504 - TNS:listener was not given the SERVICE_NAME in CONNECT_DATA 14400 - inserted partition key does not map to any partition 31693 - Table data object failed to load/unload and is being skipped due to error:
catatan

Daftar peristiwa sistem yang diizinkan dapat berubah seiring waktu. Untuk memastikan bahwa Anda memiliki daftar terbaru peristiwa yang memenuhi syarat, gunakan rdsadmin.rdsadmin_util.list_allowed_system_events.

Menyetel peristiwa diagnostik sistem

Untuk menyetel peristiwa sistem, gunakan prosedur rdsadmin.rdsadmin_util.set_system_event Amazon RDS. Anda hanya dapat menyetel peristiwa yang tercantum dalam output dari rdsadmin.rdsadmin_util.list_allowed_system_events. Prosedur set_system_event menerima parameter berikut.

Nama parameter Tipe data Default Diperlukan Deskripsi

p_event

number

Ya

Nomor peristiwa sistem. Nilai harus salah satu nomor event yang dilaporkan oleh list_allowed_system_events.

p_level

number

Ya

Level peristiwa. Lihat dokumentasi Oracle Database atau Dukungan Oracle untuk deskripsi berbagai nilai level.

Prosedur set_system_event membangun dan menjalankan pernyataan wajib ALTER SYSTEM SET EVENTS yang sesuai dengan prinsip berikut:

  • Tipe peristiwa (context atau errorstack) ditentukan secara otomatis.

  • Pernyataan dalam formulir ALTER SYSTEM SET EVENTS 'event LEVEL event_level' menetapkan peristiwa konteks. Notasi ini setara dengan ALTER SYSTEM SET EVENTS 'event TRACE NAME CONTEXT FOREVER, LEVEL event_level'.

  • Pernyataan dalam formulir ALTER SYSTEM SET EVENTS 'event ERRORSTACK (event_level)' mengatur peristiwa tumpukan kesalahan. Notasi ini setara dengan ALTER SYSTEM SET EVENTS 'event TRACE NAME ERRORSTACK LEVEL event_level'.

Contoh berikut menetapkan peristiwa 942 di level 3, dan peristiwa 10442 di level 10. Contoh output disertakan.

SQL> SET SERVEROUTPUT ON SQL> EXEC rdsadmin.rdsadmin_util.set_system_event(942,3); Setting system event 942 with: alter system set events '942 errorstack (3)' PL/SQL procedure successfully completed. SQL> EXEC rdsadmin.rdsadmin_util.set_system_event(10442,10); Setting system event 10442 with: alter system set events '10442 level 10' PL/SQL procedure successfully completed.

Mencantumkan peristiwa diagnostik sistem yang ditetapkan

Untuk mencantumkan peristiwa sistem yang sudah ditetapkan saat ini, gunakan prosedur rdsadmin.rdsadmin_util.list_set_system_events Amazon RDS. Prosedur ini melaporkan hanya peristiwa yang ditetapkan pada tingkat sistem oleh set_system_event.

Contoh berikut mencantumkan peristiwa sistem aktif.

SET SERVEROUTPUT ON EXEC rdsadmin.rdsadmin_util.list_set_system_events;

Output sampel berikut menunjukkan daftar peristiwa, tipe peristiwa, level peristiwa yang saat ini ditetapkan, dan waktu saat peristiwa ditetapkan.

942 errorstack (3) - set at 2020-11-03 11:42:27 10442 level 10 - set at 2020-11-03 11:42:41 PL/SQL procedure successfully completed.

Membatalkan pengaturan peristiwa diagnostik sistem

Untuk membatalkan pengaturan peristiwa sistem, gunakan prosedur rdsadmin.rdsadmin_util.unset_system_event Amazon RDS. Anda hanya dapat membatalkan pengaturan peristiwa yang tercantum dalam output dari rdsadmin.rdsadmin_util.list_allowed_system_events. Prosedur unset_system_event menerima parameter berikut.

Nama parameter Tipe data Default Diperlukan Deskripsi

p_event

number

Ya

Nomor peristiwa sistem. Nilai harus salah satu nomor peristiwa yang dilaporkan oleh list_allowed_system_events.

Contoh berikut akan membatalkan pengaturan peristiwa 942 dan 10442. Contoh output disertakan.

SQL> SET SERVEROUTPUT ON SQL> EXEC rdsadmin.rdsadmin_util.unset_system_event(942); Unsetting system event 942 with: alter system set events '942 off' PL/SQL procedure successfully completed. SQL> EXEC rdsadmin.rdsadmin_util.unset_system_event(10442); Unsetting system event 10442 with: alter system set events '10442 off' PL/SQL procedure successfully completed.