SYS_CONTEXT |
Contexte système |
|---|---|
| Oracle Database SQL | Oracle 8i (version 8.1) ou supérieure |
Syntaxe
| sys_context(namespace, parameter[,length]) |
Paramètres
| Nom | Description |
|---|---|
| namespace | Ce paramètre permet d'indiquer un espace de nom Oracle déjà créé. |
| parameter | Ce paramètre permet d'indiquer un attribut valide étant utilisé par la procédure DBMS_SESSION.set_context. |
| length | Ce paramètre optionnel permet d'indiquer la longueur de la valeur, en octets, à retourner. |
Description
Cette fonction permet de demander des informations sur certains paramètres de la base de données Oracle.
Remarques
- Fonction d'accès aux informations contextuelles : La fonction SYS_CONTEXT permet d'extraire des informations sur l'environnement de la session en cours ou d'autres contextes définis, ce qui est crucial pour adapter le comportement des applications selon l'utilisateur ou la configuration.
- Disponibilité depuis Oracle 8i : Elle est disponible depuis Oracle 8i (version 8.1), époque où Oracle a renforcé la gestion des contextes et la sécurité via des mécanismes de contexte personnalisés.
- Paramètre namespace : Le paramètre namespace désigne un espace de nom Oracle, qui peut être un espace système (comme 'USERENV') ou un contexte utilisateur créé via DBMS_SESSION.set_context. Ce namespace organise les paramètres en catégories.
- Paramètre parameter : Ce paramètre permet d'indiquer l'attribut spécifique dont on souhaite connaître la valeur, par exemple 'SESSION_USER' ou 'IP_ADDRESS' dans l'espace de noms 'USERENV'. Ces paramètres varient selon le namespace.
- Paramètre length : Le paramètre optionnel length sert à limiter la taille de la chaîne retournée en octets, pratique pour éviter des retours trop longs dans certaines situations.
- Utilisation dans la sécurité et personnalisation : SYS_CONTEXT est largement utilisée pour des contrôles d'accès basés sur le contexte utilisateur, comme vérifier le rôle, le profil ou l'adresse IP avant d'autoriser certaines opérations.
- Espace de noms USERENV L'espace de noms le plus courant est 'USERENV', fournissant des informations essentielles sur la session, telles que le nom d'utilisateur, le terminal, le programme client, ou l'ID de session.
- Support des contextes personnalisés : Il est possible de créer des espaces de noms personnalisés pour entreposer des variables d'environnement spécifiques à une application, ce qui rend SYS_CONTEXT très flexible.
- Interaction avec DBMS_SESSION.set_context : La fonction est souvent utilisée conjointement avec la procédure DBMS_SESSION.set_context qui permet de définir les valeurs des paramètres dans un contexte donné.
- Utilisation en PL/SQL et SQL : SYS_CONTEXT peut être appelée aussi bien dans des requêtes SQL que dans des blocs PL/SQL, ce qui la rend utile pour la logique métier et les rapports.
- Importance dans les audits et journaux : Elle permet de récupérer des informations sur la session pour alimenter les audits, par exemple l'utilisateur connecté, la machine client, ou la date de connexion.
- Performance et impact : L'appel à SYS_CONTEXT est très performant puisqu'il s'agit d'un accès direct à des variables système ou session, sans requête lourde. Son usage fréquent dans des conditions ou expressions ne pénalise pas les performances.
Voir également
Article - Les géants de l'informatique - Oracle
Dernière mise à jour : Lundi, le 11 mai 2015