Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Exécution des tâches système courantes pour les instances de bases de données Oracle
Vous trouverez ci-dessous des informations sur la façon d'effectuer certaines tâches DBA courantes liées au système sur vos instances de base de données Amazon RDS exécutant Oracle. Pour offrir une expérience de service géré, Amazon RDS ne fournit pas l'accès shell aux instances de base de données et limite l'accès à certaines tables et procédures système qui requièrent des privilèges avancés.
Rubriques
- Déconnexion d'une session
- Terminer une session
- Annulation d'une instruction SQL dans une session
- Activation et désactivation de sessions restreintes
- Vidage du pool partagé
- Vidage du cache de tampon
- Vider le cache Smart Flash de la base de données
- Octroi des privilèges SELECT ou EXECUTE aux objets SYS
- Retrait des privilèges SELECT ou EXECUTE sur les objets SYS
- Gestion des vues RDS_X$ pour les instances de base de données Oracle
- Attribution de privilèges à des utilisateurs non-maîtres
- Création de fonctions personnalisées pour vérifier les mots de passe
- Configuration d'un serveur DNS personnalisé
- Activation et désactivation des événements de diagnostic système
Déconnexion d'une session
Pour déconnecter la session en cours en mettant fin au processus serveur dédié, utilisez la procédure Amazon RDS rdsadmin.rdsadmin_util.disconnect
. La procédure disconnect
possède les paramètres suivants.
Nom du paramètre | Type de données | Par défaut | Obligatoire | Description |
---|---|---|---|---|
|
nombre |
— |
Oui |
Identifiant de session. |
|
nombre |
— |
Oui |
Numéro de série de la session. |
|
varchar |
'IMMEDIATE' |
Non |
Les valeurs valides sont |
L'exemple suivant déconnecte une session.
begin rdsadmin.rdsadmin_util.disconnect( sid =>
sid
, serial =>serial_number
); end; /
Pour obtenir l'identifiant et le numéro de série de la session, interrogez la vue V$SESSION
. L'exemple suivant obtient toutes les sessions pour l'utilisateur AWSUSER
.
SELECT SID, SERIAL#, STATUS FROM V$SESSION WHERE USERNAME = '
AWSUSER
';
La base de données doit être ouverte pour pouvoir utiliser cette méthode. Pour plus d'informations sur la déconnexion d'une session, consultez ALTER SYSTEM (MODIFIER SYSTÈME)
Terminer une session
Pour arrêter une session, utilisez la procédure Amazon RDS rdsadmin.rdsadmin_util.kill
. La procédure kill
possède les paramètres suivants.
Nom du paramètre | Type de données | Par défaut | Obligatoire | Description |
---|---|---|---|---|
|
nombre |
— |
Oui |
Identifiant de session. |
|
nombre |
— |
Oui |
Numéro de série de la session. |
|
varchar |
null |
Non |
Les valeurs valides sont
Si vous spécifiez |
Pour obtenir l'identifiant et le numéro de série de la session, interrogez la vue V$SESSION
. L'exemple suivant permet d'obtenir toutes les sessions de l'utilisateur AWSUSER
.
SELECT SID, SERIAL#, STATUS FROM V$SESSION WHERE USERNAME = '
AWSUSER
';
L'exemple suivant met fin à une session.
BEGIN rdsadmin.rdsadmin_util.kill( sid =>
sid
, serial =>serial_number
, method => 'IMMEDIATE'); END; /
L'exemple suivant résilie les processus associés à une séance.
BEGIN rdsadmin.rdsadmin_util.kill( sid =>
sid
, serial =>serial_number
, method => 'PROCESS'); END; /
Annulation d'une instruction SQL dans une session
Pour annuler une instruction SQL dans une session, utilisez la procédure Amazon RDS rdsadmin.rdsadmin_util.cancel
.
Note
Cette procédure est prise en charge pour Oracle Database 19c (19.0.0) et toutes les versions majeures et mineures ultérieures de RDS for Oracle.
La procédure cancel
possède les paramètres suivants.
Nom du paramètre | Type de données | Par défaut | Obligatoire | Description |
---|---|---|---|---|
|
nombre |
— |
Oui |
Identifiant de session. |
|
nombre |
— |
Oui |
Numéro de série de la session. |
|
varchar2 |
null |
Non |
Identifiant SQL de l'instruction SQL. |
L'exemple suivant annuler une instruction SQL dans une session.
begin rdsadmin.rdsadmin_util.cancel( sid =>
sid
, serial =>serial_number
, sql_id =>sql_id
); end; /
Pour obtenir l'identifiant et le numéro de série de la session ainsi que l'identifiant SQL d'une instruction SQL, interrogez la vue V$SESSION
. L'exemple suivant obtient toutes les sessions et les identifiants SQL pour l'utilisateur AWSUSER
.
select SID, SERIAL#, SQL_ID, STATUS from V$SESSION where USERNAME = '
AWSUSER
';
Activation et désactivation de sessions restreintes
Pour activer et désactiver des sessions restreintes, utilisez la procédure Amazon RDS rdsadmin.rdsadmin_util.restricted_session
. La procédure restricted_session
possède les paramètres suivants.
Nom du paramètre | Type de données | Par défaut | Oui | Description |
---|---|---|---|---|
|
booléen |
true |
Non |
Définissez ce paramètre sur |
L'exemple suivant montre comment activer et désactiver les sessions restreintes.
/* 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
Vidage du pool partagé
Pour vider le pool partagé, utilisez la procédure Amazon RDS rdsadmin.rdsadmin_util.flush_shared_pool
. La procédure flush_shared_pool
ne comporte aucun paramètre.
L'exemple suivant vide le pool partagé.
EXEC rdsadmin.rdsadmin_util.flush_shared_pool;
Vidage du cache de tampon
Pour vider le cache de tampon, utilisez la procédure Amazon RDS rdsadmin.rdsadmin_util.flush_buffer_cache
. La procédure flush_buffer_cache
ne comporte aucun paramètre.
L'exemple suivant vide le cache des tampons.
EXEC rdsadmin.rdsadmin_util.flush_buffer_cache;
Vider le cache Smart Flash de la base de données
Pour vider le cache Smart Flash de la base de données, utilisez la procédure Amazon RDS rdsadmin.rdsadmin_util.flush_flash_cache
. La procédure flush_flash_cache
ne comporte aucun paramètre. L'exemple suivant vide le cache Smart Flash de la base de données.
EXEC rdsadmin.rdsadmin_util.flush_flash_cache;
Pour plus d'informations sur l'utilisation du cache Smart Flash de la base de données avec RDS for Oracle, consultez Stockage de données temporaires dans un stockage d'instances RDS for Oracle.
Octroi des privilèges SELECT ou EXECUTE aux objets SYS
Généralement, vous transférez les privilèges en utilisant des rôles, qui peuvent contenir de nombreux objets. Pour accorder des privilèges à un objet unique, utilisez la procédure Amazon RDS rdsadmin.rdsadmin_util.grant_sys_object
. La procédure accorde uniquement les privilèges qui ont déjà été accordés à l'utilisateur principal par le biais d'un rôle ou d'une attribution directe.
La procédure grant_sys_object
possède les paramètres suivants.
Important
Pour toutes les valeurs de paramètre, utilisez les majuscules sauf si vous avez créé l'utilisateur avec un identifiant sensible à la casse. Par exemple, si vous exécutez CREATE USER
myuser
ou CREATE USER MYUSER
, le dictionnaire de données stocke MYUSER
. Toutefois, si vous utilisez des guillemets doubles dans CREATE USER
"MyUser"
, le dictionnaire de données stocke MyUser
.
Nom du paramètre | Type de données | Par défaut | Obligatoire | Description |
---|---|---|---|---|
|
varchar2 |
— |
Oui |
Nom de l'objet pour lequel des privilèges seront accordés. L'objet peut être un répertoire, une fonction, un package, une procédure, une séquence, une table ou une vue. Les noms d'objet doivent être orthographiés correctement lorsqu'ils apparaissent dans |
|
varchar2 |
— |
Oui |
Nom de l'objet auquel des privilèges seront accordés. L'objet peut être un schéma ou un rôle. |
|
varchar2 |
null |
Oui |
— |
|
booléen |
false |
Non |
Définissez ce paramètre sur |
L'exemple suivant accorde des privilèges select sur un objet nommé V_$SESSION
à un utilisateur nommé USER1
.
begin rdsadmin.rdsadmin_util.grant_sys_object( p_obj_name => '
V_$SESSION
', p_grantee => 'USER1
', p_privilege => 'SELECT
'); end; /
L'exemple suivant accorde des privilèges select sur un objet nommé V_$SESSION
à un utilisateur nommé USER1
avec l'option d'attribution.
begin rdsadmin.rdsadmin_util.grant_sys_object( p_obj_name => '
V_$SESSION
', p_grantee => 'USER1
', p_privilege => 'SELECT
', p_grant_option =>true
); end; /
Pour pouvoir attribuer des privilèges sur un objet, votre compte doit avoir ces privilèges directement attribués avec l'option appropriée ou via un rôle accordé avec with admin option
. Le plus souvent, vous voudrez attribuer SELECT
sur une vue DBA qui a été attribuée au rôle SELECT_CATALOG_ROLE
. Si ce rôle n'est pas déjà directement attribué à votre utilisateur avec with admin option
, vous ne pouvez pas transférer le privilège. Si vous disposez du privilège DBA, vous pouvez accorder le rôle directement à un autre utilisateur.
L'exemple suivant accorde les rôles SELECT_CATALOG_ROLE
et EXECUTE_CATALOG_ROLE
à USER1
. Étant donné que with
admin option
est utilisé, USER1
peut désormais accorder l'accès aux objets SYS qui ont été attribués à SELECT_CATALOG_ROLE
.
GRANT SELECT_CATALOG_ROLE TO
USER1
WITH ADMIN OPTION; GRANT EXECUTE_CATALOG_ROLE toUSER1
WITH ADMIN OPTION;
Les objets déjà attribués à PUBLIC
n'ont pas besoin d'être réattribués. Si vous utilisez la procédure grant_sys_object
pour accorder de nouveau l'accès, l'appel de procédure réussit.
Retrait des privilèges SELECT ou EXECUTE sur les objets SYS
Pour retirer des privilèges sur un objet unique, utilisez la procédure Amazon RDS rdsadmin.rdsadmin_util.revoke_sys_object
. La procédure révoque uniquement les privilèges qui ont déjà été accordés au compte principal par le biais d'un rôle ou d'une attribution directe.
La procédure revoke_sys_object
possède les paramètres suivants.
Nom du paramètre | Type de données | Par défaut | Obligatoire | Description |
---|---|---|---|---|
|
varchar2 |
— |
Oui |
Nom de l'objet pour lequel des privilèges seront révoqués. L'objet peut être un répertoire, une fonction, un package, une procédure, une séquence, une table ou une vue. Les noms d'objet doivent être orthographiés correctement lorsqu'ils apparaissent dans |
|
varchar2 |
— |
Oui |
Nom de l'objet pour lequel des privilèges seront révoqués. L'objet peut être un schéma ou un rôle. |
|
varchar2 |
null |
Oui |
— |
L'exemple suivant révoque des privilèges select sur un objet nommé V_$SESSION
à un utilisateur nommé USER1
.
begin rdsadmin.rdsadmin_util.revoke_sys_object( p_obj_name => '
V_$SESSION
', p_revokee => 'USER1
', p_privilege => 'SELECT
'); end; /
Gestion des vues RDS_X$ pour les instances de base de données Oracle
Vous devrez peut-être accéder à des tables SYS.X$
fixes, qui ne sont accessibles que parSYS
. Pour créer des SYS.RDS_X$
vues sur X$
les tables éligibles, utilisez les procédures du rdsadmin.rdsadmin_util
package. Votre utilisateur principal se voit automatiquement octroyer le privilège SELECT … WITH GRANT OPTION
d'accès aux RDS_X$
vues.
Les rdsadmin.rdsadmin_util
procédures sont disponibles dans les versions de moteur de base de données suivantes :
-
21.0.0.0.ru-2023-10.rur-2023-10.r1
et versions ultérieures d'Oracle Database 21c -
19.0.0.0.ru-2023-10.rur-2023-10.r1
et versions ultérieures d'Oracle Database 19c
Important
En interne, le rdsadmin.rdsadmin_util
package crée des vues sur X$
les tables. Les X$
tables sont des objets système internes qui ne sont pas décrits dans la documentation de la base de données Oracle. Nous vous recommandons de tester des vues spécifiques dans votre base de données hors production et de ne créer des vues dans votre base de données de production que sous la supervision d'Oracle Support.
Liste des tables fixes X$ pouvant être utilisées dans les vues RDS_X$
Pour répertorier les tables X$ pouvant être utilisées dans les RDS_X$
vues, utilisez la procédure RDS. rdsadmin.rdsadmin_util.list_allowed_sys_x$_views
Cette procédure n'accepte aucun paramètre. Les déclarations suivantes répertorient tous les X$
tableaux éligibles (échantillon de sortie inclus).
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'
La liste des X$
tables éligibles peut changer au fil du temps. Pour vous assurer que votre liste de tables X$
fixes éligibles est à jour, réexécutez-la list_allowed_sys_x$_views
régulièrement.
Création de vues SYS.RDS_X$
Pour créer une RDS_X$
vue sur une X$
table éligible, utilisez la procédure rdsadmin.rdsadmin_util.create_sys_x$_view
RDS. Vous ne pouvez créer des vues que pour les tables répertoriées dans la sortie derdsadmin.rdsadmin_util.list_allowed_sys_x$_views
. La procédure create_sys_x$_view
accepte les paramètres suivants.
Nom du paramètre | Type de données | Par défaut | Obligatoire | Description |
---|---|---|---|---|
|
varchar2 |
Null |
Oui |
Nom de |
|
Booléen |
FALSE |
Non |
Une valeur indiquant s'il faut forcer la création d'une |
L'exemple suivant crée la SYS.RDS_X$KGLOB
vue sur la tableX$KGLOB
. Le format du nom de la vue estRDS_
.X$tablename
SQL> SET SERVEROUTPUT ON SQL> EXEC rdsadmin.rdsadmin_util.create_sys_x$_view('X$KGLOB'); PL/SQL procedure successfully completed.
La requête de dictionnaire de données suivante répertorie la vue SYS.RDS_X$KGLOB
et indique son état. Votre utilisateur principal est automatiquement autorisé à accéder SELECT ... WITH GRANT OPTION
à cette vue.
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
Important
X$
il n'est pas garanti que les tables resteront les mêmes avant et après un surclassement. RDS for Oracle supprime et recrée les RDS_X$
vues sur les X$
tables lors d'une mise à niveau du moteur. Il accorde ensuite le SELECT
... WITH GRANT OPTION
privilège à l'utilisateur principal. Après une mise à niveau, accordez des privilèges aux utilisateurs de la base de données selon les besoins sur les RDS_X$
vues correspondantes.
Répertorier les vues SYS.RDS_X$
Pour répertorier les RDS_X$
vues existantes, utilisez la procédure rdsadmin.rdsadmin_util.list_created_sys_x$_views
RDS. La procédure répertorie uniquement les vues créées par la procédurecreate_sys_x$_view
. L'exemple suivant répertorie les X$
tables associées aux RDS_X$
vues correspondantes (exemple de sortie inclus).
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.
Supprimer les vues RDS_X$
Pour supprimer une SYS.RDS_X$
vue, utilisez la procédure rdsadmin.rdsadmin_util.drop_sys_x$_view
RDS. Vous ne pouvez supprimer que les vues répertoriées dans la sortie derdsadmin.rdsadmin_util.list_allowed_sys_x$_views
. La procédure drop_sys_x$_view
accepte les paramètres suivants.
Nom du paramètre | Type de données | Par défaut | Obligatoire | Description |
---|---|---|---|---|
|
varchar2 |
Null |
Oui |
Nom de table |
L'exemple suivant supprime la RDS_X$KGLOB
vue créée sur le tableauX$KGLOB
.
SQL> SET SERVEROUTPUT ON SQL> EXEC rdsadmin.rdsadmin_util.drop_sys_x$_view('X$KGLOB'); PL/SQL procedure successfully completed.
L'exemple suivant montre que la vue SYS.RDS_X$KGLOB
a été supprimée (exemple de sortie inclus).
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
Attribution de privilèges à des utilisateurs non-maîtres
Vous pouvez accorder des privilèges select pour de nombreux objets dans le schéma SYS
grâce au rôle SELECT_CATALOG_ROLE
. Le rôle SELECT_CATALOG_ROLE
accorde aux utilisateurs des privilèges SELECT
sur les vues du dictionnaire de données. L'exemple suivant accorde le rôle SELECT_CATALOG_ROLE
à un utilisateur nommé user1
.
GRANT SELECT_CATALOG_ROLE TO
user1
;
Vous pouvez accorder des privilèges EXECUTE
pour de nombreux objets dans le schéma SYS
grâce au rôle EXECUTE_CATALOG_ROLE
. Le rôle EXECUTE_CATALOG_ROLE
accorde aux utilisateurs des privilèges EXECUTE
pour les packages et les procédures du dictionnaire de données. L'exemple suivant accorde le rôle EXECUTE_CATALOG_ROLE
à un utilisateur nommé user1.
GRANT EXECUTE_CATALOG_ROLE TO
user1
;
L'exemple suivant obtient les autorisations permises par les rôles SELECT_CATALOG_ROLE
et EXECUTE_CATALOG_ROLE
.
SELECT * FROM ROLE_TAB_PRIVS WHERE ROLE IN ('SELECT_CATALOG_ROLE','EXECUTE_CATALOG_ROLE') ORDER BY ROLE, TABLE_NAME ASC;
L'exemple suivant crée un utilisateur non maître nommé user1
, accorde le privilège CREATE SESSION
, puis accorde le privilège SELECT
sur une base de données nommée sh.sales.
CREATE USER
user1
IDENTIFIED BY PASSWORD; GRANT CREATE SESSION TOuser1
; GRANT SELECT ONsh.sales
TOuser1
;
Création de fonctions personnalisées pour vérifier les mots de passe
Vous pouvez créer une fonction de vérification de mot de passe personnalisée des manières suivantes :
-
Pour utiliser la logique de vérification standard et stocker votre fonction dans le schéma
SYS
, utilisez la procédurecreate_verify_function
. -
Pour utiliser la logique de vérification personnalisée, ou pour éviter de stocker votre fonction dans le schéma
SYS
, utilisez la procédurecreate_passthrough_verify_fcn
.
Procédure create_verify_function
Vous pouvez créer une fonction personnalisée pour vérifier les mots de passe en utilisant la procédure Amazon RDS rdsadmin.rdsadmin_password_verify.create_verify_function
. La create_verify_function
procédure est prise en charge pour toutes les versions de RDS pour Oracle.
La procédure create_verify_function
possède les paramètres suivants.
Nom du paramètre | Type de données | Par défaut | Obligatoire | Description |
---|---|---|---|---|
|
varchar2 |
— |
Oui |
Nom de la fonction personnalisée. Cette fonction est automatiquement créée dans le schéma SYS. Elle est affectée à des profils utilisateur. |
|
nombre |
8 |
Non |
Nombre minimal de caractères requis. |
|
nombre |
256 |
Non |
Nombre maximal de caractères autorisés. |
|
nombre |
1 |
Non |
Nombre minimal de lettres requises. |
|
nombre |
0 |
Non |
Nombre minimal de lettres majuscules requises. |
|
nombre |
0 |
Non |
Nombre minimal de lettres minuscules requises. |
|
nombre |
1 |
Non |
Nombre minimal de chiffres requis. |
|
nombre |
0 |
Non |
Nombre minimal de caractères spéciaux requis. |
|
nombre |
3 |
Non |
Nombre minimal de caractères différents requis entre l'ancien et le nouveau mot de passe. |
|
booléen |
true |
Non |
Définissez ce paramètre sur |
|
booléen |
true |
Non |
Définissez ce paramètre sur |
|
booléen |
true |
Non |
Définissez ce paramètre sur |
|
booléen |
true |
Non |
Définissez ce paramètre sur |
|
booléen |
false |
Non |
Définissez ce paramètre sur |
|
booléen |
false |
Non |
Définissez ce paramètre sur |
Vous pouvez créer plusieurs fonctions de vérification de mot de passe.
Il existe des restrictions sur le nom de votre fonction personnalisée. Votre fonction personnalisée ne peut pas avoir le même nom qu'un objet système existant. Ce nom ne peut pas comporter plus de 30 caractères. De plus, le nom doit inclure l'une des chaînes suivantes : PASSWORD
, VERIFY
, COMPLEXITY
, ENFORCE
ou STRENGTH
.
L'exemple suivant crée une fonction nommée CUSTOM_PASSWORD_FUNCTION
. La fonction exige qu'un mot de passe comporte au moins 12 caractères, 2 majuscules, 1 chiffre et 1 caractère spécial, et interdit le caractère @.
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; /
Pour voir le texte de votre fonction de vérification, interrogez DBA_SOURCE
. L'exemple suivant récupère le texte d'une fonction de mot de passe personnalisé nommée CUSTOM_PASSWORD_FUNCTION
.
COL TEXT FORMAT a150 SELECT TEXT FROM DBA_SOURCE WHERE OWNER = 'SYS' AND NAME = '
CUSTOM_PASSWORD_FUNCTION
' ORDER BY LINE;
Pour associer votre fonction de vérification à un profil utilisateur, utilisez alter
profile
. L'exemple suivant associe une fonction de vérification au profil utilisateur DEFAULT
.
ALTER PROFILE
DEFAULT
LIMIT PASSWORD_VERIFY_FUNCTIONCUSTOM_PASSWORD_FUNCTION
;
Pour savoir quels profils utilisateur sont associés à quelles fonctions de vérification, interrogez DBA_PROFILES
. L'exemple suivant obtient les profils qui sont associés à la fonction de vérification personnalisée nommée 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
L'exemple suivant récupère tous les profils et les fonctions de vérification de mot de passe associées.
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
Procédure create_passthrough_verify_fcn
La create_passthrough_verify_fcn
procédure est prise en charge pour toutes les versions de RDS pour Oracle.
Vous pouvez créer une fonction personnalisée pour vérifier les mots de passe en utilisant la procédure Amazon RDS rdsadmin.rdsadmin_password_verify.create_passthrough_verify_fcn
. La procédure create_passthrough_verify_fcn
possède les paramètres suivants.
Nom du paramètre | Type de données | Par défaut | Obligatoire | Description |
---|---|---|---|---|
|
varchar2 |
— |
Oui |
Nom de la fonction de vérification personnalisée. Il s'agit d'une fonction de wrapper qui est automatiquement créée dans le schéma SYS et qui ne contient pas de logique de vérification. Elle est affectée à des profils utilisateur. |
|
varchar2 |
— |
Oui |
Propriétaire de schéma de la fonction de vérification personnalisée. |
|
varchar2 |
— |
Oui |
Nom de la fonction personnalisée existante qui contient la logique de vérification. Votre fonction personnalisée doit renvoyer une valeur booléenne. La fonction doit renvoyer la valeur |
L'exemple suivant crée une fonction de vérification de mot de passe qui utilise la logique provenant de la fonction nommée 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; /
Pour associer la fonction de vérification à un profil utilisateur, utilisez alter
profile
. L'exemple suivant associe la fonction de vérification au profil utilisateur DEFAULT
.
ALTER PROFILE
DEFAULT
LIMIT PASSWORD_VERIFY_FUNCTIONCUSTOM_PASSWORD_FUNCTION
;
Configuration d'un serveur DNS personnalisé
Amazon RDS prend en charge l'accès réseau sortant sur vos instances de bases de données exécutant Oracle. Pour plus d'informations sur l'utilisation de l'accès réseau sortant et les prérequis, consultez Configuration de l'accès UTL_HTTP à l'aide de certificats et d'un portefeuille Oracle.
Amazon RDS Oracle permet la résolution DNS (Domain Name Service) à partir d'un serveur DNS personnalisé appartenant au client. Vous pouvez résoudre uniquement les deux noms de domaine complets à partir de votre instance de base de données Amazon RDS via votre serveur DNS personnalisé.
Une fois que votre serveur de nom DNS personnalisé est configuré, la propagation des modifications dans votre instance de base de données peut prendre jusqu'à 30 minutes. Une fois que les modifications sont propagées dans votre instance de base de données, l'ensemble du trafic réseau sortant nécessitant une recherche DNS interroge votre serveur DNS via le port 53.
Pour configurer un serveur DNS personnalisé pour votre instance de base de données Amazon RDS for Oracle, procédez comme suit :
-
À partir du jeu d'options DHCP liées à votre VPC (cloud privé virtuel), définissez l'option
domain-name-servers
sur l'adresse IP de votre serveur de noms DNS. Pour plus d'informations, veuillez consulter Jeux d'options DHCP.Note
L'option
domain-name-servers
autorise jusqu'à quatre valeurs, mais votre instance de base de données Amazon RDS utilise uniquement la première valeur. -
Assurez-vous que votre serveur DNS peut résoudre toutes les requêtes de recherche, notamment les noms DNS publics, les noms DNS privés Amazon EC2 et les noms DNS spécifiés par le client. Si le trafic réseau sortant contient une recherche DNS que votre serveur DNS ne peut pas gérer, votre serveur DNS doit avoir des fournisseurs DNS en amont appropriés, configurés.
-
Configurez votre serveur DNS pour produire des réponses UDP (User Datagram Protocol) de 512 octets ou moins.
-
Configurez votre serveur DNS pour produire des réponses TCP (Transmission Control Protocol) de 1024 octets ou moins.
-
Configurez votre serveur DNS pour permettre le trafic entrant à partir de vos instances de bases de données Amazon RDS sur le port 53. Si votre serveur DNS est dans un Amazon VPC, le VPC doit avoir un groupe de sécurité qui contient des règles entrantes permettant le trafic UDP et TCP sur le port 53. Si votre serveur DNS n'est pas dans un Amazon VPC, il doit avoir une liste blanche des pare-feux appropriés pour permettre le trafic UDP et TCP sur le port 53.
Pour plus d'informations, veuillez consulter Groupes de sécurité pour votre VPC et Ajout et suppression de règles.
-
Configurez le VPC de votre instance de base de données Amazon RDS for permettre le trafic sortant via le port 53. Votre serveur VPC doit avoir un groupe de sécurité qui contient des règles sortantes permettant le trafic UDP et TCP sur le port 53.
Pour plus d'informations, veuillez consulter Groupes de sécurité pour votre VPC et Ajout et suppression de règles.
-
Le chemin d'acheminement entre l'instance de base de données Amazon RDS et le serveur DNS doit être configuré correctement pour permettre un trafic DNS.
-
Si l'instance de base de données Amazon RDS et le serveur DNS ne sont pas dans le même VPC, une connexion d'appairage doit être configurée entre les deux. Pour plus d'informations, veuillez consulter Qu'est-ce que l'appairage de VPC ?
-
Activation et désactivation des événements de diagnostic système
Pour activer et désactiver les événements de diagnostic au niveau session, vous pouvez utiliser l'instruction Oracle SQL ALTER
SESSION SET EVENTS
. En revanche, pour activer les événements au niveau système, vous ne pouvez pas utiliser Oracle SQL. Pour cela, utilisez les procédures d'événements système du package rdsadmin.rdsadmin_util
. Les procédures d'événements système sont disponibles dans les versions suivantes du moteur :
-
Toutes les versions de Oracle Database 21c
-
19.0.0.0.ru-2020-10.rur-2020-10.r1 et versions ultérieures de Oracle Database 19c
Pour plus d'informations, consultez la version 19.0.0.0.ru-2020-10.rur-2020-10.r1 dans les notes de mise à jour d'Amazon RDS for Oracle
Important
En interne, le package rdsadmin.rdsadmin_util
active les événements à l'aide de l'instruction ALTER SYSTEM SET EVENTS
. Cette instruction ALTER
SYSTEM
ne figure pas dans la documentation Oracle Database. Certains événements de diagnostic système peuvent générer de grandes quantités d'informations de suivi, provoquer des conflits ou affecter la disponibilité de la base de données. Nous vous recommandons de tester des événements de diagnostic spécifiques dans votre base de données hors production, et de n'activer des événements dans votre base de données de production que sous la direction du support Oracle.
Liste des événements de diagnostic système autorisés
Pour dresser la liste des événements système que vous pouvez activer, utilisez la procédure Amazon RDS rdsadmin.rdsadmin_util.list_allowed_system_events
. Cette procédure n'accepte aucun paramètre.
L'exemple suivant répertorie tous les événements système que vous pouvez activer.
SET SERVEROUTPUT ON EXEC rdsadmin.rdsadmin_util.list_allowed_system_events;
L'exemple de sortie suivant répertorie les numéros des événements et leur description. Utilisez les procédures Amazon RDS set_system_event
pour activer ces événements et unset_system_event
pour les désactiver.
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:
Note
La liste des événements système autorisés peut changer au fil du temps. Pour vous assurer que vous disposez de la liste la plus récente des événements éligibles, utilisez rdsadmin.rdsadmin_util.list_allowed_system_events
.
Activation des événements de diagnostic système
Pour activer un événement système, utilisez la procédure Amazon RDS rdsadmin.rdsadmin_util.set_system_event
. Vous ne pouvez activer que les événements répertoriés dans la sortie de rdsadmin.rdsadmin_util.list_allowed_system_events
. La procédure set_system_event
accepte les paramètres suivants.
Nom du paramètre | Type de données | Par défaut | Obligatoire | Description |
---|---|---|---|---|
|
nombre |
— |
Oui |
Numéro de l'événement système. La valeur doit correspondre à l'un des numéros d'événement signalés par |
|
nombre |
— |
Oui |
Niveau de l'événement. Pour obtenir les descriptions des différentes valeurs de niveau, consultez la documentation Oracle Database ou contactez le support Oracle. |
La procédure set_system_event
permet de créer et d'exécuter les instructions ALTER SYSTEM SET EVENTS
requises selon les principes suivants :
-
Le type d'événement (
context
ouerrorstack
) est déterminé automatiquement. -
Une instruction du formulaire
ALTER SYSTEM SET EVENTS '
active les événements de contexte. Cette notation équivaut àevent
LEVELevent_level
'ALTER SYSTEM SET EVENTS '
.event
TRACE NAME CONTEXT FOREVER, LEVELevent_level
' -
Une instruction du formulaire
ALTER SYSTEM SET EVENTS '
active les événements de pile d'erreurs. Cette notation équivaut àevent
ERRORSTACK (event_level
)'ALTER SYSTEM SET EVENTS '
.event
TRACE NAME ERRORSTACK LEVELevent_level
'
L'exemple suivant active l'événement 942 au niveau 3, et l'événement 10442 au niveau 10. Un exemple de sortie est inclus.
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.
Liste des événements de diagnostic système activés
Pour dresser la liste des événements système activés, utilisez la procédure Amazon RDS rdsadmin.rdsadmin_util.list_set_system_events
. Cette procédure signale uniquement les événements activés au niveau système par set_system_event
.
L'exemple suivant répertorie les événements système actifs.
SET SERVEROUTPUT ON EXEC rdsadmin.rdsadmin_util.list_set_system_events;
L'exemple de sortie suivant contient la liste des événements, le type d'événement, le niveau auquel les événements sont activés et l'heure à laquelle ils ont été activés.
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.
Désactivation des événements de diagnostic système
Pour désactiver un événement système, utilisez la procédure Amazon RDS rdsadmin.rdsadmin_util.unset_system_event
. Vous ne pouvez désactiver que les événements répertoriés dans la sortie de rdsadmin.rdsadmin_util.list_allowed_system_events
. La procédure unset_system_event
accepte les paramètres suivants.
Nom du paramètre | Type de données | Par défaut | Obligatoire | Description |
---|---|---|---|---|
|
nombre |
— |
Oui |
Numéro de l'événement système. La valeur doit correspondre à l'un des numéros d'événement signalés par |
L'exemple suivant désactive les événements 942 et 10442. Un exemple de sortie est inclus.
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.