Conectando-se a uma instância do SQL Server

A primeira etapa de programação em um aplicativo do SQL Server Management Objects (SMO) é criar uma instância do objeto Server e estabelecer sua conexão com uma instância do MicrosoftSQL Server.

Você pode criar uma instância do objeto Server 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 é transmitir o nome da instância do SQL Server no construtor do objeto Server.

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. Declare um objeto ServerConnection e defina as propriedades com informações de conexão como o nome da instância do SQL Servere 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 simultaneamente. Use o método Copy para obter uma cópia das configurações de conexão existentes.

Definindo explicitamente as propriedades do objeto Server

Como alternativa, você pode declarar a variável do objeto Server e chamar o construtor padrão. Dessa maneira, o objeto Server tenta se conectar à instância padrão do SQL Server com todas as configurações de conexão padrão.

Fornecendo o nome de instância do SQL Server no construtor do objeto Server

Declare a variável do objeto Server e passe o nome da instância do SQL Server como parâmetro de cadeia de caracteres no construtor. O objeto Server 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 método Connect do objeto ServerConnection. O SMO estabelecerá automaticamente uma conexão quando for necessário e liberará a conexão com o pool de conexão após concluir as operações. Quando o método Connect é chamado, a conexão não é liberada para o pool. Uma chamada explícita do método Disconnect é necessária para liberar a conexão com o pool. Além disso, você pode solicitar uma conexão sem pool definindo a propriedade NonPooledConnection do objeto ServerConnection.

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 (objetos de gerenciamento de replicação) usa um método ligeiramente diferente do SMO para conexão a um servidor de replicação.

Os objetos de programação de RMO exigem que seja feita uma conexão com uma instância do SQL Server usando o objeto ServerConnection implementado pelo namespace Microsoft.SqlServer.Management.Common. Essa conexão com o servidor é feita independentemente de um objeto de programação de RMO. Então, ela é passada para o objeto RMO, seja durante a criação da instância, seja por atribuição à propriedade ConnectionContext 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 precisa ter seu próprio objeto ServerConnection.

  • 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 precisa ser definido como False, e Login e Password precisam ser definidos com um logon e senha válidos 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, será necessário escolher o ambiente de programação, o modelo de programação e a linguagem de programação para criar o aplicativo. Para mais informações, consulte "Como criar um projeto Visual Basic SMO no Visual Studio .NET" ou "Como criar um projeto Visual C# SMO 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

A conexão com a instância local do SQL Server não exige 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 exige a recuperação dos dados causará a criação de uma conexão.

Este exemplo é o código 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.

Conectando-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 exige 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 exige a recuperação dos dados faz com que uma conexão seja criada.

Este exemplo é o código 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.

Conectando-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 é padrão.

Esse exemplo é o código .NET 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.

Conectando-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 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.

Conectando-se a uma instância do SQL Server usando a Autenticação do SQL Server no Visual Basic

Ao conectar-se a uma instância do SQL Server usando a Autenticação do SQL Server, você deve especificar o tipo de autenticação. Esse exemplo demonstra o método alternativo de declarar uma variável do objeto ServerConnection, que habilita as informações de conexão que serão reutilizadas.

O exemplo é o código Visual Basic .NET que demonstra como se conectar à instância remota e vPassword contém o logon e a senha.

'Declare a ServerConnection object variable to specify SQL authentication, login and password.
Dim conn As New ServerConnection
conn.LoginSecure = False
conn.Login = vlogin
conn.Password = vpassword
'Connect to the local, default instance of SQL Server.
Dim srv As Server
srv = New Server(conn)
'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 C#

Ao conectar-se 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 Visual C# .NET que demonstra como se conectar à instância remota e vPassword contém o logon e a senha.

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

Consulte também

Referência