Conectar-se a uma instância do SQL Server
Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do AzureAzure Synapse Analytics
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 de objeto para fornecer as informações de ServerConnection conexão. O segundo é fornecer as informações de conexão definindo explicitamente as propriedades do Server objeto. O terceiro é passar o nome da instância do SQL Server no Server construtor de objeto.
Usando um objeto ServerConnection
A vantagem de usar a ServerConnection variável de objeto é que as informações de conexão podem ser reutilizadas. 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 ServerConnection variável de objeto como um parâmetro para o construtor de Server objeto. Não é recomendável compartilhar conexões entre diferentes objetos de servidor ao mesmo tempo. Use o Copy método para obter uma cópia das configurações de conexão existentes.
Definindo propriedades de objeto Server explicitamente
Como alternativa, você pode declarar a variável de Server objeto e chamar o construtor padrão. Como está, 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 de 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 ConnectServerConnection método do objeto é desnecessário. Após a conclusão das operações, o SMO estabelece conexões automaticamente quando necessário e as retorna ao pool de conexões. Se você chamar o método, a conexão não será liberada para o Connect pool. Para conseguir isso, você precisa usar o Disconnect método explicitamente. Além disso, você pode adquirir uma conexão sem pool ajustando a NonPooledConnectionServerConnection propriedade do objeto.
Aplicativos multi-threaded
Para aplicativos multithread, um objeto separado ServerConnection deve 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 se conectar 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 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 RMO e as instâncias do 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 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 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 False e deve ser definido como uma entrada e LoginPassword senha válidas do SQL Server. As credenciais de segurança devem sempre 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ê terá que 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
A conexão com a 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 requer que os dados sejam recuperados faz com que uma conexão seja criada.
Este exemplo é o código do Visual Basic .NET 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#
A conexão com a 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 requer que os dados sejam recuperados faz com que uma conexão seja criada.
Este exemplo é o código do Visual C# .NET 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
Quando você se conecta a uma instância do SQL Server usando a Autenticação do Windows, não é necessário especificar o tipo de autenticação. A Autenticação do Windows é o padrão.
Este exemplo é o código do Visual Basic .NET 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#
Quando você se conecta a uma instância do SQL Server usando a Autenticação do Windows, não é necessário especificar o tipo de autenticação. A Autenticação do Windows é o padrão.
Este exemplo é o código do Visual C# .NET 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 ServerConnection variável de objeto, que permite que as informações de conexão sejam reutilizadas.
O exemplo é o código do Visual Basic .NET que demonstra como se conectar ao remoto e vPassword contêm a entrada e 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 ServerConnection variável de objeto, que permite que as informações de conexão sejam reutilizadas.
O exemplo é o código do Visual C# .NET que demonstra como se conectar ao remoto e vPassword contêm a entrada e 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
}
}
Confira também
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de