Partager via


Connexion à une instance de SQL Server

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 consiste à utiliser une ServerConnection variable objet pour fournir les informations de connexion. La seconde consiste à 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 ServerConnection variable objet est que les informations de connexion peuvent être réutilisées. Déclarez une variable d’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. Ensuite, transmettez la ServerConnection variable objet 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 Copy méthode pour obtenir une copie des paramètres de connexion existants.

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

Vous pouvez également déclarer la Server variable objet 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

Il n’est généralement pas nécessaire d’appeler la Connect méthode de l’objet ServerConnection . SMO établit automatiquement une connexion si nécessaire et libère la connexion au pool de connexions une fois les opérations terminées. Lorsque la Connect méthode est appelée, la connexion n’est pas libérée dans le pool. Un appel explicite à la Disconnect méthode est requis pour libérer la connexion au pool. En outre, vous pouvez demander une connexion non mise en pool en définissant la NonPooledConnection propriété de l’objet ServerConnection .

Applications multithreadées

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

Connexion à une instance de SQL Server pour RMO

Replication Management Objects (RMO) utilise une méthode légèrement différente 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 Microsoft.SqlServer.Management.Common de noms. Cette connexion au serveur est établie indépendamment d’un objet de programmation RMO. Il est ensuite transmis à 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 spécifié ServerConnection .

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

  • Toutes les informations d'authentification nécessaires pour l'établissement de la connexion et l'ouverture d'une session sur le serveur sont fournies dans l'objet ServerConnection.

  • Par défaut, les connexions sont établies à l’aide 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 ouverture de session 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 Connect méthode doit être appelée avant de passer la connexion à n’importe quel objet de programmation RMO.

Exemples

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 « How to : Create a Visual Basic SMO Project in Visual Studio .NET » ou « How to : Create a Visual C# SMO Project in Visual Studio .NET » dans la documentation en ligne de SQL Server.

Connexion à 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. Au lieu de cela, il s’appuie 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.

Connexion à 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. Au lieu de cela, il s’appuie 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.  

Connexion à 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.

Connexion à 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.  

Connexion à 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 illustre la méthode alternative de déclaration d’une ServerConnection variable objet, 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 l’ouverture de session 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  

Connexion à 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 illustre la méthode alternative de déclaration d’une ServerConnection variable objet, qui permet de réutiliser les informations de connexion.

L’exemple est le code .NET Visual C# qui montre comment se connecter au mot de passe distant et vPassword contiennent l’ouverture de session 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