

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Creazione delle funzionalità personalizzate per verificare le password
<a name="Appendix.Oracle.CommonDBATasks.CustomPassword"></a>

Puoi creare una funzionalità di verifica della password personalizzata in due modi:
+ Se desideri utilizzare la verifica standard e archiviare la funzione nello schema `SYS`, utilizza la procedura `create_verify_function`. 
+ Se desideri utilizzare la verifica personalizzata p desideri archiviare la funzione nello schema `SYS`, utilizza la procedura `create_passthrough_verify_fcn`. 

# La procedura create\$1verify\$1function
<a name="Appendix.Oracle.CommonDBATasks.CustomPassword.Standard"></a>

Puoi creare una funzione personalizzata per verificare le password usando la procedura in Amazon RDS `rdsadmin.rdsadmin_password_verify.create_verify_function`. La procedura `create_verify_function` è supportata per tutte le versioni di RDS per Oracle.

La procedura `create_verify_function` include i seguenti parametri. 


****  

| Nome del parametro | Tipo di dati | Default | Campo obbligatorio | Descrizione | 
| --- | --- | --- | --- | --- | 
|  `p_verify_function_name`  |  varchar2  |  —  |  Sì  |  Il nome per la funzionalità personalizzata. La funzionalità viene creata per te nello schema SYS. Assegni questa funzione a profili di utente.   | 
|  `p_min_length`  |  numero  |  8  |  No  |  Il numero minimo di caratteri necessari.  | 
|  `p_max_length`  |  numero  |  256  |  No  |  Il numero massimo di caratteri permessi.  | 
|  `p_min_letters`  |  numero  |  1  |  No  |  Il numero minimo di lettere necessarie.  | 
|  `p_min_uppercase`  |  numero  |  0  |  No  |  Il numero minimo di lettere maiuscole necessarie.  | 
|  `p_min_lowercase`  |  numero  |  0  |  No  |  Il numero minimo di lettere minuscole necessarie.  | 
|  `p_min_digits`  |  numero  |  1  |  No  |  Il numero minimo di cifre necessarie.  | 
|  `p_min_special`  |  numero  |  0  |  No  |  Il numero minimo di caratteri speciali necessari.  | 
|  `p_min_different_chars`  |  numero  |  3  |  No  |  Il numero minimo di caratteri diversi necessari tra la password vecchia e quella nuova.  | 
|  `p_disallow_username`  |  booleano  |  true  |  No  |  Impostato su `true` per non consentire il nome utente nella password.  | 
|  `p_disallow_reverse`  |  booleano  |  true  |  No  |  Impostato su `true` per non consentire l'inversione del nome utente nella password.  | 
|  `p_disallow_db_name`  |  booleano  |  true  |  No  |  Impostato su `true` per non consentire il database o il nome del server nella password.  | 
|  `p_disallow_simple_strings`  |  booleano  |  true  |  No  |  Impostato su `true` per non consentire stringhe semplici come password.  | 
|  `p_disallow_whitespace`  |  booleano  |  false  |  No  |  Impostato su `true` per non consentire gli spazi vuoti nella password.  | 
|  `p_disallow_at_sign`  |  booleano  |  false  |  No  |  Impostare su `true` per non consentire il carattere @ nella password.  | 

Puoi creare funzionalità multiple di verifica della password.

Ci sono limitazioni riguardo al nome della funzionalità personalizzata. La funzione personalizzata non può avere lo stesso nome di un oggetto di sistema esistente. La lunghezza del nome non può superare i 30 caratteri. Inoltre, il nome deve includere una delle seguenti stringhe: `PASSWORD`, `VERIFY`, `COMPLEXITY`, `ENFORCE` o `STRENGTH`. 

L'esempio seguente crea una funzionalità denominata `CUSTOM_PASSWORD_FUNCTION`. La funzionalità richiede una password che includa almeno 12 caratteri, 2 caratteri maiuscoli, 1 cifra, 1 carattere speciale e che non consenta il carattere @. 

```
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;
/
```

Per vedere il testo della funzionalità di verifica, eseguire una query a `DBA_SOURCE`. L'esempio seguente ottiene il testo da una funzionalità di password personalizzata denominata `CUSTOM_PASSWORD_FUNCTION`. 

```
COL TEXT FORMAT a150

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

Per associare la funzionalità di verifica con un profilo utente, utilizza `ALTER PROFILE`. L'esempio seguente associa una PL/SQL funzione di verifica `CUSTOM_PASSWORD_FUNCTION` denominata al profilo `DEFAULT` utente. `PASSWORD_VERIFY_FUNCTION`è il nome della risorsa del profilo Oracle. 

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

Per vedere quali profili utente sono associati a quali funzioni di verifica, interroga`DBA_PROFILES`. L'esempio seguente ottiene i profili che sono associati alla funzionalità di verifica personalizzata denominata `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
```

L'esempio seguente ottiene tutti i profili e la funzionalità di verifica della password alla quale sono associati. 

```
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
```

# La procedura create\$1passthrough\$1verify\$1fcn
<a name="Appendix.Oracle.CommonDBATasks.CustomPassword.Custom"></a>

La procedura `create_passthrough_verify_fcn` è supportata per tutte le versioni di RDS per Oracle.

Puoi creare una funzione personalizzata per verificare le password usando la procedura in Amazon RDS `rdsadmin.rdsadmin_password_verify.create_passthrough_verify_fcn`. La procedura `create_passthrough_verify_fcn` include i seguenti parametri. 


****  

| Nome del parametro | Tipo di dati | Default | Campo obbligatorio | Descrizione | 
| --- | --- | --- | --- | --- | 
|  `p_verify_function_name`  |  varchar2  |  —  |  Sì  |  Il nome per la funzionalità di verifica personalizzata. Questa è una funzionalità wrapper creata per te nello schema SYS e non contiene nessuna logica di verifica. Assegni questa funzione a profili di utente.   | 
|  `p_target_owner`  |  varchar2  |  —  |  Sì  |  Il proprietario dello schema per la funzionalità di verifica personalizzata.  | 
|  `p_target_function_name`  |  varchar2  |  —  |  Sì  |  Il nome della funzionalità personalizzata esistente che contiene una logica di verifica. La funzionalità personalizzata deve restituire un booleano. La funzionalità deve restituire `true` se la password è valida e `false` se la password non è valida.   | 

L'esempio seguente crea una funzionalità di verifica della password che utilizza la logica dalla funzionalità denominata `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;
/
```

Per associare la funzionalità di verifica con un profilo utente, utilizza `alter profile`. L'esempio seguente associa la funzionalità di verifica con un profilo utente `DEFAULT`. 

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