common/code-upgrade-samples/az/sqldb-restore-database.ps1 (44 lines of code) (raw):

# Original source code: https://github.com/Azure/azure-docs-powershell-samples/blob/5513f8ea73e2b9630311d7ea27372cddc4e65cae/sql-database/restore-database/restore-database.ps1 # Set the resource group name and location for your server $resourceGroupName = "myResourceGroup-$(Get-Random)" $location = "westeurope" # Set an admin login and password for your server $adminlogin = "ServerAdmin" $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 restored database names $pointInTimeRestoreDatabaseName = "MySampleDatabase_10MinutesAgo" # The ip address range that you want to allow to access your server $startIp = "0.0.0.0" $endIp = "0.0.0.0" # 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 $adminlogin, $(ConvertTo-SecureString -String $password -AsPlainText -Force)) # Create a server firewall rule that allows access from the specified IP range $firewallRule = 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" Start-Sleep -second 600 # Restore database to its state 7 minutes ago # Note: Point-in-time restore requires database to be at least 5 minutes old Restore-AzSqlDatabase ` -FromPointInTimeBackup ` -PointInTime (Get-Date).AddMinutes(-2) ` -ResourceGroupName $resourceGroupName ` -ServerName $serverName ` -TargetDatabaseName $pointInTimeRestoreDatabaseName ` -ResourceId $database.ResourceID ` -Edition "Standard" ` -ServiceObjectiveName "S0"