SQL Server PowerShell プロバイダー
Windows PowerShell 用の SQL Server プロバイダーは、ファイル システム パスと同様のパスで SQL Server オブジェクトの階層を公開します。 このパスを使用してオブジェクトの場所を指定し、SQL Server 管理オブジェクト (SMO) モデルのメソッドを使用してオブジェクトの操作を実行できます。
SQL Server PowerShell プロバイダーの利点
SQL Server プロバイダーによって実装されているパスを使用すると、SQL Server のインスタンス内のすべてのオブジェクトを簡単に対話的に確認できます。 ファイル システムのパスの操作に一般的に使用されているコマンドと同様の Windows PowerShell の別名を使用して、パスを操作できます。
SQL Server PowerShell の階層
データまたはオブジェクトのモデルを階層で表すことができる製品は、Windows PowerShell プロバイダーを使用して階層を公開できます。 階層は、Windows ファイル システムで使用されるものに似たドライブおよびパス構造を使用して公開されます。
それぞれの Windows PowerShell プロバイダーは 1 つ以上のドライブを実装します。 各ドライブは、関連するオブジェクトの階層のルート ノードです。 SQL Server プロバイダーは、SQLSERVER: ドライブを実装します。 プロバイダーは、SQLSERVER: ドライブの主要フォルダーのセットも定義します。 各フォルダーおよびそのサブフォルダーは、SQL Server 管理オブジェクト モデルを使用してアクセスできるオブジェクトのセットを表します。 これらのいずれかの主要フォルダーで始まるパスでサブフォルダーにフォーカスを設定すると、関連付けられたオブジェクト モデルのメソッドを使用して、このノードによって表されるオブジェクトの操作を実行できます。 SQL Server 2012 プロバイダーが実装する Windows PowerShell フォルダーを次の表に示します。
フォルダー |
SQL Server オブジェクト モデルの名前空間 |
オブジェクト |
---|---|---|
SQLSERVER:\SQL |
Microsoft.SqlServer.Management.Smo Microsoft.SqlServer.Management.Smo.Agent |
データベース オブジェクト (テーブル、ビュー、ストアド プロシージャなど) |
SQLSERVER:\SQLPolicy |
ポリシー ベースの管理オブジェクト (ポリシーやファセットなど) |
|
SQLSERVER:\SQLRegistration |
登録済みサーバー オブジェクト (サーバー グループや登録済みサーバーなど) |
|
SQLSERVER:\Utility |
ユーティリティ オブジェクト (データベース エンジンのマネージ インスタンスなど) |
|
SQLSERVER:\DAC |
データ層アプリケーション オブジェクト (DAC パッケージなど) と操作 (DAC の配置など) |
|
SQLSERVER:\DataCollection |
コレクション セットや構成ストアなどのデータ コレクター オブジェクト |
|
SQLSERVER:\IntegrationServices |
プロジェクト、パッケージ、環境などの Integration Services オブジェクト |
|
SQLSERVER:\SQLAS |
キューブ、集計、ディメンションなどの Analysis Services オブジェクト |
たとえば、SQLSERVER:\SQL フォルダーを使用して、SMO オブジェクト モデルでサポートされる任意のオブジェクトを表すパスを開始することができます。 SQLSERVER:\SQL パスの先頭部分は、SQLSERVER:\SQL\ComputerName\InstanceName です。 インスタンス名の後のノードは、オブジェクト コレクション (Databases、Views など) とオブジェクト名 (AdventureWorks2012 など) で切り替わります。 スキーマはオブジェクト クラスとしては表されません。 スキーマ内の最上位レベルのオブジェクト (テーブルやビューなど) のノードを指定する場合、オブジェクト名を SchemaName.ObjectName の形式で指定する必要があります。
ローカル コンピューター上のデータベース エンジンの既定のインスタンスにある AdventureWorks2012 データベースの Purchasing スキーマ内の Vendor テーブルのパスは次のようになります。
SQLSERVER:\SQL\localhost\DEFAULT\Databases\AdventureWorks2012\Tables\Purchasing.Vendor
SMO オブジェクト モデルの階層の詳細については、「SMO オブジェクト モデル ダイアグラム」を参照してください。
パスに含まれるコレクション ノードは、関連付けられたオブジェクト モデルのコレクション クラスに関連付けられます。 オブジェクト名ノードは、次の表に示すように、関連付けられたオブジェクト モデルのオブジェクト クラスに関連付けられます。
パス |
SMO クラス |
---|---|
SQLSERVER:\SQL\MyComputer\DEFAULT\Databases |
|
SQLSERVER:\SQL\MyComputer\DEFAULT\Databases\AdventureWorks2012 |
SQL Server プロバイダーのタスク
タスクの説明 |
トピック |
---|---|
パス内のノードを移動し、各ノードでそのノードのオブジェクトの一覧を取得するために Windows PowerShell コマンドレットを使用する方法について説明します。 |
|
パス内のノードによって表されているオブジェクトに対するレポート作成や操作を行うための SMO メソッドおよびプロパティを使用する方法について説明します。 また、そのノードの SMO メソッドおよびプロパティの一覧を取得する方法についても説明します。 |
|
SMO URN (Uniform Resource Name) を SQL Server プロバイダー パスに変換する方法について説明します。 |
|
SQL Server プロバイダーを使用して SQL Server 認証接続を開く方法について説明します。 既定では、プロバイダーは、Windows PowerShell セッションを実行している Windows アカウントの資格情報を使用して確立された Windows 認証接続を使用します。 |