Azure SQLデータベースに接続する:包括的なガイド

Azure SQLデータベースは、開発者や管理者がSQLサーバーのインストールやフェールオーバークラスタの設定など、煩雑なタスクを行う必要がないように構築された管理されたSQLデータベースサービスです。

Microsoft Azureは、データベースティアのセットアップの手間を省いてくれるので、残りの作業は接続するだけです。この記事では、Azure SQLデータベースに接続するためのいくつかの異なる方法を紹介します。

前提条件

Azure SQLデータベースに接続するためには、事前にいくつかの前提条件を満たす必要があります。

  1. Azureアカウントまたはそのアクセス権
  2. Azure SQLデータベース(自分自身のものを使用することもできますが、私はサンプルを使用します。
  3. A Windows 10, Mac OS, or Linux laptop or desktop with PowerShell, Visual Studio Code and SQL Server Management Studio installed. The screenshots are all from Windows 10.

接続方法は数十種類ありますが、残念ながらすべてを説明することはできません。しかし、この記事では以下の方法をカバーします:

  • Azureポータル
  • SQL Server Management Studio
  • Visual Studio Code
  • PowerShell

Azure SQLデータベースの設定

開始する前に、利用可能なデータベースがあるかどうか、およびそれに接続できるかどうかを確認する必要があります。 クイックスタートドキュメントの手順に従って、ata-demoというサンプルデータベースをセットアップしました。このデータベースには、SQL管理者(sa)ユーザーAtaAdminとパスワードAdmin123があります。

使用しているパスワードは最も安全ではありませんが、デモ用にはこれで十分です。Equifaxのために、QAまたは本番環境でこれをセットアップする際には、パスワードのベストプラクティスを使用してください。

次に、デバイスがデータベースに接続できることを確認するために、Azureポータルにログインする必要があります。既存のAzure仮想ネットワークにこれを接続するか、データベースにアクセスできるIP範囲を定義することができます。以下のデモでは後者が行われています。接続したいSQLデータベースのリソースページに移動し、「サーバーファイアウォールの設定」というオプションを探してください。

Setting an Azure SQL Server firewall rule

ここでは、IP範囲を選択するオプションがあります。また、このページにはデバイスのIPアドレスも表示されます。デモではこのIPアドレスを使用しますが、実際の場合はアプリケーション層のサブネット範囲または仮想ネットワークになります。これが完了したら、次のデモに進む準備が整いました!

AzureポータルでAzure SQLデータベースに接続する

Azureポータルにすでにいるので、最初のデモはここで行えます。

左側のナビゲーションメニューを使用して、概要ページに戻り、クエリエディタを探してください。そこに到着すると、MicrosoftアカウントまたはSQL認証情報でログインするように求められます。先に設定したSAアカウントを使用してログインしてください(AtaAdmin:Admin123)。

ログインすると、クエリエディタの左側にテーブル、ビュー、ストアドプロシージャが表示されます。この時点では、このUIには右クリック機能がないため、データベースとのやり取りはクエリエディタを通じてのみ可能です。サンプルデータベースを使用している場合は、以下のサンプルクエリを使用できます。

SELECT pc.Name as CategoryName, p.name as ProductName
FROM [SalesLT].[ProductCategory] pc
JOIN [SalesLT].[Product] p
ON pc.productcategoryid = p.productcategoryid;
Querying the Azure SQL server database

ファイアウォールルールが設定されていることがわかったので、他のプラットフォームから試してみることができます。

SQL Server Management Studio(SSMS)を使用してAzure SQLデータベースに接続する

SQLデータベースサーバーを管理するための最も堅牢なツールは、間違いなくSSMSです。時間をかけてテストされ、戦闘で鍛えられたこのツールは、SQL Serverデータベース管理者の選択ツールとして10年以上にわたって使用されてきました。

SSMSは、Azure SQLデータベースとも完全に互換性があります。インストールしていない場合は、Microsoftから最新バージョンをダウンロードするか、パッケージマネージャーを使用してインストールしてください。

SQLデータベースのリソースページに戻り、サーバー名をコピーしてください。サーバー名は、<データベース名>.database.windows.netです。

SQL Server Management Studioを開いて、SQL Server認証と先に設定したSAユーザーを使用してデータベース名に接続してください。まだファイアウォールのルールを設定していない場合、SSMSによってAzureアカウントで認証を求められます。

データベースに認証し、ファイアウォールが設定されたので、<サーバー名> –> データベースに移動し、データベース上で右クリックして新しいクエリを選択してください。そして、先ほど使用したクエリを実行して、魔法が起こるのを見てください。

Connecting to an Azure SQL Database with SSMS

Visual Studio Code(Code)でAzure SQLデータベースに接続する方法

Visual Studio CodeでAzure SQLデータベースに接続するには、Visual Studio Code用のmssql拡張機能をインストールする必要があります。インストールが完了したら、Ctrl + Shift + Pを押してダイアログボックスを開き、MS SQL: Connectと検索してください。

Using the MSSql extension in Visual Studio Code

それを選択すると、Visual Studio Codeがウィザードを実行し、接続するデータベースの情報を入力するように求められます。サーバー名、データベース名、ユーザー名、パスワードを入力するように求められます。これらをすべて入力すると、接続プロファイルに保存され、そのデータベースに対してクエリを実行するために使用できるようになります。

エディタウィンドウに実行するためのSQLクエリを入力してください。クエリを開いた状態で、Ctrl + Shift + Eを押します。クエリを実行する接続を選択するように求められます。作成した接続を選択すると、コードは画面を離れることなく、結果を別のパネルで表示します!

Connecting to mySql in Visual Studio Code

PowerShellを使用してAzure SQLデータベースに接続する

PowerShellを使用してAzure SQLデータベースに接続するには、Az PowerShellモジュールをインストールする必要があります。このモジュールはPowerShellギャラリーから入手できます。コマンドInstall-Module Azを実行して、モジュールをダウンロードしてインストールします。この時点で、モジュールのバージョンは2.5です。

このモジュールは、スクリプトを実行するマシンに一度だけインストールする必要があります。次に、Connect-AzAccountを実行してAzureに接続します。詳細については、Connect-AzAccountコマンドレットの使用方法を確認してください。

すべてが正常に動作するかを確認するために、次のコマンドを実行してデータベースを見つけることができます。Get-AzSqlServer -ResourceGroupName <リソースグループ名>。それが接続したいデータベースを返す場合、スクリプトを実行する準備ができています。

認証が完了し、データベースが表示されるようになったので、以下のスクリプトを実行することでクエリを実行できます。このコードはAzure SQLモジュールをインポートし、パラメータ(データベース、ユーザー名、資格情報、およびクエリ)を設定し、Invoke-SqlCmdを実行してトランザクションSQLクエリを開始します。

# モジュールをインポートする
Import-Module Az.Sql -Force
 
# パラメーターを設定する
$Params = @{
   'ServerInstance' = 'atademo.database.windows.net';
   'Database' = 'ata-demo';
   'Username' = 'ataadmin';
   'Password' = 'Admin123';
   'Query' = 'SELECT pc.Name as CategoryName, p.name as ProductName
FROM [SalesLT].[ProductCategory] pc
JOIN [SalesLT].[Product] p
ON pc.productcategoryid = p.productcategoryid;'
}
 
# スプラット
Invoke-Sqlcmd @Params

以下に示すように、PowerShellを使用してAzure SQLサーバーとデータベースを読み取り、その情報をクエリに渡すこともできます。 $rgName が定義されており、パスワードをセキュアな文字列として渡している場合、最初のスクリプトと2番目のスクリプトの間に機能的な違いはありません。

Import-Module Az.Sql -Force
 
$rgName = '<Resource Group Name>'
$sqlServer = Get-AzSqlServer -ResourceGroupName $rgName
$sqlDatabase = Get-AzSqlDatabase -ServerName $sqlServer.ServerName -ResourceGroupName $rgName
 
$Params = @{
   'ServerInstance' = $sqlServer.FullyQualifiedDomainName;
   'Database' = $sqlDatabase.DatabaseName[0];
   'Username' = $sqlServer.SqlAdministratorLogin;
   'Password' = ‘<Password>’;
   'Query' = 'SELECT pc.Name as CategoryName, p.name as ProductName
       FROM [SalesLT].[ProductCategory] pc
       JOIN [SalesLT].[Product] p
       ON pc.productcategoryid = p.productcategoryid;'
}
 
Invoke-Sqlcmd @Params

まとめ

Azure SQL Databaseにさまざまな方法で接続できるようになったので、従来のSQL Serverのインストールと同様に使用することができます。

さらなる読み込み

Source:
https://adamtheautomator.com/connect-to-azure-sql-database/