Azure SQL DatabaseにSQL Server Management Studio(SSMS)で接続して管理するTech TIPS

SQL Serverの標準的なGUI管理ツールであるSQL Server Management Studio(SSMS)は、Azure SQL Databaseへの接続や管理にも利用できる。その手順と注意点は?

» 2017年06月12日 05時00分 公開
[島田広道デジタルアドバンテージ]
「Tech TIPS」のインデックス

連載目次

対象サービス: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 Server Management Studioの画面 SQL Server Management Studioの画面
これはSQL Databaseに接続して、T-SQLのクエリの実行プランを調べているところ。

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) SQL Databaseで特定のIPアドレスからの接続を許可する(1/2)
  (1)Azureポータルで対象のSQL Databaseの設定ブレードを開く。
  (2)[概要]をクリックする。
  (3)[サーバ名]をメモしておく。これは後ほどSQL Server Management Studioから接続する際に指定する。
  (4)[サーバー ファイアウォールの設定]をクリックする。

SQL Databaseで特定のIPアドレスからの接続を許可する(2/2) 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の最新版は次のページからダウンロードできる。

SQL Server Management Studioのダウンロードページ 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のシステム要件

 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のインストーラが起動する。

SQL Server Management Studioのインストーラを起動したところ 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」をクリックして起動する。

WindowsのスタートメニューからSQL Server Management Studioを起動する WindowsのスタートメニューからSQL Server Management Studioを起動する

 バージョン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) 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) 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 Databaseに接続した直後のSQL Server Management Studio SQL Databaseに接続した直後のSQL Server Management Studio

 SQL Server Management Studioは非常に多機能で、使い方も多岐にわたるため、その説明は割愛する(ヘルプなどを参照していただきたい)。SQL Databaseに関係する機能については、別のTIPSとして紹介していきたい。

SQL Server Management StudioでSQL Databaseを操作しているところ SQL Server Management StudioでSQL Databaseを操作しているところ
T-SQLのクエリを実行し、その結果や実行プランを確認している。

SQL Serverとまったく同じことができるわけではない

 SQL Databaseはユーザー間でリソースを共有するマルチテナント型のサービスなので、ユーザーに与えられる権限は限られている。そのため、saログインを用いてSQL Serverと接続した場合と比べると、できないことが割とある。またSQL ServerとSQL Databaseでは、ある設定をするためのT-SQLが全く異なる、なんてこともある。SQL Server Management Studioで接続できるからといって、あまり両者を同一視しない方がよいだろう。

■関連リンク


「Tech TIPS」のインデックス

Tech TIPS

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。