SQL Server のインスタンスへの接続

 

最初のプログラミングの手順に、SQL Server管理オブジェクト (SMO) アプリケーションは、のインスタンスを作成する、 Serverオブジェクトのインスタンスへの接続を確立するために、 Microsoft SQL Serverします。

インスタンスを作成することができます、 Serverオブジェクトし、のインスタンスへの接続を確立SQL Server3 とおりの方法です。 1 つ目を使用して、 ServerConnection接続情報を提供するオブジェクト変数です。 2 番目は明示的に設定する接続情報を提供する、 Serverオブジェクトのプロパティです。 3 つ目は、の名前を渡すこと、SQL Serverインスタンス、 Serverオブジェクト コンス トラクターです。

System_CAPS_ICON_note.jpg メモ

Microsoft.SqlServer.ConnectionInfo.dllにあるC:\Program Files (x86)\Microsoft SQL Server\130\SDK\Assembliesです。

ServerConnection オブジェクトを使用します。

使用する利点、 ServerConnectionオブジェクト変数が、接続情報を再利用することです。 宣言、 Serverオブジェクト変数です。 次に、宣言、 ServerConnectionオブジェクトおよびプロパティのインスタンスの名前などの接続情報を設定SQL Server、および認証モードです。 次に、渡す、 ServerConnectionオブジェクト変数をパラメーターとして、 Serverオブジェクト コンス トラクターです。 異なるサーバー オブジェクト間で同時に接続を共有することはお勧めできません。 使用して、コピー既存の接続の設定のコピーを取得します。

サーバー オブジェクトのプロパティを明示的に設定

宣言する代わりに、 Serverオブジェクト変数と既定のコンス トラクターを呼び出します。 同様に、サーバーオブジェクトの既定のインスタンスに接続しようとするSQL Server既定の接続設定にします。

サーバー オブジェクトのコンス トラクターで SQL Server インスタンス名を指定します。

宣言、 Serverオブジェクト変数を渡します、SQL Serverコンス トラクターの文字列パラメーターとインスタンス名。 サーバーオブジェクトのインスタンスとの接続を確立するSQL Server既定の接続設定を使用します。

通常必要はありませんを呼び出して、接続のメソッド、 ServerConnectionオブジェクトです。 SMO は、必要な場合には自動的に接続を確立し、実行中の操作が完了した後で接続プールに接続を解放します。 ときに、接続メソッドが呼び出されると、接続がプールに解放されません。 明示的に呼び出す、切断プールへの接続を解放するメソッドが必要です。 さらに、設定して、プールされていない接続を要求することができます、 NonPooledConnectionのプロパティ、 ServerConnectionオブジェクトです。

マルチ スレッド アプリケーションの場合は、個別のServerConnectionオブジェクトは、各スレッドで使用する必要があります。

レプリケーション管理オブジェクト (RMO) では、レプリケーション サーバーへの接続には、SMO とは少し異なる方法を使用します。

RMO プログラミング オブジェクトを必要とするのインスタンスへの接続をSQL Serverを使用した、 ServerConnectionオブジェクトによって実装される、 Microsoft.SqlServer.Management.Common名前空間。 サーバーへのこの接続は、RMO プログラミング オブジェクトからは独立して行われます。 インスタンスの作成時、または代入することは、RMO オブジェクトに渡されることが、 ConnectionContextオブジェクトのプロパティです。 この方法では、RMO プログラミング オブジェクトおよび接続オブジェクト インスタンスを別々に作成および管理することが可能となり、単一の接続オブジェクトを複数の RMO プログラミング オブジェクトと共に再利用することができます。 レプリケーション サーバーへの接続には、次の規則が適用されます。

  • 接続のすべてのプロパティが定義されている、指定されたServerConnectionオブジェクトです。

  • インスタンスに接続するたびSQL Server必要独自ServerConnectionオブジェクトです。

  • 指定されている接続を確立し、サーバーに正常にログオンしたすべての認証情報、 ServerConnectionオブジェクトです。

  • 既定では、接続は Microsoft Windows 認証を使用して作成します。 使用するSQL Server認証では、 LoginSecureを False に設定する必要があり、ログインパスワードを有効に設定する必要がありますSQL Serverログオンとパスワード。 セキュリティの資格情報は、常に安全に格納および処理し、いつでも可能であれば実行時に提供する必要があります。

  • 接続RMO プログラミング オブジェクトへの接続を渡す前にメソッドを呼び出す必要があります。

提供されているコード例を使用するには、アプリケーションを作成するプログラミング環境、プログラミング テンプレート、およびプログラミング言語を選択する必要があります。 詳細については、次を参照してください。 Visual Studio .NET で Visual Basic SMO プロジェクトを作成またはVisual Studio .NET で Visual c# SMO プロジェクトを作成するです。

SQL Server のローカル インスタンスへの接続に必要なコードは多くありません。 ただし、認証方法とサーバーの既定の設定によってコードが異なります。 接続は、データの取得を必要とする操作が初めて発生する際に作成します。

この例は、Windows 認証を使用して SQL Server のローカル インスタンスに接続する Visual Basic .NET コードです。

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

SQL Server のローカル インスタンスへの接続に必要なコードは多くありません。 ただし、認証方法とサーバーの既定の設定によってコードが異なります。 接続は、データの取得を必要とする操作が初めて発生する際に作成します。

この例は、Windows 認証を使用して SQL Server のローカル インスタンスに接続する Visual C# .NET コードです。

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

Windows 認証を使用して SQL Server のインスタンスに接続する場合、認証の種類を指定する必要はありません。 既定は Windows 認証です。

この例はVisual Basicのリモート インスタンスに接続する .NET コードSQL ServerWindows 認証を使用しています。 文字列変数strServerリモート インスタンスの名前が含まれています。

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

Windows 認証を使用して SQL Server のインスタンスに接続する場合、認証の種類を指定する必要はありません。 既定は Windows 認証です。

この例は、Windows 認証を使用して SQL Server のリモート インスタンスに接続する Visual C# .NET コードです。 文字列変数strServerリモート インスタンスの名前が含まれています。

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

SQL Server 認証を使用して SQL Server のインスタンスに接続する場合、認証の種類を指定する必要があります。 次の例で宣言する方法、 ServerConnectionオブジェクト変数は、再利用する接続情報を有効にします。

例は、 Visual Basic .NET コードであり、リモート インスタンスに接続する方法を示しますとvPasswordはログインとパスワードが含まれています。

' 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  

SQL Server 認証を使用して SQL Server のインスタンスに接続する場合、認証の種類を指定する必要があります。 次の例で宣言する方法、 ServerConnectionオブジェクト変数は、再利用する接続情報を有効にします。

例は、リモート インスタンスに接続する方法を示す Visual c# .NET コードとvPasswordはログインとパスワードが含まれています。

// 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  
   }  
}  

サーバー
ServerConnection

コミュニティの追加

追加
表示: