Se connecter à une instance de SQL Server

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics

La première étape de programmation d’une application SMO (SQL Server Management Objects) consiste à créer une instance de l’objet Server et à établir sa connexion à une instance de Microsoft SQL Server.

Vous pouvez créer une instance de l’objet Server et établir une connexion à l’instance de SQL Server de trois façons. La première est d'utiliser une variable objet ServerConnection pour fournir les informations de connexion. La deuxième est de fournir les informations de connexion en définissant explicitement les propriétés de l'objet Server. Le troisième consiste à passer le nom de l’instance SQL Server dans le constructeur d’objet Server .

Utilisation d’un objet ServerConnection

L'avantage de l'utilisation de la variable objet ServerConnection est que vous pouvez réutiliser les informations de connexion. Déclarez une variable objet Server, Ensuite, déclarez un objet et définissez des ServerConnection propriétés avec des informations de connexion telles que le nom de l’instance de SQL Server et le mode d’authentification. Passez ensuite la variable objet ServerConnection en tant que paramètre au constructeur d'objet Server. Il n’est pas recommandé de partager des connexions entre différents objets serveur en même temps. Utilisez la méthode Copy pour vous procurer une copie des paramètres de connexion existants.

Définition explicite des propriétés d’objet serveur

Vous pouvez également déclarer la variable objet Server et appeler le constructeur par défaut. Tel est le cas, l’objet Server tente de se connecter à l’instance par défaut de SQL Server avec tous les paramètres de connexion par défaut.

Fourniture du nom de l’instance SQL Server dans le constructeur d’objet Server

Déclarez la Server variable objet et transmettez le nom de l’instance SQL Server en tant que paramètre de chaîne dans le constructeur. L’objet Server établit une connexion avec l’instance de SQL Server avec les paramètres de connexion par défaut.

Regroupement de connexions

L’appel de la Connect méthode de l’objet ServerConnection n’est pas nécessaire. Une fois les opérations terminées, SMO établit automatiquement les connexions si nécessaire et les retourne au pool de connexions. Si vous appelez la Connect méthode, la connexion ne sera pas libérée dans le pool. Pour ce faire, vous devez utiliser la Disconnect méthode explicitement. En outre, vous pouvez acquérir une connexion non mise en pool en ajustant la NonPooledConnection propriété de l’objet ServerConnection .

Applications multithread

Pour les applications multithread, un objet ServerConnection distinct doit être utilisé dans chaque thread.

Se connecter à une instance de SQL Server pour RMO

RMO (Replication Management Objects) utilise une méthode légèrement différente de celle de SMO pour se connecter à un serveur de réplication.

Les objets de programmation RMO nécessitent qu’une connexion à une instance de SQL Server soit établie à l’aide de l’objet ServerConnection implémenté par l’espace de noms Microsoft.SqlServer.Management.Common . Cette connexion au serveur est établie indépendamment d'un objet de programmation RMO. Il est ensuite passé à l’objet RMO lors de la création de l’instance ou par affectation à la ConnectionContext propriété de l’objet. De cette manière, un objet de programmation RMO et les instances d'objet de connexion peuvent être créés et gérés séparément, et un objet de connexion peut être réutilisé avec plusieurs objets de programmation RMO. Les règles suivantes s'appliquent aux connexions à un serveur de réplication :

  • Toutes les propriétés de la connexion sont définies pour un objet ServerConnection défini.

  • Chaque connexion à une instance de SQL Server doit avoir son propre ServerConnection objet.

  • Toutes les informations d’authentification pour établir la connexion et se connecter correctement au serveur sont fournies dans l’objet ServerConnection .

  • Par défaut, les connexions sont établies au moyen de l'authentification Microsoft Windows. Pour utiliser l’authentification SQL Server, LoginSecure doit être définie sur False et LoginPassword doit être définie sur une connexion et un mot de passe SQL Server valides. Les informations d’identification de sécurité doivent toujours être stockées et gérées en toute sécurité, et fournies au moment de l’exécution dans la mesure du possible.

  • La méthode Connect doit être appelée avant de passer la connexion à n'importe quel objet de programmation RMO.

Examples

Pour utiliser un exemple de code fourni, vous devez choisir l’environnement de programmation, le modèle de programmation et le langage de programmation dans lequel créer votre application. Pour plus d’informations, consultez Créer un projet SMO Visual C# dans Visual Studio .NET.

Se connecter à l’instance locale de SQL Server à l’aide de l’authentification Windows en Visual Basic

La connexion à l’instance locale de SQL Server ne nécessite pas beaucoup de code. À la place, elle se base sur les paramètres par défaut pour la méthode d'authentification et le serveur. La première opération qui nécessite la récupération des données entraîne la création d’une connexion.

Cet exemple est du code .NET Visual Basic qui se connecte à l’instance locale de SQL Server à l’aide de l’authentification Windows.

'Connect to the local, default instance of SQL Server.
Dim srv As Server
srv = New Server
'The connection is established when a property is requested.
Console.WriteLine(srv.Information.Version)
'The connection is automatically disconnected when the Server variable goes out of scope.

Se connecter à l’instance locale de SQL Server à l’aide de l’authentification Windows dans Visual C#

La connexion à l’instance locale de SQL Server ne nécessite pas beaucoup de code. À la place, elle se base sur les paramètres par défaut pour la méthode d'authentification et le serveur. La première opération qui nécessite la récupération des données entraîne la création d’une connexion.

Cet exemple est du code .NET Visual C# qui se connecte à l’instance locale de SQL Server à l’aide de l’authentification Windows.

{
//Connect to the local, default instance of SQL Server.
Server srv;
srv = new Server();
//The connection is established when a property is requested.
Console.WriteLine(srv.Information.Version);
}
//The connection is automatically disconnected when the Server variable goes out of scope.

Se connecter à une instance distante de SQL Server à l’aide de l’authentification Windows en Visual Basic

Lorsque vous vous connectez à une instance de SQL Server à l’aide de l’authentification Windows, vous n’avez pas besoin de spécifier le type d’authentification. La méthode par défaut est l'authentification Windows.

Cet exemple est le code .NET Visual Basic qui se connecte à l’instance distante de SQL Server à l’aide de l’authentification Windows. La variable de chaîne strServer contient le nom de l’instance distante.

'Connect to a remote instance of SQL Server.
Dim srv As Server
'The strServer string variable contains the name of a remote instance of SQL Server.
srv = New Server(strServer)
'The actual connection is made when a property is retrieved.
Console.WriteLine(srv.Information.Version)
'The connection is automatically disconnected when the Server variable goes out of scope.

Se connecter à une instance distante de SQL Server à l’aide de l’authentification Windows dans Visual C#

Lorsque vous vous connectez à une instance de SQL Server à l’aide de l’authentification Windows, vous n’avez pas besoin de spécifier le type d’authentification. La méthode par défaut est l'authentification Windows.

Cet exemple est du code .NET Visual C# qui se connecte à l’instance distante de SQL Server à l’aide de l’authentification Windows. La variable de chaîne strServer contient le nom de l’instance distante.

{
//Connect to a remote instance of SQL Server.
Server srv;
//The strServer string variable contains the name of a remote instance of SQL Server.
srv = new Server(strServer);
//The actual connection is made when a property is retrieved.
Console.WriteLine(srv.Information.Version);
}
//The connection is automatically disconnected when the Server variable goes out of scope.

Se connecter à une instance de SQL Server à l’aide de l’authentification SQL Server en Visual Basic

Lorsque vous vous connectez à une instance de SQL Server à l’aide de l’authentification SQL Server, vous devez spécifier le type d’authentification. Cet exemple montre l'autre méthode avec laquelle vous pouvez déclarer une variable objet ServerConnection qui permet de réutiliser les informations de connexion.

L’exemple est le code .NET Visual Basic qui montre comment se connecter à la version distante et vPassword contenant la connexion et le mot de passe.

' compile with:
' /r:Microsoft.SqlServer.Smo.dll
' /r:Microsoft.SqlServer.ConnectionInfo.dll
' /r:Microsoft.SqlServer.Management.Sdk.Sfc.dll
  
Imports Microsoft.SqlServer.Management.Smo
Imports Microsoft.SqlServer.Management.Common
  
Public Class A
   Public Shared Sub Main()
      Dim sqlServerLogin As [String] = "user_id"
      Dim password As [String] = "pwd"
      Dim instanceName As [String] = "instance_name"
      Dim remoteSvrName As [String] = "remote_server_name"
  
      ' Connecting to an instance of SQL Server using SQL Server Authentication
      Dim srv1 As New Server()   ' connects to default instance
      srv1.ConnectionContext.LoginSecure = False   ' set to true for Windows Authentication
      srv1.ConnectionContext.Login = sqlServerLogin
      srv1.ConnectionContext.Password = password
      Console.WriteLine(srv1.Information.Version)   ' connection is established
  
      ' Connecting to a named instance of SQL Server with SQL Server Authentication using ServerConnection
      Dim srvConn As New ServerConnection()
      srvConn.ServerInstance = ".\" & instanceName   ' connects to named instance
      srvConn.LoginSecure = False   ' set to true for Windows Authentication
      srvConn.Login = sqlServerLogin
      srvConn.Password = password
      Dim srv2 As New Server(srvConn)
      Console.WriteLine(srv2.Information.Version)   ' connection is established
  
      ' For remote connection, remote server name / ServerInstance needs to be specified
      Dim srvConn2 As New ServerConnection(remoteSvrName)
      srvConn2.LoginSecure = False
      srvConn2.Login = sqlServerLogin
      srvConn2.Password = password
      Dim srv3 As New Server(srvConn2)
      Console.WriteLine(srv3.Information.Version)   ' connection is established
   End Sub
End Class

Se connecter à une instance de SQL Server à l’aide de l’authentification SQL Server dans Visual C#

Lorsque vous vous connectez à une instance de SQL Server à l’aide de l’authentification SQL Server, vous devez spécifier le type d’authentification. Cet exemple montre l'autre méthode avec laquelle vous pouvez déclarer une variable objet ServerConnection qui permet de réutiliser les informations de connexion.

L’exemple est le code .NET Visual C# qui montre comment se connecter à la version distante et vPassword contenant la connexion et le mot de passe.

// compile with:
// /r:Microsoft.SqlServer.Smo.dll
// /r:Microsoft.SqlServer.ConnectionInfo.dll
// /r:Microsoft.SqlServer.Management.Sdk.Sfc.dll
  
using System;
using Microsoft.SqlServer.Management.Smo;
using Microsoft.SqlServer.Management.Common;
  
public class A {
   public static void Main() {
      String sqlServerLogin = "user_id";
      String password = "pwd";
      String instanceName = "instance_name";
      String remoteSvrName = "remote_server_name";
  
      // Connecting to an instance of SQL Server using SQL Server Authentication
      Server srv1 = new Server();   // connects to default instance
      srv1.ConnectionContext.LoginSecure = false;   // set to true for Windows Authentication
      srv1.ConnectionContext.Login = sqlServerLogin;
      srv1.ConnectionContext.Password = password;
      Console.WriteLine(srv1.Information.Version);   // connection is established
  
      // Connecting to a named instance of SQL Server with SQL Server Authentication using ServerConnection
      ServerConnection srvConn = new ServerConnection();
      srvConn.ServerInstance = @".\" + instanceName;   // connects to named instance
      srvConn.LoginSecure = false;   // set to true for Windows Authentication
      srvConn.Login = sqlServerLogin;
      srvConn.Password = password;
      Server srv2 = new Server(srvConn);
      Console.WriteLine(srv2.Information.Version);   // connection is established
  
      // For remote connection, remote server name / ServerInstance needs to be specified
      ServerConnection srvConn2 = new ServerConnection(remoteSvrName);
      srvConn2.LoginSecure = false;
      srvConn2.Login = sqlServerLogin;
      srvConn2.Password = password;
      Server srv3 = new Server(srvConn2);
      Console.WriteLine(srv3.Information.Version);   // connection is established
   }
}

Voir aussi

Server ServerConnection