Oracle
 sql >> Base de données >  >> RDS >> Oracle

Connexion d'Oracle à SQL Server via une connexion sécurisée

Le pilote ODBC SQL Server vous permet de connecter Oracle sur les plates-formes Linux et UNIX à SQL Server ou SQL Azure. Si vous décidez de chiffrer la connexion réseau de vos applications clientes à SQL Server, ou si vous utilisez SQL Azure, vous devez utiliser la version TLS du pilote, qui est incluse dans la distribution du pilote ODBC SQL Server.

Si vous n'utilisez pas la version TLS du pilote ODBC SQL Server pour vous connecter à une instance SQL Server qui a été configurée pour demander une connexion chiffrée, vous obtiendrez cette erreur :

Client unable to establish connection: SSL requested but not supported

Si vous utilisez déjà le pilote ODBC Easysoft SQL Server avec Oracle :

  1. Dans la source de données SQL Server pointée par HS_FDS_CONNECT_INFO dans votre initSID.ora , apportez les modifications suivantes :
    1. Modifier le Driver de :
      Driver = Easysoft ODBC-SQL Server

      à :

      Driver = Easysoft ODBC-SQL Server SSL
    2. Ajoutez ces lignes :
      Encrypt = Yes
      TrustServerCertificate = Yes
  2. Si vous pointez vers la bibliothèque de pilotes plutôt que vers la bibliothèque du gestionnaire de pilotes dans initSID.ora , modifiez le HS_FDS_SHAREABLE_NAME valeur à :
    install_dir/easysoft/sqlserver/lib/libessqlsrv_ssl.so
  3. Redémarrez l'écouteur Oracle.

Si vous êtes un nouvel utilisateur :

  1. Installez et mettez sous licence le pilote ODBC SQL Server sur la machine sur laquelle Oracle est installé.

    Pour obtenir des instructions d'installation, consultez la documentation du pilote ODBC.

    Remarque Le gestionnaire de pilotes unixODBC doit être installé sur votre machine. La distribution Easysoft inclut une version du gestionnaire de pilotes unixODBC avec lequel le pilote ODBC Easysoft SQL Server a été testé. Le programme d'installation du pilote Easysoft vous offre la possibilité d'installer unixODBC.

  2. Créez une source de données ODBC dans /etc/odbc.ini qui se connecte à la base de données SQL Server à laquelle vous souhaitez accéder depuis Oracle®. Par exemple :
    [SQLSERVER_SAMPLE]
    Driver                 = Easysoft ODBC-SQL Server SSL
    Server                 = my_machine\SQLEXPRESS
    User                   = my_domain\my_user
    Password               = my_password
    # If the database you want to connect to is the default
    # for the SQL Server login, omit this attribute
    Database               = Northwind
    Encrypt                = Yes
    TrustServerCertificate = Yes
  3. Utilisez isql pour tester la nouvelle source de données. Par exemple :
    cd /usr/local/easysoft/unixODBC/bin
    ./isql.sh -v SQLSERVER_SAMPLE
    

    À l'invite, tapez "help" pour afficher une liste de tables. Pour quitter, appuyez sur retour dans une ligne d'invite vide.

    Si vous ne parvenez pas à vous connecter, consultez cet article pour obtenir de l'aide.

  4. Créez un fichier d'initialisation DG4ODBC. Pour cela, passez au hs/admin sous-répertoire. Par exemple :
    cd $ORACLE_HOME/product/11.2.0/xe/hs/admin
    

    Créez une copie du fichier initdg4odbc.ora . Nommez le nouveau fichier initmssql.ora .

  5. Assurez-vous que ces paramètres et valeurs sont présents dans votre fichier init :
    HS_FDS_CONNECT_INFO = var>my_mssql_odbc_dsn
    

    Remplacez my_mssql_odbc_dsn avec le nom d'une source de données de pilote ODBC SQL Server qui se connecte à l'instance SQL Server cible. Par exemple

    HS_FDS_CONNECT_INFO = "SQLSERVER_SAMPLE"
    
  6. Commentez la ligne qui active le traçage DG4ODBC. Par exemple :
    #HS_FDS_TRACE_LEVEL = <trace_level>
    
  7. Ajouter une entrée à listener.ora qui crée un SID_NAME pour DG4ODBC. Par exemple :
    SID_LIST_LISTENER =
     (SID_LIST =
       (SID_DESC=
         (SID_NAME=mssql)
         (ORACLE_HOME=$ORACLE_HOME)
         (PROGRAM=dg4odbc)
       )
     )
    
  8. Ajouter une entrée DG4ODBC à tnsnames.ora qui spécifie le SID_NAME créé à l'étape précédente. Par exemple :
    MSSQL =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = oracle_host)(PORT = 1521))
        (CONNECT_DATA =
          (SID = mssql)
        )
        (HS = OK)
      )
    

    Remplacez oracle_host avec le nom d'hôte de votre machine Oracle®.

  9. Démarrez (ou redémarrez) l'écouteur Oracle®. Par exemple :
    lsnrctl stop
    lsnrctl start
    
  10. Connectez-vous à votre base de données Oracle® dans SQL*Plus.
  11. Dans SQL*Plus, créez un lien de base de données pour l'instance SQL Server cible. Par exemple :
    CREATE PUBLIC DATABASE LINK mssqllink CONNECT TO
    "my_sqlserver_user" IDENTIFIED by "my_password" USING 'mssql';
    SELECT * from suppliers@mssqllink
    
Remarques
  • Si vous rencontrez des problèmes pour vous connecter à SQL Server à partir d'Oracle®, activez le suivi DG4ODBC et vérifiez les fichiers de suivi écrits dans hs/log annuaire. Pour activer le traçage DG4ODBC, ajoutez la ligne HS_FDS_TRACE_LEVEL = DEBUG à initmssql.ora puis démarrez/redémarrez l'écouteur Oracle®. Si le log répertoire n'existe pas, créez-le. Par exemple :
    mkdir log
    chmod +w log