Tworzenie pojedynczej bazy danych i konfigurowanie reguły zapory na poziomie serwera przy użyciu programu PowerShell

Dotyczy:Azure SQL Database

Ten przykładowy skrypt programu Azure PowerShell tworzy pojedynczą bazę danych w usłudze Azure SQL Database i konfiguruje regułę zapory na poziomie serwera. Po pomyślnym uruchomieniu skryptu można uzyskać dostęp do bazy danych ze wszystkich usług platformy Azure i dozwolonego zakresu adresów IP.

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto platformy Azure.

Uwaga

W tym artykule użyto modułu Azure Az programu PowerShell, który jest zalecanym modułem programu PowerShell do interakcji z platformą Azure. Aby rozpocząć pracę z modułem Azure PowerShell, zobacz Instalowanie programu Azure PowerShell. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.

Używanie usługi Azure Cloud Shell

Na platforma Azure hostowane jest Azure Cloud Shell, interaktywne środowisko powłoki, z którego można korzystać w przeglądarce. Do pracy z usługami platformy Azure można używać programu Bash lub PowerShell w środowisku Cloud Shell. Aby uruchomić kod w tym artykule, możesz użyć wstępnie zainstalowanych poleceń usługi Cloud Shell bez konieczności instalowania niczego w środowisku lokalnym.

Aby uruchomić środowisko Azure Cloud Shell:

Opcja Przykład/link
Wybierz pozycję Wypróbuj w prawym górnym rogu bloku kodu. Wybranie pozycji Wypróbuj nie spowoduje automatycznego skopiowania kodu do środowiska Cloud Shell. Screenshot that shows an example of Try It for Azure Cloud Shell.
Przejdź do witryny https://shell.azure.com lub wybierz przycisk Uruchom Cloud Shell, aby otworzyć środowisko Cloud Shell w przeglądarce. Screenshot that shows how to launch Cloud Shell in a new window.
Wybierz przycisk Cloud Shell na pasku menu w prawym górnym rogu witryny Azure Portal. Screenshot that shows the Cloud Shell button in the Azure portal

Aby uruchomić kod z tego artykułu w środowisku Azure Cloud Shell:

  1. Uruchom usługę Cloud Shell.

  2. Wybierz przycisk Kopiuj w bloku kodu, aby skopiować kod.

  3. Wklej kod do sesji usługi Cloud Shell, wybierając klawisze Ctrl+Shift+V w systemach Windows i Linux lub wybierając pozycję Cmd+Shift+V w systemie macOS.

  4. Naciśnij klawisz Enter, aby uruchomić kod.

Jeśli zdecydujesz się zainstalować program PowerShell i używać go lokalnie, ten samouczek wymaga modułu Az PowerShell 1.4.0 lub nowszego. Jeśli konieczne będzie uaktualnienie, zobacz Instalowanie modułu Azure PowerShell. Jeśli używasz programu PowerShell lokalnie, musisz też uruchomić polecenie Connect-AzAccount, aby utworzyć połączenie z platformą Azure.

Przykładowy skrypt

# Connect-AzAccount
# The SubscriptionId in which to create these objects
$SubscriptionId = ''
# Set the resource group name and location for your server
$resourceGroupName = "myResourceGroup-$(Get-Random)"
$location = "westus2"
# Set an admin login and password for your server
$adminSqlLogin = "SqlAdmin"
$password = "ChangeYourAdminPassword1"
# Set server name - the logical server name has to be unique in the system
$serverName = "server-$(Get-Random)"
# The sample database name
$databaseName = "mySampleDatabase"
# The ip address range that you want to allow to access your server
$startIp = "0.0.0.0"
$endIp = "0.0.0.0"

# Set subscription 
Set-AzContext -SubscriptionId $subscriptionId 

# Create a resource group
$resourceGroup = New-AzResourceGroup -Name $resourceGroupName -Location $location

# Create a server with a system wide unique server name
$server = New-AzSqlServer -ResourceGroupName $resourceGroupName `
    -ServerName $serverName `
    -Location $location `
    -SqlAdministratorCredentials $(New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $adminSqlLogin, $(ConvertTo-SecureString -String $password -AsPlainText -Force))

# Create a server firewall rule that allows access from the specified IP range
$serverFirewallRule = New-AzSqlServerFirewallRule -ResourceGroupName $resourceGroupName `
    -ServerName $serverName `
    -FirewallRuleName "AllowedIPs" -StartIpAddress $startIp -EndIpAddress $endIp

# Create a blank database with an S0 performance level
$database = New-AzSqlDatabase  -ResourceGroupName $resourceGroupName `
    -ServerName $serverName `
    -DatabaseName $databaseName `
    -RequestedServiceObjectiveName "S0" `
    -SampleName "AdventureWorksLT"

# Clean up deployment 
# Remove-AzResourceGroup -ResourceGroupName $resourceGroupName

Czyszczenie wdrożenia

Użyj następującego polecenia, aby usunąć grupę zasobów i wszystkie skojarzone z nią zasoby.

Remove-AzResourceGroup -ResourceGroupName $resourcegroupname

Objaśnienia dla skryptu

W tym skrypcie użyto następujących poleceń. Każde polecenie w tabeli stanowi link do dokumentacji polecenia.

Polecenie Uwagi
New-AzResourceGroup Tworzy grupę zasobów, w której są przechowywane wszystkie zasoby.
New-AzSqlServer Tworzy serwer hostujący bazy danych i elastyczne pule.
New-AzSqlServerFirewallRule Tworzy regułę zapory na poziomie serwera dla serwera.
New-AzSqlDatabase Tworzy bazę danych na serwerze.
Remove-AzResourceGroup Usuwa grupę zasobów wraz ze wszystkimi zagnieżdżonymi zasobami.

Konfigurowanie tożsamości zarządzanych

Aby uzyskać więcej informacji na temat korzyści z używania tożsamości zarządzanej przypisanej przez użytkownika dla tożsamości serwera w usłudze Azure SQL Database, zobacz Tożsamość zarządzana przypisana przez użytkownika w usłudze Microsoft Entra ID dla usługi Azure SQL.

Aby skonfigurować tożsamość zarządzaną przypisaną przez system (SMI) lub tożsamość zarządzaną przypisaną przez użytkownika lub tożsamości (UMI) usługi Azure SQL Database, zobacz Pobieranie lub ustawianie tożsamości zarządzanej dla serwera logicznego lub wystąpienia zarządzanego.

Następne kroki

Aby uzyskać więcej informacji na temat programu Azure PowerShell, zobacz dokumentację programu Azure PowerShell.

Więcej przykładowych skryptów programu PowerShell dla usługi SQL Database można znaleźć w skryptach programu PowerShell dla usługi Azure SQL Database.