

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

# Prosedur create\_verify\_function
<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
```