

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Erstellen von benutzerdefinierten Funktionen für das Überprüfen von Passwörtern
<a name="Appendix.Oracle.CommonDBATasks.CustomPassword"></a>

Es gibt verschiedene Möglichkeiten, eine benutzerdefinierte Funktion für die Passwortüberprüfung zu erstellen:
+ Um die Standardüberprüfungslogik zu verwenden und Ihre Funktion im `SYS`-Schema zu speichern, verwenden Sie die Prozedur `create_verify_function`. 
+ Um eine benutzerdefinierte Überprüfungslogik zu verwenden und Ihre Funktion nicht im `SYS`-Schema zu speichern, verwenden Sie die Prozedur `create_passthrough_verify_fcn`. 

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

Sie können eine benutzerdefinierte Funktion erstellen, um Passwörter mithilfe der Amazon-RDS-Prozedur `rdsadmin.rdsadmin_password_verify.create_verify_function` zu überprüfen. Das Verfahren `create_verify_function` wird für alle Versionen von RDS für Oracle unterstützt.

Die Prozedur `create_verify_function` hat die folgenden Parameter. 


****  

| Parametername | Datentyp | Standard | Erforderlich | Beschreibung | 
| --- | --- | --- | --- | --- | 
|  `p_verify_function_name`  |  varchar2  |  —  |  Ja  |  Der Name für Ihre benutzerdefinierte Funktion. Diese Funktion wird für Sie im SYS-Schema erstellt. Sie teilen diese Funktion den Benutzerprofilen zu.   | 
|  `p_min_length`  |  Zahl  |  8  |  Nein  |  Die erforderliche Mindestzeichenanzahl.  | 
|  `p_max_length`  |  Zahl  |  256  |  Nein  |  Die maximale Anzahl der erlaubten Zeichen  | 
|  `p_min_letters`  |  Zahl  |  1  |  Nein  |  Die Mindestanzahl der erforderlichen Buchstaben  | 
|  `p_min_uppercase`  |  Zahl  |  0  |  Nein  |  Die Mindestanzahl der erforderlichen Großbuchstaben  | 
|  `p_min_lowercase`  |  Zahl  |  0  |  Nein  |  Die Mindestanzahl der erforderlichen Kleinbuchstaben  | 
|  `p_min_digits`  |  Zahl  |  1  |  Nein  |  Die Mindestanzahl der erforderlichen Zahlen  | 
|  `p_min_special`  |  Zahl  |  0  |  Nein  |  Die Mindestanzahl der erforderlichen Sonderzeichen  | 
|  `p_min_different_chars`  |  Zahl  |  3  |  Nein  |  Die Mindestanzahl der zwischen dem alten und dem neuen Passwort erforderlichen unterschiedlichen Zeichen.  | 
|  `p_disallow_username`  |  Boolean  |  true  |  Nein  |  Setzen Sie diesen Wert auf `true`, um den Benutzernamen im Passwort nicht zu erlauben.  | 
|  `p_disallow_reverse`  |  Boolean  |  true  |  Nein  |  Auf `true` festlegen, um die Umkehrung des Benutzernamens im Passwort zu verbieten.  | 
|  `p_disallow_db_name`  |  Boolean  |  true  |  Nein  |  Setzen Sie diesen Wert auf `true`, um den Datenbank- oder Servernamen im Passwort nicht zu erlauben.  | 
|  `p_disallow_simple_strings`  |  Boolean  |  true  |  Nein  |  Setzen Sie diesen Wert auf `true`, um einfache Zeichenfolgen im Passwort nicht zu erlauben.  | 
|  `p_disallow_whitespace`  |  Boolean  |  false  |  Nein  |  Setzen Sie diesen Wert auf `true`, um Leerzeichen im Passwort nicht zu erlauben.  | 
|  `p_disallow_at_sign`  |  Boolean  |  false  |  Nein  |  Setzen Sie diesen Wert auf `true`, um das @-Zeichen im Passwort nicht zu erlauben.  | 

Sie können mehrere benutzerdefinierte Funktionen für die Passwortüberprüfung erstellen.

Es gibt Einschränkungen im Hinblick auf den Namen für Ihre benutzerdefinierte Funktion. Der Name Ihrer benutzerdefinierten Funktion darf nicht mit dem Namen eines vorhandenen Systemobjekts identisch sein. Der Name darf nicht mehr als 30 Zeichen lang sein. Der Name muss außerdem eine der folgenden Zeichenfolgen enthalten: `PASSWORD`, `VERIFY`, `COMPLEXITY`, `ENFORCE` oder `STRENGTH`. 

Im folgenden Beispiel wird die Funktion mit dem Namen erstell `CUSTOM_PASSWORD_FUNCTION`. Die Funktion erfordert ein Passwort mit mindestens 12 Zeichen, 2 Großbuchstaben, 1 Zahl und 1 Sonderzeichen. Außerdem ist das @-Zeichen im Passwort nicht erlaubt. 

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

Tätigen Sie die Abfrage `DBA_SOURCE`, um den Text Ihrer Überprüfungsfunktion anzusehen. Im folgenden Beispiel wird der Text einer benutzerdefinierten Passwortfunktion mit dem Namen erhalte `CUSTOM_PASSWORD_FUNCTION`. 

```
COL TEXT FORMAT a150

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

Verwenden Sie `ALTER PROFILE`, um Ihre Überprüfungsfunktion einem Benutzerprofil zuzuordnen. Im folgenden Beispiel wird eine PL/SQL Bestätigungsfunktion `CUSTOM_PASSWORD_FUNCTION` mit dem Namen des `DEFAULT` Benutzerprofils verknüpft. `PASSWORD_VERIFY_FUNCTION`ist der Ressourcenname des Oracle-Profils. 

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

Um zu sehen, welche Benutzerprofile mit welchen Überprüfungsfunktionen verknüpft sind, fragen Sie ab`DBA_PROFILES`. Im folgenden Beispiel wird das Profil erhalten, dem die benutzerdefinierte Überprüfungsfunktion mit dem Namen zugehörig is `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
```

Im folgenden Beispiel werden alle Profile und Passwortüberprüfungsfunktionen erhalten, die miteinander verknüpft sind. 

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

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

Das Verfahren `create_passthrough_verify_fcn` wird für alle Versionen von RDS für Oracle unterstützt.

Sie können eine benutzerdefinierte Funktion erstellen, um Passwörter mithilfe der Amazon-RDS-Prozedur `rdsadmin.rdsadmin_password_verify.create_passthrough_verify_fcn` zu überprüfen. Die Prozedur `create_passthrough_verify_fcn` hat die folgenden Parameter. 


****  

| Parametername | Datentyp | Standard | Erforderlich | Beschreibung | 
| --- | --- | --- | --- | --- | 
|  `p_verify_function_name`  |  varchar2  |  —  |  Ja  |  Der Name für Ihre benutzerdefinierte Überprüfungsfunktion. Dies ist eine Wrapper-Funktion, die für Sie im SYS-Schema erstellt wird und keine Überprüfungslogik beinhaltet. Sie teilen diese Funktion den Benutzerprofilen zu.   | 
|  `p_target_owner`  |  varchar2  |  —  |  Ja  |  Der Schemabesitzer für Ihre benutzerdefinierte Überprüfungsfunktion  | 
|  `p_target_function_name`  |  varchar2  |  —  |  Ja  |  Der Name für Ihre bestehende benutzerdefinierte Funktion, der die Überprüfungslogik beinhaltet. Ihre benutzerdefinierte Funktion muss einen Booleschen Wert zurückgeben. Ihre Funktion sollte `true`zurückgeben, wenn das Passwort gültig ist, und `false`, wenn das Passwort ungültig ist.   | 

Im folgenden Beispiel wird eine Passwortüberprüfungsfunktion erstellt, die die Logik aus der Funktion mit dem Namen verwende `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;
/
```

Verwenden Sie , um die Überprüfungsfunktion Ihrem Benutzerprofil zuzuordne `alter profile`. Im folgenden Beispiel wird die Überprüfungsfunktion mit dem `DEFAULT`-Benutzerprofil verknüpft. 

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