Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A primeira etapa de programação em um aplicativo SMO (SQL Server Management Objects) é criar uma instância do Server objeto e estabelecer sua conexão com uma instância do Microsoft SQL Server.
Você pode criar uma instância do Server objeto e estabelecer uma conexão com a instância do SQL Server de três maneiras. A primeira é usar uma ServerConnection variável de objeto para fornecer as informações de conexão. A segunda é fornecer as informações de conexão definindo explicitamente as propriedades do Server objeto. A terceira é passar o nome da instância do SQL Server no construtor de Server objetos.
Usando um objeto ServerConnection
A vantagem de usar a ServerConnection variável de objeto é que as informações de conexão podem ser reutilizados. Declare uma variável de Server objeto. Em seguida, declare um ServerConnection objeto e defina propriedades com informações de conexão, como o nome da instância do SQL Server e o modo de autenticação. Em seguida, passe a variável de ServerConnection objeto como um parâmetro para o construtor de Server objeto. Não é recomendável compartilhar conexões entre objetos de servidor diferentes ao mesmo tempo. Use o Copy método para obter uma cópia das configurações de conexão existentes.
Configurando as propriedades do objeto Server explicitamente
Como alternativa, você pode declarar a variável de Server objeto e chamar o construtor padrão. Como é, o Server objeto tenta se conectar à instância padrão do SQL Server com todas as configurações de conexão padrão.
Fornecendo o nome da instância do SQL Server no construtor do objeto Server
Declare a variável de Server objeto e passe o nome da instância do SQL Server como um parâmetro de cadeia de caracteres no construtor. O Server objeto estabelece uma conexão com a instância do SQL Server com as configurações de conexão padrão.
Pool de conexões
Normalmente, não é necessário chamar o Connect método do ServerConnection objeto. O SMO estabelecerá automaticamente uma conexão quando necessário e liberará a conexão para o pool de conexões depois de concluir as operações. Quando o Connect método é chamado, a conexão não é liberada para o pool. Uma chamada explícita para o Disconnect método é necessária para liberar a conexão com o pool. Além disso, você pode solicitar uma conexão não em pool definindo a NonPooledConnection propriedade do ServerConnection objeto.
Aplicativos multi-threaded
Para aplicativos multithreaded, um objeto ServerConnection separado deveria ser usado em cada thread.
Conectando-se a uma instância do SQL Server para RMO
O RMO (Replication Management Objects) usa um método ligeiramente diferente do SMO para se conectar a um servidor de replicação.
Objetos de programação RMO exigem que uma conexão com uma instância do SQL Server seja feita usando o ServerConnection objeto implementado pelo Microsoft.SqlServer.Management.Common namespace. Essa conexão com o servidor é feita independentemente de um objeto de programação RMO. Em seguida, ele é passado para o objeto RMO durante a criação da instância ou por atribuição à ConnectionContext propriedade do objeto. Dessa maneira, um objeto de programação de RMO e as instâncias de objeto de conexão podem ser criados e gerenciados separadamente, e um único objeto de conexão pode ser reutilizado com vários objetos de programação de RMO. As regras a seguir se aplicam a conexões com um servidor de replicação:
Todas as propriedades da conexão são definidas para um objeto especificado ServerConnection .
Cada conexão com uma instância do SQL Server deve ter seu próprio ServerConnection objeto.
Todas as informações sobre autenticação para estabelecer com êxito a conexão e o logon no servidor são fornecidas no objeto ServerConnection.
Por padrão, as conexões são feitas usando a Autenticação do Microsoft Windows. Para usar a Autenticação do SQL Server, LoginSecure deve ser definido como False e LoginPassword deve ser definido como um logon e senha válidos do SQL Server. As credenciais de segurança sempre devem ser armazenadas e manipuladas com segurança e fornecidas em tempo de execução sempre que possível.
O Connect método deve ser chamado antes de passar a conexão para qualquer objeto de programação RMO.
Exemplos
Para usar qualquer exemplo de código fornecido, você precisará escolher o ambiente de programação, o modelo de programação e a linguagem de programação na qual criar seu aplicativo. Para obter mais informações, consulte "Como criar um projeto SMO do Visual Basic no Visual Studio .NET" ou "Como criar um projeto SMO do Visual C# no Visual Studio .NET" nos Manuais Online do SQL Server.
Conectando-se à Instância Local do SQL Server usando a Autenticação do Windows no Visual Basic
Conectar-se à instância local do SQL Server não requer muito código. Em vez disso, ele depende das configurações padrão para o método de autenticação e o servidor. A primeira operação que exige que os dados sejam recuperados fará com que uma conexão seja criada.
Este exemplo é o código .NET do Visual Basic que se conecta à instância local do SQL Server usando a Autenticação do Windows.
Conectando-se à Instância Local do SQL Server usando a Autenticação do Windows no Visual C#
Conectar-se à instância local do SQL Server não requer muito código. Em vez disso, ele depende das configurações padrão para o método de autenticação e o servidor. A primeira operação que exige que os dados sejam recuperados fará com que uma conexão seja criada.
Este exemplo é o código .NET do Visual C# que se conecta à instância local do SQL Server usando a Autenticação do 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.
Conectando-se a uma instância remota do SQL Server usando a Autenticação do Windows no Visual Basic
Quando você se conecta a uma instância do SQL Server usando a Autenticação do Windows, não precisa especificar o tipo de autenticação. A Autenticação do Windows é o padrão.
Este exemplo é o código .NET do Visual Basic que se conecta à instância remota do SQL Server usando a Autenticação do Windows. O strServer da variável de cadeia de caracteres contém o nome da instância remota.
Conectando-se a uma instância remota do SQL Server usando a Autenticação do Windows no Visual C#
Quando você se conecta a uma instância do SQL Server usando a Autenticação do Windows, não precisa especificar o tipo de autenticação. A Autenticação do Windows é o padrão.
Este exemplo é o código .NET do Visual C# que se conecta à instância remota do SQL Server usando a Autenticação do Windows. O strServer da variável de cadeia de caracteres contém o nome da instância 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.
Conectando-se a uma instância do SQL Server usando a Autenticação do SQL Server no Visual Basic
Ao se conectar a uma instância do SQL Server usando a Autenticação do SQL Server, você deve especificar o tipo de autenticação. Este exemplo demonstra o método alternativo de declarar uma ServerConnection variável de objeto, que permite que as informações de conexão sejam reutilizados.
O exemplo é o código .NET do Visual Basic que demonstra como se conectar ao remoto e o vPassword contém o logon e a senha.
' 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
Conectando-se a uma instância do SQL Server usando a autenticação do SQL Server no Visual C#
Ao se conectar a uma instância do SQL Server usando a Autenticação do SQL Server, você deve especificar o tipo de autenticação. Este exemplo demonstra o método alternativo de declarar uma ServerConnection variável de objeto, que permite que as informações de conexão sejam reutilizados.
O exemplo é o código .NET do Visual C# que demonstra como se conectar ao remoto e o vPassword contém o logon e a senha.
// 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
}
}