PowerShell による Windows Azure SQL データベースの管理
このポストは、2 月 7 日に投稿された Windows Azure SQL Database Management with PowerShell の翻訳です。
編集メモ : 今回は、Microsoft Data Platform チームのシニア テクニカル ライターを務める Karthika Raman の投稿をご紹介します。
2012 年 11 月の Windows Azure PowerShell コマンドレットのリリースで、Windows Azure SQL データベースの PowerShell コマンドレットがさらに追加され、その結果、データベース サーバーのプロビジョニング、ファイアウォール ルールの構成、およびデータベースの作成を、コマンドレットで簡単に行えるようになりました。
このブログ記事では、ご利用するにあたっての参考情報をまずはお届けし、それから Windows Azure サブスクリプションへの接続、サーバーのプロビジョニング、ファイアウォール ルールの構成、およびデータベースの作成と構成について、手順ごとのコード サンプルをご紹介します。また、タスク完了後にデータベースやサーバーを削除する方法もご紹介します。Windows Azure SQL データベース コマンドレットを使用して Windows Azure SQL データベースを管理するには、最新の Windows Azure SDK (英語) をインストールする必要があります。
拡張バージョンのスクリプトは、TechNet のコード ギャラリーでダウンロードできます (英語)。
Windows Azure PowerShell を使用されたことがないお客様は、次の手順で使用準備を行ってください。
- Windows 8、Windows 7、Windows Server 2012、Windows Server 2008 R2 のいずれかを使用しているコンピューターを用意します。
- お客様の Windows Azure サブスクリプションの管理証明書をアップロードし、クライアントから Windows Azure にアクセスできるようにします。
- Windows PowerShell 用の Windows Azure モジュールのインストール (英語): Windows Azure モジュールをインストールし、Window PowerShell の実行ポリシーを設定します。Windows PowerShell の実行ポリシーは、どの構成ファイルとスクリプトを実行するかという条件を決定するものです。コマンドレットは、Windows Azure PowerShell のコマンド シェルから実行することも、Windows PowerShell に直接 Windows Azure コマンドレットをインポートして実行することもできます。
- Windows Azure とユーザーのワークステーションとの間の接続構成 (英語): Windows Azure から PublishSettings ファイルをダウンロードおよびインポートして、管理証明書およびサブスクリプションの詳細を自動で構成します。Set-AzureSubscription コマンドレットを使用すると、手動での構成もできます。次のサンプル コードを使用して、サブスクリプションと、そのサブスクリプションへの接続時に使用する証明書を構成します。各サブスクリプションと各新規クライアント マシンでこのコードを実行します。
$thumbprint = "24189B94425ECDF8536C547730A8DDE2B6DF3E5E"
$myCert = Get-Item cert:\\CurrentUser\My\$thumbprint
$subID = "e2f275b8-2739-4593-a5e8-6d9ee1539267"
Set-AzureSubscription -SubscriptionName "msdn" -SubscriptionId $subID -Certificate $myCert
初期設定が完了すると、Windows Azure SQL データベース コマンドレットを使用して管理できるようになります。
Windows Azure SQL データベース コマンドレットの一覧を表示するには、“help sql” と入力します。
ここからは、サーバーのプロビジョニング、新規サーバーへのファイアウォール ルールの追加、および新規データベースの作成を、手順を追って説明します。また、タスク完了後にデータベースとサーバーを削除する方法についても説明します。拡張バージョンのスクリプトは、TechNet のコード ギャラリーでダウンロードできます (英語)。
1.使用するサブスクリプションの選択: Select-AzureSubscription -SubscriptionName "msdn"
Get-AzureSubscription コマンドを使用すると、既定のサブスクリプションのデータ ファイルに格納されている全サブスクリプションの一覧を表示できます。このコマンドレットの使用方法は、こちらの記事 (英語) を参照してください。
2. 最初の手順で指定したサブスクリプションに存在する全 SQL データベース サーバーの一覧を表示します。
Get-AzureSqlDatabaseServer
3. 新規 SQL データベース サーバーのプロビジョニング: New-AzureSqlDatabaseServer コマンドレットを使用して、新しいデータベース サーバーを作成します。場所、管理者のログイン ID、パスワードを指定します。
New-AzureSqlDatabaseServer -location "West US" -AdministratorLogin "mylogin" -AdministratorLoginPassword "my@Password”
注: サーバーのプロパティを更新するには Set-AzureSqlDatabaseServer (英語) コマンドレットを使用します。
4. ファイアウォール ルールの作成: データベース サーバーへの接続を許可するには、接続を許可する接続元の IP アドレスの範囲を指定するルールを作成する必要があります。New-AzureSqlDatabaseServerFirewallRule を使用して、新しいファイアウォール ルールを作成します。サーバー名および IP アドレスの範囲 (始点と終点) を指定します。
New-AzureSqlDatabaseServerFirewallRule -ServerName "sub9zmyalg" -RuleName "myrule" -StartIPAddress "111.111.111.222" -EndIPAddress "222.222.222.222"
注: サーバーのルールの一覧を表示するには Get-AzureSqlDatabaseServerFirewallRule (英語) コマンドレットを使用します。
5. SQL 認証を使用してサーバーへ接続します。これによりサーバーへの接続コンテキストが確立され、接続先のサーバーでさまざまなタスクを実行できるようになります。次の 2 つの方法があります。
- ログイン ID およびパスワードの入力要求画面 (下図) で Get-Credential コマンドレットを使用する方法。
$cred = Get-Credential
#資格情報を使用して新規データベース サーバーへの接続コンテキストを作成
New-AzureSqlDatabaseServerContext -ServerName “sub9myalg” –Credential $cred
- ログイン情報を含む資格情報オブジェクトの作成による方法
$servercredential = new-object
System.Management.Automation.PSCredential("mylogin", ("my@Password" | ConvertTo-SecureString -asPlainText -Force))
#接続コンテキストの作成
$ctx = $server | New-AzureSqlDatabaseServerContext -Credential $serverCredential
6. 新規データベースの作成: New-AzureSqlDatabase コマンドレットを使用して、新しいデータベースを作成します。データベース名のみを指定した場合、作成されたデータベースでは、名前以外のプロパティに規定値が適用されます。データベースの種類は Web edition、MaxSize は 1 GB、照合順序は SQL_Latin1_General_CP1_CI_AS となります。
New-AzureSqlDatabase $ctx –DatabaseName “mydatabase”
注: サーバー内の全データベースの一覧を表示するには Get-AzureSqlDatabase (英語) コマンドレットを使用します。
7. データベースの変更: Set-AzureSqlDatabase コマンドレットを使用して、データベースのプロパティを変更します。次の例では、前の手順で作成されたデータベースの最大サイズを変更します。最初のコマンドレットで MaxSize プロパティを変更します。さらに 2 つめのコマンドレットでプロパティを表示して、変更内容を確認します。
Set-AzureSqlDatabase $ctx –Databasename “mydatabase” –MaxSizeGB 20
Get-AzureSqlDatabase $ctx –DatabaseName “mydatabase”
8. データベースの削除: Remove-AzureSqlDatabase コマンドレットを使用して、指定したデータベースを削除します。下図に示す確認メッセージが表示されます。
Remove-AzureSqlDatabase $ctx –DatabaseName “mydatabase”
9. データベース サーバーの削除: Remove-AzureSqlDatabaseServer コマンドレットを使用して、データベース サーバーを削除します。下図に示す確認メッセージが表示されます。
Remove-AzureSqlDatabaseserver –ServerName “sub9zmyalg”
その他の情報
Windows Azure SQL データベースのコマンドレット (英語)