Conectar uma instância do SQL Server
Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics Banco de Dados SQL no Microsoft Fabric
A primeira etapa de programação em um aplicativo SQL Server Management Objects (SMO) é 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 variável do objeto ServerConnection para fornecer as informações de conexão. A segunda é fornecer as informações de conexão definindo explicitamente as propriedades do objeto Server. A terceira é passar o nome da instância do SQL Server no construtor do Server objeto.
Usando um objeto ServerConnection
A vantagem de usar a variável do objeto ServerConnection é que as informações de conexão podem ser reutilizadas. Declare uma variável do objeto Server. 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. Passe a variável do objeto ServerConnection como parâmetro para o construtor do objeto Server. Não é recomendável compartilhar conexões entre diferentes objetos de servidor ao mesmo tempo. Use o método Copy para obter uma cópia das configurações de conexão existentes.
Definindo propriedades de objeto de servidor explicitamente
Como alternativa, você pode declarar a variável do objeto Server e chamar o construtor padrão. No estado em que se encontra, 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
Chamar o Connect método do ServerConnection objeto é desnecessário. Após a conclusão das operações, o SMO estabelece automaticamente as conexões quando necessário e as retorna ao pool de conexões. Se você chamar o Connect método, a conexão não será liberada para o pool. Para conseguir isso, você precisa usar o Disconnect método explicitamente. Além disso, você pode adquirir uma conexão não em pool ajustando a NonPooledConnection propriedade do ServerConnection objeto.
Aplicativos multi-threaded
Para aplicativos multithreaded, um objeto ServerConnection separado deveria ser usado em cada thread.
Conectar-se a uma instância do SQL Server para RMO
O RMO (Replication Management Objects) usa um método ligeiramente diferente do SMO para conexão a um servidor de replicação.
Os 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 namespace Microsoft.SqlServer.Management.Common . Essa conexão com o servidor é feita independentemente de um objeto de programação de 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:
São definidas todas as propriedades da conexão para um objeto ServerConnection especificado.
Cada conexão com uma instância do SQL Server deve ter seu próprio ServerConnection objeto.
Todas as informações de autenticação para fazer a conexão e entrar com êxito no servidor são fornecidas no ServerConnection objeto.
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 Falso e Login deve Password ser definido como uma entrada e senha válidas do SQL Server. Credenciais de segurança sempre precisam ser armazenados e manipulados de maneira segura, além de fornecidos em tempo de execução quando possível.
O método Connect precisa ser chamado antes de passar a conexão com qualquer objeto de programação de 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 Criar um projeto SMO do Visual C# no Visual Studio .NET.
Conectar-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, ela depende das configurações padrão para o servidor e o método de autenticação. A primeira operação que requer que os dados sejam recuperados faz 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.
'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.
Conectar-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, ela depende das configurações padrão para o servidor e o método de autenticação. A primeira operação que requer que os dados sejam recuperados faz 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.
Conectar-se a uma instância remota do SQL Server usando a autenticação do Windows no Visual Basic
Ao se conectar a uma instância do SQL Server usando a Autenticação do Windows, você 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. A variável de cadeia de caracteres strServer contém o nome da instância remota.
'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.
Conectar-se a uma instância remota do SQL Server usando a autenticação do Windows no Visual C#
Ao se conectar a uma instância do SQL Server usando a Autenticação do Windows, você 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. A variável de cadeia de caracteres strServer 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.
Conectar-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 variável do objeto ServerConnection, que habilita as informações de conexão a serem reutilizadas.
O exemplo é o código .NET do Visual Basic que demonstra como se conectar ao controle remoto e o vPassword contém a entrada 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
Conectar-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 variável do objeto ServerConnection, que habilita as informações de conexão a serem reutilizadas.
O exemplo é o código .NET do Visual C# que demonstra como se conectar ao controle remoto e o vPassword contém a entrada 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
}
}