

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

# Membuat fungsi kustom untuk memverifikasi kata sandi
<a name="Appendix.Oracle.CommonDBATasks.CustomPassword"></a>

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\$1verify\$1function
<a name="Appendix.Oracle.CommonDBATasks.CustomPassword.Standard"></a>

Anda dapat membuat fungsi kustom untuk memverifikasi kata sandi dengan menerapkan prosedur `rdsadmin.rdsadmin_password_verify.create_verify_function` Amazon RDS. `create_verify_function`Prosedur ini didukung untuk semua versi RDS untuk Oracle.

Prosedur `create_verify_function` memiliki parameter berikut. 


****  

| Nama parameter | Jenis data | Default | Wajib | 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 PL/SQL fungsi verifikasi bernama `CUSTOM_PASSWORD_FUNCTION` dengan profil `DEFAULT` pengguna. `PASSWORD_VERIFY_FUNCTION`adalah nama sumber daya profil Oracle. 

```
ALTER PROFILE DEFAULT LIMIT PASSWORD_VERIFY_FUNCTION CUSTOM_PASSWORD_FUNCTION;
```

Untuk melihat profil pengguna mana yang terkait dengan fungsi verifikasi mana, 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_VERIFY_FUNCTION' 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\$1passthrough\$1verify\$1fcn
<a name="Appendix.Oracle.CommonDBATasks.CustomPassword.Custom"></a>

`create_passthrough_verify_fcn`Prosedur ini didukung untuk semua versi RDS untuk 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 | Jenis data | Default | Wajib | 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;
```