Partager via


Création de l'URL de connexion

La forme générale d'une URL de connexion est

jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]

où :

  • jdbc:sqlserver:// (obligatoire) constitue le sous-protocole et sa constante.

  • serverName (facultatif) correspond à l'adresse du serveur auquel se connecter. Il peut s'agir d'une adresse DNS ou IP, de localhost ou de 127.0.0.1 pour l'ordinateur local. S'il n'est pas spécifié dans l'URL de connexion, le nom du serveur doit être spécifié dans la collection de propriétés.

  • instanceName (facultatif) est l'instance à connecter à serverName. Si cette valeur n'est pas spécifiée, une connexion à l'instance par défaut est établie.

  • portNumber (facultatif) est le port à connecter à serverName. La valeur par défaut est 1433. Pour l'utiliser comme valeur par défaut, vous ne devez pas spécifier le port, ni le signe « : » qui précède, dans l'URL.

    NoteRemarque :

    Pour des performances de connexion optimales, vous devez définir la valeur de portNumber lors de la connexion à une instance nommée. Cela permet d'éviter une boucle avec le serveur pour déterminer le numéro du port. Si un portNumber et un instanceName sont utilisés, le portNumber aura la priorité et l'instanceName sera ignoré.

  • property (facultatif) indique une ou plusieurs propriétés de connexion. Pour plus d'informations, consultez Définition des propriétés de connexion. Vous pouvez spécifier n'importe quelle propriété de la liste. Les propriétés ne peuvent être séparées que par des points-virgules (« ; ») et ne peuvent pas être dupliquées.

Caution noteAttention :

Pour des raisons de sécurité, il convient d'éviter de créer les URL de connexion en se basant sur des entrées utilisateur. Il est préférable de spécifier uniquement le nom du serveur et le pilote dans l'URL. Pour les valeurs de nom d'utilisateur et de mot de passe, utilisez des collections de propriétés de connexion. Pour plus d'informations sur la sécurité de vos applications JDBC, consultez Sécurisation des applications de pilote JDBC.

Exemples de connexion

Connectez-vous à la base de données par défaut sur l'ordinateur local à l'aide d'un nom d'utilisateur et d'un mot de passe :

jdbc:sqlserver://localhost;user=MyUserName;password=*****;

NoteRemarque :

Bien que l'exemple précédent utilise un nom d'utilisateur et un mot de passe dans la chaîne de connexion, si vous exécutez votre application sur un système d'exploitation Windows, vous devez utiliser une sécurité intégrée, pour mieux sécuriser. Pour plus d'informations, consultez la section Connexion avec une authentification intégrée plus loin dans cette rubrique.

Connexion à la base de données par défaut sur l'ordinateur local à l'aide d'une authentification intégrée :

jdbc:sqlserver://localhost;integratedSecurity=true;

Connexion à une base de données nommée sur un serveur distant :

jdbc:sqlserver://localhost;databaseName=AdventureWorks;integratedSecurity=true;

Connexion au port par défaut du serveur distant :

jdbc:sqlserver://localhost:1433;databaseName=AdventureWorks;integratedSecurity=true;

Connexion en spécifiant un nom d'application personnalisé :

jdbc:sqlserver://localhost;databaseName=AdventureWorks;integratedSecurity=true;applicationName=MyApp;

Instances SQL Server nommées et multiples

SQL Server 2000 et SQL Server 2005 permettent d'installer plusieurs instances de base de données par serveur. Chaque instance est identifiée par un nom spécifique. Pour établir une connexion avec une instance nommée de SQL Server, vous pouvez soit spécifier le numéro de port de l'instance nommée (recommandé), soit spécifier le nom d'instance comme propriété d'URL JDBC ou propriété datasource. Si aucune propriété de nom d'instance ou de numéro de port n'est spécifiée, une connexion à l'instance par défaut est établie. Consultez les exemples suivants :

Pour utiliser un numéro de port, procédez comme suit :

jdbc:sqlserver://localhost:1433;integratedSecurity=true;<more properties as required>;

Pour utiliser une propriété d'URL JDBC, procédez comme suit :

jdbc:sqlserver://localhost;instanceName=instance1;integratedSecurity=true;<more properties as required>;

Échappement de valeurs dans l'URL de connexion

Il se peut que vous deviez procéder à l'échappement de certaines parties des valeurs d'URL de connexion en raison de l'inclusion de caractères spéciaux tels que des espaces, des points-virgules ou des points d'interrogation. Le pilote JDBC prend en charge l'échappement de ces caractères s'ils sont placés entre accolades. Par exemple, {;} échappe un point-virgule.

Les valeurs d'échappement peuvent contenir des caractères spéciaux (« = », « ; », « [] » ou un espace) mais ne peuvent pas contenir d'accolades. Les valeurs qui doivent être échappées et qui contiennent des accolades doivent être ajoutées à une collection de propriétés.

NoteRemarque :

Un espace vide entre les accolades est un littéral qui n'est pas supprimé.

Connexion avec une authentification intégrée

Le pilote JDBC prend en charge l'utilisation d'une authentification intégrée de type 2 sur les systèmes d'exploitation Windows via la propriété de chaîne de connexion integratedSecurity. Pour utiliser l'authentification intégrée, copiez le fichier sqljdbc_auth.dll dans un répertoire sur le chemin du système Windows de l'ordinateur sur lequel le pilote JDBC est installé.

Les fichiers sqljdbc_auth.dll sont installés à l'emplacement suivant :

<répertoire d'installation>\sqljdbc_<version>\<langue>\auth\

NoteRemarque :

Si vous exécutez une machine virtuelle Java (JVM) 32 bits, utilisez le fichier sqljdbc_auth.dll dans le dossier x86, même si la version du système d'exploitation est x64. Si vous exécutez une machine virtuelle JVM 64 bits sur un processeur x64, utilisez le fichier sqljdbc_auth.dll dans le dossier x64. Si vous exécutez une machine virtuelle JVM 64 bits sur un processeur IA-64, utilisez le fichier sqljdbc_auth.dll dans le dossier IA64.

Autrement, vous pouvez définir la propriété système java.libary.path pour spécifier le répertoire de sqljdbc_auth.dll. Par exemple, si le pilote JDBC est installé dans le répertoire par défaut, vous pouvez spécifier l'emplacement du DLL à l'aide de l'argument de la machine virtuelle suivante lors du démarrage de l'application Java :

-Djava.library.path=C:\Microsoft SQL Server 2005 JDBC Driver\sqljdbc_<version>\enu\auth\x86

Connexion à l'aide d'adresses IPv6

Le pilote JDBC prend en charge l'utilisation d'adresses IPv6 avec la collection de propriétés de connexion et avec la propriété de chaîne de connexion serverName. La valeur serverName initiale, telle que jdbc :sqlserver://serverName, n'est pas prise en charge pour les adresses IPv6 figurant dans des chaînes de connexion. L'utilisation d'un nom au lieu d'une adresse IPv6 brute pour serverName fonctionne dans tous les cas dans la connexion. Les exemples suivants fournissent des informations complémentaires.

Pour utiliser la propriété serverName

jdbc:sqlserver://;serverName=3ffe:8311:eeee:f70f:0:5eae:10.203.31.9\\instance1;integratedSecurity=true;

Pour utiliser la collection de propriétés

Properties pro = new Properties();

pro.setProperty("serverName", "serverName=3ffe:8311:eeee:f70f:0:5eae:10.203.31.9\\instance1");

Connection con = DriverManager.getConnection("jdbc:sqlserver://;integratedSecurity=true;", pro);

Voir aussi

Autres ressources

Connexion à SQL Server à l'aide du pilote JDBC