Azure SQL DatabaseにSQL Server Management Studio(SSMS)で接続して管理する:Tech TIPS
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側でSQL Server Management Studioからの接続を許可する
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アドレスが表示されるので、それを指定すればよい。
![SQL Databaseで特定のIPアドレスからの接続を許可する(1/2)](https://image.itmedia.co.jp/ait/articles/1706/12/wi-scr02.png)
SQL Databaseで特定のIPアドレスからの接続を許可する(1/2)
(1)Azureポータルで対象のSQL Databaseの設定ブレードを開く。
(2)[概要]をクリックする。
(3)[サーバ名]をメモしておく。これは後ほどSQL Server Management Studioから接続する際に指定する。
(4)[サーバー ファイアウォールの設定]をクリックする。
![SQL Databaseで特定のIPアドレスからの接続を許可する(2/2)](https://image.itmedia.co.jp/ait/articles/1706/12/wi-scr03.png)
SQL Databaseで特定のIPアドレスからの接続を許可する(2/2)
対象のSQL Databaseをホストしているサーバのファイアウォール設定ブレードが表示されたところ。
(5)Azureのシステムから見て、このWebブラウザを実行中のクライアントPCに割り当てられている(ように見える)グローバルIPアドレス。このPCにSQL Server Management Studioをインストールするなら、このIPアドレスを(6)に設定すればよい。
(6)SQL Server Management Studioが存在する拠点に割り当てられているグローバルIPアドレスの範囲を指定する。単一のIPアドレスの場合は、「開始 IP」「終了 IP」に同じIPアドレスを記入する。
(7)[保存]をクリックすると、実際に設定が反映される。
以上の作業は拠点ごとに1回ずつ実施すればよい。
SQL Server Management Studioをダウンロードする
SQL Server Management Studioの最新版は次のページからダウンロードできる。
- Download SQL Server Management Studio (SSMS)[英語](マイクロソフト)
執筆時点で最新版はバージョン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をダウンロードして試してみるとよいだろう。
- Previous SQL Server Management Studio Releases[英語](マイクロソフト)
バージョン16.5.3もSQL Databaseをサポートしている。各バージョンの違いについては、次のページに記載されている。
- SQL Server Management Studio - Changelog (SSMS)[英語](マイクロソフト)
ちなみにバージョン16.5.3と17.1は同じシステムにインストールして並存させることができるので、接続先や各種バージョンに応じて使い分けてもよいだろう。
SQL Server Management Studioのシステム要件
SQL Server Management Studio 17.1をインストールできるWindows OSは次の通りだ。
- Windows 7/Windows 8/Windows 8.1/Windows 10
- Windows Server 2008 R2/2012/2012 R2/2016
※いずれも64bit版で、最新のService Pack適用が必須
このうちWindows 7/8とWindows Server 2008 R2/2012については、あらかじめ次のセキュリティパッチを適用しておくこと。
SQL Server Management Studioをインストールする
ダウンロードした「SSMS-Setup-JPN.exe」を実行すると、SQL Server Management Studioのインストーラが起動する。
使用許諾契約書とプライバシーに関する声明を確認したら、[インストール]ボタンをクリックする。特に設定するオプションはなく、自動的にインストールは進む。
途中で.NET Frameworkのインストールが求められた場合、指示に従えば自動的にインストールされる。最後にシステムの再起動を要求されたら、指示に従って再起動を実施する。
SQL Server Management Studioを起動する
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に接続する
SQL Server Management Studioを起動すると、以下のように接続ダイアログが表示されるので、SQL Databaseに合わせて設定を変更してから接続する。
![SQL Server Management StudioからSQL Databaseに接続する(1/2)](https://image.itmedia.co.jp/ait/articles/1706/12/wi-scr07.png)
SQL Server Management StudioからSQL Databaseに接続する(1/2)
これはSQL Server Management Studioを起動した直後に表示される接続ダイアログ。
(1)[データベース エンジン]を選ぶ。
(2)AzureポータルでメモしたSQL Databaseのサーバ名(FQDN)を記入する。
(3)[SQL Server 認証]を選ぶ。
(4)SQL Database(正確にはAzure SQL Server)の作成時に設定したサーバ管理者ログイン名とそのパスワードを記入する。
(5)[オプション]ボタンをクリックする。
![SQL Server Management StudioからSQL Databaseに接続する(2/2)](https://image.itmedia.co.jp/ait/articles/1706/12/wi-scr08.png)
SQL Server Management StudioからSQL Databaseに接続する(2/2)
(6)[接続プロパティ]タブを選ぶ。
(7)単一のAzure SQL Serverに複数のSQL Databaseを作成してある場合は、接続先のデータベース名を明示的に指定・選択できる。
(8)[暗号化接続]にチェックを入れてオンにする。
(9)[サーバー証明書を信頼する]からチェックを外してオフにする。
(10)[接続]ボタンを押すと、実際に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 Serverとまったく同じことができるわけではない
SQL Databaseはユーザー間でリソースを共有するマルチテナント型のサービスなので、ユーザーに与えられる権限は限られている。そのため、saログインを用いてSQL Serverと接続した場合と比べると、できないことが割とある。またSQL ServerとSQL Databaseでは、ある設定をするためのT-SQLが全く異なる、なんてこともある。SQL Server Management Studioで接続できるからといって、あまり両者を同一視しない方がよいだろう。
■関連リンク
Copyright© Digital Advantage Corp. All Rights Reserved.