Azure SQL Database の作成と構成

完了

Azure SQL データベースは、コードを使用するか、Azure portal を使用して手動で作成できます。 さらに、データベース作成を自動化された継続的インテグレーション (CI) プロセスに統合できます。 この方法は、一貫性を維持するのに役立ちます。データベースを作成するコードを書けば、毎回常にまったく同じ仕様が生成されるからです。

コードを使用して Azure SQL データベースを作成する場合、主な 4 つの手順があります。

  1. リソース グループを作成する
  2. SQL サーバーの作成
  3. ファイアウォール規則の構成
  4. データベースの作成

リソース グループを作成する

Azure 内のすべてのリソースは、リソース グループ内に作成されます。 コードを使用してリソース グループを作成する場合、ポータルでデータベースを作成する場合と同じ可視性が得られません。 自動デプロイにリソース グループの作成を含める必要がある場合は、ランダム化された名前の使用を検討してください。 この方法は、テナント内の既存のリソース グループ名との重複を防ぐのに役立ちます。

Note

$RANDOM は、0 - 32767 の範囲の整数の擬似乱数を返す Bash関数です。 これは、PowerShell の Get-Random によって返される範囲よりも狭い範囲です。 一意性を確保するために、2 つの $RANDOM の結果を乗算できます。

コードを使用してリソース グループを作成する方法の詳細については、「Azure CLI を使用した Azure リソース グループの管理」または「Azure PowerShell を使用して Azure リソース グループを管理する」を参照してください。

SQL サーバーの作成

SQL サーバーを作成するときは、サーバー名も一意である必要があり、管理者ユーザーを、強力なパスワードを使用して作成する必要があります。

この例では、Azure CLI を使用して SQL サーバーを作成しています。

serverName="svr-$randomId"
adminUser="azureadmin"
adminPassword="pw-$randomId"
az sql server create --name $serverName --resource-group $resourceGroup --location $location \
--admin-user $adminUser --admin-password $adminPassword

この例では、PowerShell を使用して SQL サーバーを作成しています。

$serverName = "svr-$randomId"
$adminUser = "azureadmin"
$adminPassword = "pw-$randomId"

$credentials = New-Object -TypeName System.Management.Automation.PSCredential `
-ArgumentList $adminUser, $(ConvertTo-SecureString -String $adminPassword -AsPlainText -Force)

$server = New-AzSqlServer -ServerName $serverName -ResourceGroupName $resourceGroup `
-Location $location -SqlAdministratorCredentials $credentials

$server

ファイアウォール規則の構成

ファイアウォール規則では、サーバーへのアクセスを許可または拒否するトラフィックを指定します。

この例では、Azure CLI を使用してファイアウォール規則を追加しています。

startIpAddress="0.0.0.0"
endIpAddress="0.0.0.0"
firewallRuleName="AllowedIPRange"

az sql server firewall-rule create --server $serverName \
--resource-group $resourceGroup \
--name $firewallRuleName --start-ip-address $startIpAddress --end-ip-address $endIpAddress

この例では、PowerShell を使用してファイアウォール規則を追加しています。

$startIpAddress = "0.0.0.0"
$endIpAddress = "0.0.0.0"
$firewallRuleName = "AllowedIPRange"

$serverFirewallRule = New-AzSqlServerFirewallRule -ServerName $serverName `
-ResourceGroupName $resourceGroup `
-FirewallRuleName $firewallRuleName -StartIpAddress $startIpAddress -EndIpAddress $endIpAddress

$serverFirewallRule

データベースの作成

これで、作成したサーバーに Azure SQL データベースを作成する準備ができました。 このコード例では、サンプル データベースである AdventureWorksLT を作成します。 空のデータベースを作成する場合は、データベース名を変更し、--sample-name パラメーターを含む行を削除します。

次のコード スニペットでは、Azure CLI を使用して AdventureWorksLT データベースを作成しています。

az sql db create --name AdventureWorksLT
\ --resource-group $resourceGroup --server $serverName
\ --sample-name AdventureWorksLT
\ --edition GeneralPurpose --compute-model serverless --family Gen5 --capacity 2

次のコード スニペットでは、PowerShell を使用して AdventureWorksLT データベースを作成しています。

New-AzSqlDatabase -DatabaseName AdventureWorksLT `
-ResourceGroupName $resourceGroup -ServerName $serverName `
-SampleName AdventureWorksLT `
-Edition GeneralPurpose -ComputeModel Serverless -ComputeGeneration Gen5 -VCore 2

このコード スニペットは、1 つの特定のサービス レベルとコンピューティング レベルの Azure SQL データベースを作成する方法を示しています。 使用可能なサービス レベルとコンピューティング レベルの詳細については、サービス レベルに関するページを参照してください。

データベースのクエリを実行する

リソース グループとサーバーが Azure に既に作成されている場合は、T-SQL を使用して Azure SQL データベースを作成できます。 T-SQL では、Azure リソースを作成する機能は提供されません。

ただし、Azure portal のクエリ エディターを使用して Azure SQL ダッシュボードに移動し、既存のデータベースに対してクエリを実行できます。

開始するには、Azure portal にサインインし、データベースに移動します。 左側のナビゲーション ウィンドウから、[クエリ エディター] を選択します。 次に、SQL 管理者の資格情報でサインインします。 サインインしたら、AdventureWorksLT データベースに対して次の T-SQL クエリを実行します。

SELECT TOP 10 C.Name AS Category, SUM(S.OrderQty * S.UnitPrice) AS SalesValue
    FROM [SalesLT].[ProductCategory] AS C
        INNER JOIN [SalesLT].[Product] AS P
            ON C.ProductCategoryID = P.ProductCategoryID
        INNER JOIN [SalesLT].[SalesOrderDetail] AS S
            ON P.ProductID = S.ProductID
    GROUP BY C.Name
    ORDER BY SalesValue DESC;

使用可能な Azure SQL Database デプロイ モデルの詳細については、「Azure SQL Database とは」を参照してください。