SQL Serverの標準的なGUI管理ツールであるSQL Server Management Studio(SSMS)は、Azure SQL Databaseへの接続や管理にも利用できる。その手順と注意点は?
対象サービス:Microsoft Azure、SQL Database
Microsoft Azureの「SQL Database」はAzureポータルから簡単に作成・管理できるデータベースサービスだ。ただ、インデックスやキャッシュ、実行プランなどを細かく制御・確認しようとすると、Azureポータルでは機能不足を感じることもある。
そんな場合は、マイクロソフトが提供しているSQL Server管理用のクライアントツールを活用するのがお勧めだ。これらのツールは最近のバージョンであればSQL Databaseもサポートしていて、SQL Serverの場合とほぼ同じUIで操作できる。
特にSQL Serverの標準的な管理ツールである「SQL Server Management Studio(SSMS)」は、GUIでSQL Serverを細かく制御するのに重宝する。もちろんSQL Databaseもサポートしていて、しかも無償で利用できる。
本稿では、このツールをSQL Databaseで活用するべく、そのダウンロードからインストール、接続までの手順と注意点を説明する。
SQL Database(正確にはAzure SQL Server)はデフォルトでAzureの外部、すなわちインターネットからのアクセスを全面的に拒否するようになっている。そのため、最初にSQL Server Management Studioを実行するPCからインターネット経由でアクセスできるように、明示的に許可しておく必要がある。
この場合のアクセス許可/拒否は、アクセス元のIPアドレスで判定される。そのため、SQL Server Management Studioからのアクセス元となる拠点に割り当てられたグローバルIPアドレスを調べて、Azureのファイアウォールに設定する必要がある。
アクセス元のIPアドレスを手っ取り早く知るには、SQL Server Management StudioをインストールしたPCでWebブラウザを開いてAzureポータルにログインし、以下の手順を実施する。すると(5)に該当のグローバルIPアドレスが表示されるので、それを指定すればよい。
以上の作業は拠点ごとに1回ずつ実施すればよい。
SQL Server Management Studioの最新版は次のページからダウンロードできる。
執筆時点で最新版はバージョン17.1だった。上記の「Japanese」というリンクをクリックすると、「SSMS-Setup-JPN.exe」というインストーラがダウンロードできる。
注意すべきは、バージョン17.xが64bit版(x64)Windows OSだけをサポートすることだ(32bit版Windows OSではインストール中にエラーが発生した)。またバージョン17.1では、正式リリース前のSQL Server 2017 CTP 2.x関連のコンポーネントも一緒にインストールされる。
こうしたことに不都合や不安がある場合は、次のページから以前のバージョン16.5.3をダウンロードして試してみるとよいだろう。
バージョン16.5.3もSQL Databaseをサポートしている。各バージョンの違いについては、次のページに記載されている。
ちなみにバージョン16.5.3と17.1は同じシステムにインストールして並存させることができるので、接続先や各種バージョンに応じて使い分けてもよいだろう。
SQL Server Management Studio 17.1をインストールできるWindows OSは次の通りだ。
このうちWindows 7/8とWindows Server 2008 R2/2012については、あらかじめ次のセキュリティパッチを適用しておくこと。
ダウンロードした「SSMS-Setup-JPN.exe」を実行すると、SQL Server Management Studioのインストーラが起動する。
使用許諾契約書とプライバシーに関する声明を確認したら、[インストール]ボタンをクリックする。特に設定するオプションはなく、自動的にインストールは進む。
途中で.NET Frameworkのインストールが求められた場合、指示に従えば自動的にインストールされる。最後にシステムの再起動を要求されたら、指示に従って再起動を実施する。
SQL Server Management Studioを起動するには、以下のように、Windowsのスタートメニューの「Microsoft SQL Server Tools 17」にある「Microsoft SQL Server Management Studio 17」をクリックして起動する。
バージョン16.5.3の場合は「Microsoft SQL Server 2016」にある「Microsoft SQL Server Management Studio」を起動する。
スタートメニューで「SQL Server」で検索すれば、簡単に見つかるだろう。
SQL Server Management Studioを起動すると、以下のように接続ダイアログが表示されるので、SQL Databaseに合わせて設定を変更してから接続する。
もし[接続]ボタンを押した後、しばらく応答がなかったり、Azure SQL Serverのファイアウォール設定の変更を促すダイアログ*1が表示されたりした場合は、前述のアクセス元のIPアドレスの指定が間違っている可能性がある。再度確認してみよう。
*1 筆者が試した限りでは、事前にファイアウォールの設定を変えずにこのダイアログで直接設定しようとしても、エラーが発生して設定に失敗してしまった。
SQL Server Management StudioはデフォルトではSQL Databaseとの通信を暗号化しないようだ。暗号化するには上記の(8)(9)のように設定を手動変更する必要がある。
サーバ名としてデフォルトの「*****.database.windows.net」以外のホスト名を指定している場合、通信を暗号化しようとして(9)をオフにするとエラーが発生する。その場合は(9)にチェックを入れてオンにしてから接続を試してみよう(ただし、サーバのなりすまし攻撃を受けやすくなるので注意)。
ちなみに接続時の認証アカウント(ID)には、上記のサーバ管理者ログインの他にAzure Active DirectoryのIDも利用できる。その方法は次のページに記載されている。
さて、正常にSQL Databaseと接続できると、次のような画面が表示されるはずだ。接続したSQL Databaseのサーバ名やデータベース名、SQL Serverとしてのバージョンなどが表示される他、その下のツリーにはテーブルやビューなどデータベース本体が隠れている。
SQL Server Management Studioは非常に多機能で、使い方も多岐にわたるため、その説明は割愛する(ヘルプなどを参照していただきたい)。SQL Databaseに関係する機能については、別のTIPSとして紹介していきたい。
SQL Databaseはユーザー間でリソースを共有するマルチテナント型のサービスなので、ユーザーに与えられる権限は限られている。そのため、saログインを用いてSQL Serverと接続した場合と比べると、できないことが割とある。またSQL ServerとSQL Databaseでは、ある設定をするためのT-SQLが全く異なる、なんてこともある。SQL Server Management Studioで接続できるからといって、あまり両者を同一視しない方がよいだろう。
■関連リンク
Copyright© Digital Advantage Corp. All Rights Reserved.