Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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
}
}