Untuk membuat database tunggal di portal Microsoft Azure, mulai cepat ini dimulai di halaman Azure SQL.
Telusuri ke halaman opsi Pilih Penyebaran SQL.
Di bawah database SQL, biarkan Jenis sumber daya diatur ke Database tunggal dan pilih Buat.
Pada tab Dasar formulir Buat Database SQL, pada Detail proyek, pilih langganan Azure yang ingin digunakan.
Untuk grup Sumber Daya, pilih Buat baru, masukkan myResourceGroup, dan pilih OK.
Untuk Nama database, masukkan demo.
Untuk Server, pilih Buat baru. Isi formulir Server baru dengan nilai berikut:
- Nama server: Masukkan mysqlserver, dan tambahkan beberapa karakter untuk keunikan. Kami tidak dapat memberikan nama server yang tepat untuk digunakan karena nama server harus unik secara global untuk semua server di Azure, tidak hanya unik dalam langganan. Masukkan seperti mysqlserver12345, dan portal akan memberi tahu Anda apakah itu tersedia atau tidak.
- Masuk admin server: Masukkan azureuser.
- Kata sandi: Masukkan kata sandi yang memenuhi persyaratan. Masukkan lagi di kotak Konfirmasi kata sandi.
- Lokasi: Pilih lokasi dari daftar turun bawah.
- Izinkan layanan Azure mengakses server ini: Pilih opsi ini untuk mengaktifkan akses ke penyimpanan digest.
Pilih OK.
Biarkan Ingin menggunakan kumpulan elastis SQL diatur ke Tidak.
Di bawah Komputasi + penyimpanan, pilih Konfigurasi database.
Mulai cepat ini menggunakan database tanpa server, jadi pilih Tanpa server, lalu pilih Terapkan.
Pada tab Jaringan, untuk metode Konektivitas, pilih Titik akhir publik.
Untuk aturan Firewall, atur Tambahkan alamat IP klien saat ini ke Ya. Biarkan Izinkan layanan dan sumber daya Azure untuk mengakses server ini diatur ke Tidak.
Pilih Berikutnya: Keamanan di bagian bawah halaman.
Di tab Keamanan, di bagian Ledger, pilih opsi Konfigurasi ledger.
Di panel Konfigurasi ledger, di bagian Ledger, pilih kotak centang Aktifkan untuk semua tabel mendatang dalam database ini. Pengaturan ini memastikan bahwa semua tabel mendatang dalam database akan menjadi tabel ledger. Untuk alasan ini, semua data dalam database akan menunjukkan bukti adanya pengubahan. Secara default, tabel baru akan dibuat sebagai tabel ledger yang dapat diperbarui, meskipun Anda tidak menentukan LEDGER = ON
dalam BUAT TABEL. Anda juga dapat tidak memilih opsi ini. Anda kemudian diminta untuk mengaktifkan fungsionalitas buku besar pada basis per tabel saat membuat tabel baru menggunakan Transact-SQL.
Di bagian Penyimpanan Hash, Aktifkan penyimpanan hash otomatis dipilih secara otomatis. Kemudian, akun dan kontainer Azure Storage baru tempat hash yang Anda buat akan disimpan.
Pilih Terapkan.
Pilih Tinjau + buat di bagian bawah halaman.
Pada laman Tinjau + buat, setelah Anda meninjau, pilih Buat.
Anda akan membuat grup sumber daya, server database logis, database ledger tunggal, dan mengonfigurasi pengunggahan hash ledger menggunakan Azure CLI.
Meluncurkan Azure Cloud Shell
Azure Cloud Shell adalah shell interaktif gratis yang dapat Anda gunakan untuk menjalankan langkah-langkah dalam artikel ini. Shell ini memiliki alat Azure umum yang telah dipasang sebelumnya dan dikonfigurasi untuk digunakan dengan akun Anda.
Untuk membuka Cloud Shell, pilih Coba dari sudut kanan atas blok kode. Anda juga dapat meluncurkan Cloud Shell di tab browser terpisah dengan membuka https://shell.azure.com. Pilih Salin untuk menyalin blok kode, tempelkan ke Cloud Shell, dan tekan Enter untuk menjalankannya.
Menetapkan nilai parameter
Nilai berikut digunakan dalam perintah berikutnya untuk membuat database dan sumber daya yang diperlukan. Nama server dan nama akun penyimpanan harus unik secara global di seluruh Azure sehingga fungsi $RANDOM dapat digunakan untuk membuat nama server dan nama akun penyimpanan.
Nama sumber daya harus unik dalam langganan Anda. Ganti <your resource group name>
dengan nama yang unik, dan <your subscription ID>
dengan ID Langganan Anda.
Ganti nilai 0.0.0.0 di rentang alamat ip agar sesuai dengan lingkungan spesifik Anda.
Ganti westeurope dengan nama wilayah Azure pilihan Anda.
resourceGroupName="<your resource group name>"
location="westeurope"
serverName="mysqlserver"-$RANDOM
databaseName="myLedgerDatabase"
storageAccountName="mystorage"$RANDOM
subscription="<your subscription ID>"
adminLogin=azureuser
adminPassword=Azure1234567!
serverResourceId="/subscriptions/$subscription/resourceGroups/$resourceGroupName/providers/Microsoft.Sql/servers/$serverName"
# The ip address range that you want to allow to access your server
startIP=0.0.0.0
endIP=0.0.0.0
# Set variables for your digest storage location
storageAccountName="mystorage"$RANDOM
storageAccountURL1="https://"
storageAccountURL3=".blob.core.windows.net"
storageAccountURL=$storageAccountURL1$storageAccountName$storageAccountURL3
storageAccountResourceId="/subscriptions/$subscription/resourceGroups/$resourceGroupName/providers/Microsoft.Storage/storageAccounts/$storageAccountName"
# Show resource names
echo "Resource group name is" $resourceGroupName
echo "Server name is" $serverName
echo "Database name is" $databaseName
echo "Storage account name is" $storageAccountName
Buat grup sumber daya
Buat grup sumber daya dengan perintah az group create. Grup sumber daya Azure adalah kontainer logis tempat sumber daya Azure disebarkan dan dikelola.
az group create --name $resourceGroupName --location $location
Membuat server dengan identitas terkelola
Buat server dengan perintah buat server sql az. Perintah membuat server dengan identitas terkelola yang ditetapkan.
az sql server create \
--name $serverName \
--resource-group $resourceGroupName \
--location $location \
--admin-user $adminLogin \
--admin-password $adminPassword \
--assign-identity
Perintah ini akan menyimpan ID dalam variabel, yang nantinya akan digunakan untuk memberikan izin server guna mengunggah hash ledger.
# Retrieves the assigned identity to be used when granting the server access to the storage account
principalId=`az sql server show \
--name $serverName \
--resource-group $resourceGroupName \
--query identity.principalId \
--output tsv`
Buat aturan firewall dengan perintah buat aturan- firewall server sql az.
az sql server firewall-rule create \
--resource-group $resourceGroupName \
--server $serverName \
-n AllowYourIp \
--start-ip-address $startIP \
--end-ip-address $endIP
Membuat database ledger tunggal
Buat database ledger dengan perintah buat az sql db. Perintah berikut membuat database tanpa server dengan mengaktifkan ledger.
az sql db create \
--resource-group $resourceGroupName \
--server $serverName \
--name $databaseName \
--edition GeneralPurpose \
--family Gen5 \
--capacity 2 \
--compute-model Serverless \
--ledger-on
Buat akun penyimpanan
Buat akun penyimpanan untuk menyimpan hash ledger dengan perintah buat akun penyimpanan az.
az storage account create \
--name $storageAccountName \
--resource-group $resourceGroupName \
--location $location \
--sku Standard_GRS \
--kind StorageV2
Memberikan izin server untuk menulis hash ledger
Tetapkan identitas terkelola server ke peran Kontributor Data Blob Penyimpanan dengan perintah buat penetapan peran az. Dengan ini, server SQL memiliki izin yang sesuai untuk menerbitkan hash database ke akun penyimpanan.
az role assignment create \
--assignee-object-id $principalId \
--assignee-principal-type "ServicePrincipal" \
--role "Storage Blob Data Contributor" \
--scope $storageAccountResourceId
Mengaktifkan unggahan hash database
Perbarui database untuk mulai mengunggah hash ledger ke akun penyimpanan menggunakan perintah aktifkan unggahan-hash-ledger az sql db.
az sql db ledger-digest-uploads enable \
--name $databaseName \
--resource-group $resourceGroupName \
--server $serverName \
--endpoint $storageAccountURL
Untuk melindungi hash agar tidak dihapus atau diperbarui, sebaiknya Anda mengonfigurasi kebijakan penyimpanan berbasis waktu pada kontainer sqldbledgerdigests menggunakan buat kebijakan kekebalan kontainer penyimpanan az dan perintah kunci kebijakan kekebalan kontainer penyimpanan az. Kebijakan harus mengizinkan penulisan blob penambahan terlindungi. Ini akan memastikan server database dapat menambahkan blok yang berisi hash baru ke blob yang sudah ada, sementara menghapus atau memperbarui hash dinonaktifkan selama periode kekebalan yang ditentukan.
Penting
Contoh di bawah ini menggunakan nilai periode kekebalan 1 hari. Dalam lingkungan produksi, Anda harus menggunakan nilai yang jauh lebih besar.
Catatan
Setelah hash database mulai diunggah ke akun penyimpanan, Anda tidak akan dapat menghapus akun penyimpanan hingga kebijakan kekebalan berakhir. Mengatur kebijakan kekekalan dapat dilewati jika Anda berencana untuk membersihkan sumber daya segera setelah Mulai Cepat ini.
Untuk informasi selengkapnya tentang kebijakan penyimpanan berbasis waktu untuk kontainer, lihat Mengonfigurasi kebijakan kekebalan untuk kontainer.
az storage container immutability-policy create \
--resource-group $resourceGroupName \
--account-name $storageAccountName \
--container-name sqldbledgerdigests \
--period 1 \
--allow-protected-append-writes true
# Retrieves the etag value of the policy to be used when the policy is locked
etag=`az storage container immutability-policy show \
--account-name $storageAccountName \
--container-name sqldbledgerdigests \
--query etag \
--output tsv`
etag="${etag/$'\r'/}"
az storage container immutability-policy lock \
--resource-group $resourceGroupName \
--account-name $storageAccountName \
--container-name sqldbledgerdigests \
--if-match $etag
Anda akan membuat grup sumber daya, server database logis, database ledger tunggal, dan mengonfigurasi pengunggahan hash ledger menggunakan Windows PowerShell.
Meluncurkan Azure Cloud Shell
Azure Cloud Shell adalah shell interaktif gratis yang dapat Anda gunakan untuk menjalankan langkah-langkah dalam artikel ini. Shell ini memiliki alat Azure umum yang telah dipasang sebelumnya dan dikonfigurasi untuk digunakan dengan akun Anda.
Untuk membuka Cloud Shell, pilih Coba dari sudut kanan atas blok kode. Anda juga dapat meluncurkan Cloud Shell di tab browser terpisah dengan membuka https://shell.azure.com. Pilih Salin untuk menyalin blok kode, tempelkan ke Cloud Shell, dan tekan Enter untuk menjalankannya.
Menetapkan nilai parameter
Nilai berikut digunakan dalam perintah berikutnya untuk membuat database dan sumber daya yang diperlukan. Nama server dan nama akun penyimpanan harus unik secara global di seluruh Azure sehingga cmdlet Get-Random dapat digunakan untuk membuat nama server dan nama akun penyimpanan.
Nama sumber daya harus unik dalam langganan Anda. Ganti <your resource group name>
dengan nama yang unik.
Ganti nilai 0.0.0.0 di rentang alamat ip agar sesuai dengan lingkungan spesifik Anda.
Ganti westeurope dengan nama wilayah Azure pilihan Anda.
# Set variables for your server and database
$resourceGroupName = "<your resource group name>"
$location = "westeurope"
$serverName = "mysqlserver-$(Get-Random)"
$databaseName = "myLedgerDatabase"
$storageAccountName = "mystorage$(Get-Random)"
# The ip address range that you want to allow to access your server
$startIP = "0.0.0.0"
$endIP = "0.0.0.0"
# Show resource names
Write-host "Resource group name is" $resourceGroupName
Write-host "Server name is" $serverName
Write-host "Storage account name is" $storageAccountName
Buat grup sumber daya
Membuat grup sumber daya Azure menggunakan New-AzResourceGroup. Grup sumber daya adalah kontainer logis yang disebarkan dan dikelola oleh sumber daya Azure.
Write-host "Creating resource group..."
$resourceGroup = New-AzResourceGroup `
-Name $resourceGroupName `
-Location $location
$resourceGroup
Membuat server
Buat server dengan cmdlet Baru-AzSqlServer.
Cmdlet membuat server dengan identitas terkelola yang ditetapkan, yang nantinya akan digunakan untuk memberikan izin server guna mengunggah hash ledger.
Saat diminta, masukkan nama pengguna dan kata sandi administrator SQL Anda.
Write-host "Creating primary server..."
$server = New-AzSqlServer `
-ResourceGroupName $resourceGroupName `
-ServerName $serverName `
-Location $location `
-AssignIdentity `
-SqlAdministratorCredentials (Get-Credential)
$server
Membuat aturan firewall
Buat aturan firewall server dengan cmdlet Baru-AzSqlServerFirewallRule.
Write-host "Configuring server firewall rule..."
$serverFirewallRule = New-AzSqlServerFirewallRule -ResourceGroupName $resourceGroupName `
-ServerName $serverName `
-FirewallRuleName "AllowedIPs" -StartIpAddress $startIP -EndIpAddress $endIP
$serverFirewallRule
Membuat database ledger tunggal
Buat database ledger tunggal dengan cmdlet New-AzSqlDatabase.
Contoh di bawah ini menjelaskan cara membuat database tanpa server.
Write-host "Creating a gen5 2 vCore serverless ledger database..."
$database = New-AzSqlDatabase -ResourceGroupName $resourceGroupName `
-ServerName $serverName `
-DatabaseName $databaseName `
-Edition GeneralPurpose `
-ComputeModel Serverless `
-ComputeGeneration Gen5 `
-VCore 2 `
-MinimumCapacity 2 `
-EnableLedger
$database
Buat akun penyimpanan
Buat akun penyimpanan untuk menyimpan hash ledger dengan cmdlet New-AzStorageAccount.
Write-host "Creating a storage account for ledger digests..."
$storage = New-AzStorageAccount -ResourceGroupName $resourceGroupName `
-Name $storageAccountName `
-Location $location `
-SkuName Standard_RAGRS `
-Kind StorageV2 `
-AccessTier Hot
$storage
Memberikan izin server untuk menulis hash ledger
Tetapkan identitas terkelola server ke peran Kontributor Data Blob Penyimpanan dengan cmdlet New-AzRoleAssignment. Dengan ini, server SQL memiliki izin yang sesuai untuk menerbitkan hash database ke akun penyimpanan.
Write-host "Granting the server access to the storage account..."
$assignment = New-AzRoleAssignment `
-ObjectId $server.Identity.PrincipalId `
-RoleDefinitionName "Storage Blob Data Contributor" `
-ResourceGroupName $resourceGroupName `
-ResourceType "Microsoft.Storage/storageAccounts" `
-ResourceName $storageAccountName
$assignment
Mengaktifkan unggahan hash database
Perbarui database untuk mulai mengunggah hash ledger ke akun penyimpanan, menggunakan cmdlet Enable-AzSqlDatabaseLedgerDigestUpload. Server database akan membuat kontainer baru yang bernama sqldbledgerdigests dalam akun penyimpanan yang akan mulai menulis hash ledger ke kontainer.
Write-host "Enabling ledger digest upload..."
$ledgerDigestUploadConfig = Enable-AzSqlDatabaseLedgerDigestUpload `
-ResourceGroupName $resourceGroupName `
-ServerName $serverName `
-DatabaseName $databaseName `
-Endpoint $storage.PrimaryEndpoints.Blob
$ledgerDigestUploadConfig
Untuk melindungi hash agar tidak dihapus atau diperbarui, sebaiknya Anda mengonfigurasi kebijakan penyimpanan berbasis waktu pada kontainer sqldbledgerdigests menggunakan cmdlet Set-AzRmStorageContainerImmutabilityPolicy dan Lock-AzRmStorageContainerImmutabilityPolicy. Kebijakan harus mengizinkan penulisan blob penambahan terlindungi. Ini akan memastikan server database dapat menambahkan blok yang berisi hash baru ke blob yang sudah ada, sementara menghapus atau memperbarui hash dinonaktifkan selama periode kekebalan yang ditentukan.
Penting
Contoh di bawah ini menggunakan nilai periode kekebalan 1 hari. Dalam lingkungan produksi, Anda harus menggunakan nilai yang jauh lebih besar.
Catatan
Anda tidak akan dapat menghapus kontainer atau akun penyimpanan selama periode kekebalan yang ditentukan.
Untuk informasi selengkapnya tentang kebijakan penyimpanan berbasis waktu untuk kontainer, lihat Mengonfigurasi kebijakan kekebalan untuk kontainer.
Write-host "Configuring a time-based retention policy..."
$immutabilityPerdiod = 1
$containerName = "sqldbledgerdigests"
$policy = Set-AzRmStorageContainerImmutabilityPolicy `
-ResourceGroupName $resourceGroupName `
-StorageAccountName $storageAccountName `
-ContainerName $containerName `
-AllowProtectedAppendWrite $true `
-ImmutabilityPeriod $immutabilityPerdiod
Lock-AzRmStorageContainerImmutabilityPolicy `
-ResourceGroupName $resourceGroupName `
-StorageAccountName $storageAccountName `
-ContainerName $containerName `
-Etag $policy.Etag
Simpan grup sumber daya, server, dan database tunggal untuk langkah selanjutnya. Anda akan belajar cara menggunakan fitur ledger database dengan metode yang berbeda.
Setelah selesai menggunakan sumber daya ini, hapus grup sumber daya yang Anda buat. Tindakan ini juga akan menghapus server dan database tunggal di dalamnya, serta akun penyimpanan.