vendredi 18 mai 2012

Accès controlés aux services réseaux (ACL)

Dorénavant, toutes les fonctionnalités de base de données exigeant une interaction avec les services réseaux sont maintenant contrôlées par une liste d’accès. Cette liste est appelée « Access Control List (ACL) ». Oracle a mis en place un contrôle d’accès granulaire aux services externes.

Ce mécanisme permet de contrôler les accès aux fonctionnalités « UTL_TCP », « UTL_SMTP », « UTL_MAIL », « UTL_HTTP », et « UTL_INADDR ». Si le schéma Oracle exécutant ces fonctionnalités ne possède pas les droits nécessaires, une erreur sera soulevée. Pour octroyer des privilèges, vous pouvez utiliser le package d’Oracle « DBMS_NETWORK_ACL_ADMIN ».

Oracle Fail.... Quoi ?

Connaissez-vous Oracle Fail Safe ? C’est un logiciel inclus avec une licence de base de données Oracle sous le système d’exploitation Microsoft Windows Server. C'est un logiciel de haute disponibilité qui s’intègre à Microsoft Cluster Server et qui procure une solution rapide et efficace pour configurer, vérifier et basculer les bases de données Oracle ainsi que les applications sur une plateforme Windows. Par exemple, dans le cas d'une défaillance du système, Oracle Fail Safe fonctionne avec Microsoft Cluster Server pour redémarrer la base de données Oracle et les applications sur un nœud (serveur) de cluster.

Oracle Fail Safe est optimisé pour un environnement cluster de Microsoft et il comprend deux principales composantes, un serveur et un gestionnaire :
  • Le composant serveur « Oracle Services pour MSCS » fonctionne avec le logiciel de gestion du cluster de Microsoft  et contient un ensemble de bibliothèques de ressources pour assurer le basculement automatique lors d’une interruption planifiée ou non.
  • La composante de gestion « Oracle Fail Safe Manager » fournit un outil convivial qui fonctionne avec le logiciel serveur d’Oracle Fail Safe sur un ou plusieurs clusters pour effectuer la configuration, la gestion et la surveillance.

Flash OU Fast ?

Est-ce qu’on dit « flashback recovery area » ou « fast recovery area » ? Et bien les deux sont utilisés cependant, depuis la version 11g Release 2 de la base de données, le mot « flash » a laissé sa place pour « fast ». Disons que le mot « fast » s’apprête mieux à  cette zone réservée pour le recouvrement rapide.

Statistiques non collectées automatiquement

Les statistiques sur les « fixed object » doivent être collectées manuellement. Elles ne sont pas collectées automatiquement par la tâche automatisée qu’Oracle créé pour la collecte de statistiques. La collecte s’effectue en exécutant la commande « DBMS_STATS.GATHER_FIXED_OBJECTS_STATS ».

Ces objets contiennent des informations concernant l’activité de la base de données et elles sont accédées fréquemment donc il  y a un impact direct sur le temps réponse si les statistiques sont désuètes.

Il  est recommandé de réaliser la collecte lorsqu’il y a une activité (charge) représentative sur la base de données.  D’autant plus, suite à l’exécution du script « catupgrd.sql », il est conseillé d’effectuer la collecte de statistiques sur ces objets pour optimiser le temps de traitement de la recompilation via le script « utlrp.sql ».

En ce qui concerne la fréquence de collecte, veuillez actualiser les statistiques lorsque si une mise à jour majeure est effectuée sur la base de données ou sur une application, aussi lorsque vous apportez des changements importants à la configuration de la base de données.

vendredi 28 octobre 2011

Renommer une base de données

Renommer une base de données n’est pas si compliqué. Oracle offre un utilitaire qui simplifie grandement les opérations qui sont à réalisées. Voici l’ensemble des étapes à suivre :

Note: Les étapes ci-dessous ont été réalisées sur une base de données Oracle 11gR2 EE sous Linux Red Hat 5.5 64bits. Le DB_NAME d'origine était "orcl" et, il est changé pour "lab11g".
  • Prendre une copie de sécurité de la base de données
  • Démarrer l’outil SQL*Plus en établissant une connexion avec le compte « SYS »

(oracle)$ sqlplus / as sysdba

  • Arrêter la base de données

SQL> SHUTDOWN IMMEDIATE

  • Démarrer la base de données en mode « mount »

SQL> STARTUP MOUNT

  • Extraire les paramètres de la base de données

SQL> create pfile='/tmp/pfile.ora' from spfile;

  • Éditer le fichier de paramètres (pfile)

Le fichier de paramètre contient un paramètre intitulé « DB_NAME » qui doit être réinitialisé à la nouvelle valeur. Veuillez suivre ces étapes :

SQL> create spfile from pfile='/tmp/pfile.ora';

  • Quitter l’outil SQL*Plus

SQL> exit

  • Démarrer l’utilitaire

L’utilitaire doit être démarré avec le compte « SYS » puis vous devez spécifier le nouveau nom de la base de données.

(oracle)$ nid TARGET=SYS DBNAME=[nom BD] SETNAME=YES

L’utilitaire vérifie les entêtes des fichiers de contrôle puis ensuite, il demande une confirmation de l’opération.

  • Créer le fichier de mot de passe

(oracle)$ orapwd FILE=orapw[SID] ENTRIES=30

  • Arrêter le programme d’écoute (listener)

(oracle)$ lsnrctl stop

  • Changer la variable d’environnement ORACLE_SID

Le changement doit s’effectuer dans tous les scripts utilisés ainsi que la variable d’environnement « ORACLE_SID »

(oracle)$ export ORACLE_SID=[SID]

  • Recréer le fichier système de paramètres

(oracle)$ sqlplus / as sysdba

SQL> create spfile from pfile='/tmp/pfile.ora';

SQL> exit

  • Démarrer le programme d’écoute (listener)

(oracle)$ lsnrctl start

  • Démarrer normalement la base de données

(oracle)$ sqlplus / as sysdba

SQL> startup

Suite à cette opération, assurez-vous que le fichier « listener.ora » ne fait pas de référence à l’ancien nom de la base de données. De plus, n’oubliez pas de modifier les chaînes de connexion contenues dans les fichiers de configuration, par exemple « tnsnames.ora », « dads.conf », etc.

jeudi 22 septembre 2011

Mais qu'est-ce que la différence entre "Oracle Audit Vault" et "Oracle Database Vault" ?

Voici une brève description de deux produits d'Oracle comportant le mot "Vault" qui sont fréquemment confondus.

Oracle Database Vault
Oracle Database Vault est une option de base de données qui applique des contrôles rigoureux de sécurité à l'intérieur d'une base de données Oracle afin de créer des environnements hautement sécurisés.
Oracle Database Vault limite et contrôle les accès aux données appartenant aux applications par des utilisateurs privilégiés. Il agit comme un pare-feu à l'intérieur de la base de données empêchant tous les administrateurs (DBA) d'accéder aux données et ce, malgré leurs privilèges largement permissifs.
Les règles définies dans Oracle Database Vault renforcent la sécurité en limitant qui, quand, où et comment les bases de données, les données et les applications peuvent être accédées.
De multiples règles tels que l'adresse IP, l'heure du jour et la méthode d'authentification peut être simplement utilisé pour appliquer des contrôles d'accès indépendamment du fait que la connexion est locale ou distante et ce, sans nécessiter de changement à l'application.
Oracle Database Vault assure la séparation des responsabilités en fournissant par défaut trois responsabilités distinctes : sécurité, gestion de compte, et les activités d'administration de bases de données.

Oracle Audit Vault
Oracle Audit Vault est une solution d'audit qui consolide, détecte, surveille et produit des alertes et des rapports sur les données d'audit pour l'audit de sécurité et de conformité. Oracle Audit Vault offre la possibilité de consolider les données d'audit et les évènements critiques dans un entrepôt centralisé et hautement sécurisé.
Ce produit fournit des informations précieuses sur qui a fait quoi, à quelles données, et quand, y compris les utilisateurs privilégiés qui ont un accès direct à la base de données. Comprendre qui a accédé, modifiés, mis à jour, supprimé, ou simplement vu des données sensibles est essentiel pour protéger les données.
Oracle Audit Vault fournit la capacité de détecter, surveiller, alerter, et signaler les modifications des utilisateurs privilégiés, les modifications de schéma et même les accès au niveau des données.

jeudi 4 août 2011

Méthodes de résolution de noms de bases de données

Est-ce que vous connaissez une autre méthode qu'Oracle Internet Directory (OID) et les fichiers TNSNAMES pour définir les chaînes de connexion dans un endroit partagé afin de desservir autant les postes clients que les serveurs de bases de données et d¿applications ?

Et bien oui, il en existe, voici les autres méthodes supportées par Oracle :

Microsoft Active Directory (AD)
  • Microsoft AD est un service d'annuaire LDAP pour les systèmes d'exploitation Windows. L'objectif principal d'Active Directory est de fournir des services centralisés d'identification et d'authentification à un réseau d'ordinateurs utilisant le système Windows.
Network Information Service (NIS)
  • NIS est un protocole client serveur développé par Sun permettant la centralisation d'informations sur un réseau UNIX. Son but est de distribuer les informations contenues dans des fichiers de configuration contenant par exemple les noms d'hôte (/etc/hosts), les comptes utilisateurs (/etc/passwd), etc. sur un réseau. Un serveur NIS stocke et distribue les informations administratives du réseau, qui se comporte ainsi comme un ensemble cohérent de comptes utilisateurs, groupes, machines, etc.
Distributed Computing Environment (DCE)
  • DCE est un middleware qui fournit un cadre et des outils pour développer une application client-serveur. Le cadre inclus un mécanisme remote procedure call (RPC) connu sous le nom de DCE/RPC, un répertoire, un service d'authentification et un système de fichiers distribué (DCE/DFS).

Pour plus de détails, vous pouvez consulter la documentation d'Oracle suivante : "Oracle Database Net Services Administrator's Guide". Aussi, vous pouvez consulter le blog suivant qui démontre comment migrer vers une solution LDAP de Sun :

http://laurentschneider.com/wordpress/2006/10/migration-of-tnsnamesora-to-ldap-sun-java-system-directory-server.html

Pour ceux qui s'intéresserait à Microsoft AD, sachez qu'il y a des limitations concernant son utilisation :

Limitations of Directory Naming Support with Microsoft Active Directory In addition to Oracle Internet Directory, directory naming support is also provided with Microsoft Active Directory with the following limitations:

  1. Oracle provides support for Microsoft Active Directory only on Microsoft Windows operating systems. Therefore, client computers and the database server must run on Microsoft Windows operating systems to access or create entries in Microsoft Active Directory.
  2. The following features are not supported by Microsoft Active Directory:
  • Multiple Oracle Contexts => Microsoft Active Directory can support only one Oracle Context.
  • Net service aliases => You cannot create net service aliases in Microsoft Active Directory. However, you can create net service names.
  • Automatic client discovery of directory servers for clients => You must statically configure directory server usage on the clients. The Oracle Internet Directory Configuration will not provide directory server usage for Microsoft Active Directory. You must use Oracle Net Configuration Assistant.