Compartir a través de


Conectarse a una instancia de SQL Server

El primer paso de programación de una aplicación objetos de administración de SQL Server (SMO) consiste en crear una instancia del Server objeto y establecer su conexión a una instancia de Microsoft SQL Server.

Puede crear una instancia del Server objeto y establecer una conexión con la instancia de SQL Server de tres maneras. La primera consiste en usar una ServerConnection variable de objeto para proporcionar la información de conexión. El segundo consiste en proporcionar la información de conexión estableciendo explícitamente las propiedades del Server objeto. La tercera consiste en pasar el nombre de la instancia de SQL Server en el constructor de Server objetos.

Uso de un objeto ServerConnection

La ventaja de usar la ServerConnection variable de objeto es que se puede reutilizar la información de conexión. Declare una Server variable de objeto. A continuación, declare un ServerConnection objeto y establezca propiedades con información de conexión como el nombre de la instancia de SQL Server y el modo de autenticación. A continuación, pase la ServerConnection variable de objeto como parámetro al constructor de Server objetos. No se recomienda compartir conexiones entre distintos objetos de servidor al mismo tiempo. Use el Copy método para obtener una copia de la configuración de conexión existente.

Establecer explícitamente las propiedades del objeto Server

Como alternativa, puede declarar la Server variable de objeto y llamar al constructor predeterminado. Tal como está, el Server objeto intenta conectarse a la instancia predeterminada de SQL Server con toda la configuración de conexión predeterminada.

Proporcionar el nombre de instancia de SQL Server en el constructor de objetos Server

Declare la variable de Server objeto y pase el nombre de instancia de SQL Server como parámetro de cadena en el constructor. El Server objeto establece una conexión con la instancia de SQL Server con la configuración de conexión predeterminada.

Agrupar conexiones

Normalmente no es necesario llamar al Connect método del ServerConnection objeto . SMO establecerá automáticamente una conexión cuando sea necesario y liberará la conexión al grupo de conexiones una vez que haya terminado de realizar operaciones. Cuando se llama al Connect método , la conexión no se libera en el grupo. Se requiere una llamada explícita al Disconnect método para liberar la conexión al grupo. Además, puede solicitar una conexión no agrupada estableciendo la NonPooledConnection propiedad del ServerConnection objeto .

Aplicaciones multiproceso

Para las aplicaciones multiproceso, se debe utilizar un objeto ServerConnection independiente en cada subproceso.

Conexión a una instancia de SQL Server para RMO

Replication Management Objects (RMO) usa un método ligeramente diferente de SMO para conectarse a un servidor de replicación.

Los objetos de programación RMO requieren que se realice una conexión a una instancia de SQL Server mediante el ServerConnection objeto implementado por el Microsoft.SqlServer.Management.Common espacio de nombres. Esta conexión al servidor se realiza independientemente de un objeto de programación RMO. A continuación, se pasa al objeto RMO durante la creación de la instancia o mediante la asignación a la ConnectionContext propiedad del objeto . De esta manera, se pueden crear y administrar los objetos de programación RMO y las instancias de objeto de conexión por separado y se puede reutilizar un objeto de conexión único con varios objetos de programación RMO. Las reglas siguientes se aplican a las conexiones a un servidor de replicación:

  • Todas las propiedades de la conexión se definen para un objeto especificado ServerConnection .

  • Cada conexión a una instancia de SQL Server debe tener su propio ServerConnection objeto.

  • Toda la información de autenticación para realizar la conexión e iniciar sesión en el servidor correctamente se proporciona en el objeto ServerConnection.

  • De forma predeterminada, las conexiones se realizan mediante la autenticación de Microsoft Windows. Para usar la autenticación de SQL Server, LoginSecure debe establecerse en False y LoginPassword debe establecerse en un inicio de sesión y contraseña válidos de SQL Server. Las credenciales de seguridad siempre deben almacenarse y administrarse de forma segura y proporcionarse en tiempo de ejecución siempre que sea posible.

  • Se Connect debe llamar al método antes de pasar la conexión a cualquier objeto de programación RMO.

Ejemplos

Para usar cualquier ejemplo de código que se proporcione, tendrá que elegir el entorno de programación, la plantilla de programación y el lenguaje de programación en el que se va a crear la aplicación. Para obtener más información, vea "How to: Create a Visual Basic SMO Project in Visual Studio .NET" o "How to: Create a Visual C# SMO Project in Visual Studio .NET" in SQL Server Books Online.

Conexión a la instancia local de SQL Server mediante la autenticación de Windows en Visual Basic

La conexión a la instancia local de SQL Server no requiere mucho código. En su lugar, se basa en la configuración predeterminada para el método de autenticación y el servidor. La primera operación que requiere que se recuperen los datos hará que se cree una conexión.

Este ejemplo es código .NET de Visual Basic que se conecta a la instancia local de SQL Server mediante la autenticación de Windows.

Conexión a la instancia local de SQL Server mediante la autenticación de Windows en Visual C#

La conexión a la instancia local de SQL Server no requiere mucho código. En su lugar, se basa en la configuración predeterminada para el método de autenticación y el servidor. La primera operación que requiere que se recuperen los datos hará que se cree una conexión.

Este ejemplo es código .NET de Visual C# que se conecta a la instancia local de SQL Server mediante la autenticación de 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.  

Conexión a una instancia remota de SQL Server mediante la autenticación de Windows en Visual Basic

Cuando se conecta a una instancia de SQL Server mediante la autenticación de Windows, no es necesario especificar el tipo de autenticación. La autenticación de Windows es el valor predeterminado.

Este ejemplo es código de .NET de Visual Basic que se conecta a la instancia remota de SQL Server mediante la autenticación de Windows. La variable de cadena strServer contiene el nombre de la instancia remota.

Conexión a una instancia remota de SQL Server mediante la autenticación de Windows en Visual C#

Cuando se conecta a una instancia de SQL Server mediante la autenticación de Windows, no es necesario especificar el tipo de autenticación. La autenticación de Windows es el valor predeterminado.

Este ejemplo es código .NET de Visual C# que se conecta a la instancia remota de SQL Server mediante la autenticación de Windows. La variable de cadena strServer contiene el nombre de la instancia remota.

{   
//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.  

Conexión a una instancia de SQL Server mediante la autenticación de SQL Server en Visual Basic

Al conectarse a una instancia de SQL Server mediante la autenticación de SQL Server, debe especificar el tipo de autenticación. En este ejemplo se muestra el método alternativo para declarar una ServerConnection variable de objeto, que permite reutilizar la información de conexión.

El ejemplo es código .NET de Visual Basic que muestra cómo conectarse al remoto y vPassword contienen el inicio de sesión y la contraseña.

' 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  

Conexión a una instancia de SQL Server mediante la autenticación de SQL Server en Visual C#

Al conectarse a una instancia de SQL Server mediante la autenticación de SQL Server, debe especificar el tipo de autenticación. En este ejemplo se muestra el método alternativo para declarar una ServerConnection variable de objeto, que permite reutilizar la información de conexión.

El ejemplo es código .NET de Visual C# que muestra cómo conectarse al remoto y vPassword contienen el inicio de sesión y la contraseña.

// 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  
   }  
}  

Véase también

Server
ServerConnection