| title | Create a single database | ||||
|---|---|---|---|---|---|
| description | Create a single database in Azure SQL Database using the Azure portal, PowerShell, or the Azure CLI. | ||||
| author | WilliamDAssafMSFT | ||||
| ms.author | wiassaf | ||||
| ms.reviewer | mathoma | ||||
| ms.date | 07/14/2022 | ||||
| ms.service | sql-database | ||||
| ms.subservice | deployment-configuration | ||||
| ms.topic | quickstart | ||||
| ms.custom |
|
In this quickstart, you create a single database in Azure SQL Database using either the Azure portal, a PowerShell script, or an Azure CLI script. You then query the database using Query editor in the Azure portal.
- An active Azure subscription. If you don't have one, create a free account.
- The latest version of either Azure PowerShell or Azure CLI.
This quickstart creates a single database in the serverless compute tier.
To create a single database in the Azure portal, this quickstart starts at the Azure SQL page.
-
Browse to the Select SQL Deployment option page.
-
Under SQL databases, leave Resource type set to Single database, and select Create.
:::image type="content" source="./media/single-database-create-quickstart/select-deployment.png" alt-text="Add to Azure SQL" lightbox="media/single-database-create-quickstart/select-deployment.png":::
-
On the Basics tab of the Create SQL Database form, under Project details, select the desired Azure Subscription.
-
For Resource group, select Create new, enter myResourceGroup, and select OK.
-
For Database name, enter mySampleDatabase.
-
For Server, select Create new, and fill out the New server form with the following values:
- Server name: Enter mysqlserver, and add some characters for uniqueness. We can't provide an exact server name to use because server names must be globally unique for all servers in Azure, not just unique within a subscription. So enter something like
mysqlserver12345, and the portal lets you know if it's available or not. - Location: Select a location from the dropdown list.
- Authentication method: Select Use SQL authentication.
- Server admin login: Enter azureuser.
- Password: Enter a password that meets requirements, and enter it again in the Confirm password field.
Select OK.
- Server name: Enter mysqlserver, and add some characters for uniqueness. We can't provide an exact server name to use because server names must be globally unique for all servers in Azure, not just unique within a subscription. So enter something like
-
Leave Want to use SQL elastic pool set to No.
-
Under Compute + storage, select Configure database.
-
This quickstart uses a serverless database, so leave Service tier set to General Purpose (Scalable compute and storage options) and set Compute tier to Serverless. Select Apply.
:::image type="content" source="./media/single-database-create-quickstart/configure-database.png" alt-text="configure serverless database" lightbox="media/single-database-create-quickstart/configure-database.png":::
-
Under Backup storage redundancy, choose a redundancy option for the storage account where your backups will be saved. To learn more, see backup storage redundancy.
-
Select Next: Networking at the bottom of the page.
:::image type="content" source="./media/single-database-create-quickstart/new-sql-database-basics.png" alt-text="New SQL database - Basic tab":::
-
On the Networking tab, for Connectivity method, select Public endpoint.
-
For Firewall rules, set Add current client IP address to Yes. Leave Allow Azure services and resources to access this server set to No.
:::image type="content" source="./media/single-database-create-quickstart/networking.png" alt-text="Screenshot that shows the networking tab for firewall rules.":::
-
Under Connection policy, choose the Default connection policy, and leave the Minimum TLS version at the default of TLS 1.2.
-
Select Next: Security at the bottom of the page.
:::image type="content" source="./media/single-database-create-quickstart/networking-connections.png" alt-text="Screenshot that shows the networking tab for policy and encryption.":::
-
On the Security page, you can choose to start a free trial of Microsoft Defender for SQL, as well as configure Ledger, Managed identities and Transparent data encryption (TDE) if you desire. Select Next: Additional settings at the bottom of the page.
-
On the Additional settings tab, in the Data source section, for Use existing data, select Sample. This creates an AdventureWorksLT sample database so there's some tables and data to query and experiment with, as opposed to an empty blank database. You can also configure database collation and a maintenance window.
-
Select Review + create at the bottom of the page:
:::image type="content" source="./media/single-database-create-quickstart/additional-settings.png" alt-text="Additional settings tab":::
-
On the Review + create page, after reviewing, select Create.
The Azure CLI code blocks in this section create a resource group, server, single database, and server-level IP firewall rule for access to the server. Make sure to record the generated resource group and server names, so you can manage these resources later.
[!INCLUDE quickstarts-free-trial-note]
[!INCLUDE azure-cli-prepare-your-environment.md]
[!INCLUDE cli-launch-cloud-shell-sign-in.md]
The following values are used in subsequent commands to create the database and required resources. Server names need to be globally unique across all of Azure so the $RANDOM function is used to create the server name.
Change the location as appropriate for your environment. Replace 0.0.0.0 with the IP address range to match your specific environment. Use the public IP address of the computer you're using to restrict access to the server to only your IP address.
:::code language="azurecli" source="~/../azure_cli_scripts/sql-database/create-and-configure-database/create-and-configure-database.sh" id="SetParameterValues":::
Create a resource group with the az group create command. An Azure resource group is a logical container into which Azure resources are deployed and managed. The following example creates a resource group named myResourceGroup in the eastus location:
:::code language="azurecli" source="~/../azure_cli_scripts/sql-database/create-and-configure-database/create-and-configure-database.sh" id="CreateResourceGroup":::
Create a server with the az sql server create command.
:::code language="azurecli" source="~/../azure_cli_scripts/sql-database/create-and-configure-database/create-and-configure-database.sh" id="CreateServer":::
Create a firewall rule with the az sql server firewall-rule create command.
:::code language="azurecli" source="~/../azure_cli_scripts/sql-database/create-and-configure-database/create-and-configure-database.sh" id="CreateFirewallRule":::
Create a database with the az sql db create command in the serverless compute tier.
echo "Creating $database in serverless tier"
az sql db create \
--resource-group $resourceGroup \
--server $server \
--name $database \
--sample-name AdventureWorksLT \
--edition GeneralPurpose \
--compute-model Serverless \
--family Gen5 \
--capacity 2
The Azure CLI code blocks in this section use the az sql up command to simplify the database creation process. With it, you can create a database and all of its associated resources with a single command. This includes the resource group, server name, server location, database name, and login information. The database is created with a default pricing tier of General Purpose, Provisioned, Gen5, 2 vCores.
[!INCLUDE quickstarts-free-trial-note]
[!INCLUDE azure-cli-prepare-your-environment-h3.md]
[!INCLUDE cli-launch-cloud-shell-sign-in.md]
The following values are used in subsequent commands to create the database and required resources. Server names need to be globally unique across all of Azure so the $RANDOM function is used to create the server name.
Change the location as appropriate for your environment. Replace 0.0.0.0 with the IP address range to match your specific environment.
:::code language="azurecli" source="~/../azure_cli_scripts/sql-database/create-and-configure-database/create-and-configure-database.sh" id="SetParameterValues":::
Note
az sql up is currently in preview and does not currently support the serverless compute tier. Also, the use of non-alphabetic and non-numeric characters in the database name are not currently supported.
Use the az sql up command to create and configure a logical server for Azure SQL Database for immediate use. Make sure to record the generated resource group and server names, so you can manage these resources later.
Note
When running the az sql up command for the first time, Azure CLI prompts you to install the db-up extension. This extension is currently in preview. Accept the installation to continue. For more information about extensions, see Use extensions with Azure CLI.
-
Run the
az sql upcommand. If any required parameters aren't used, like--server-name, that resource is created with a random name and login information assigned to it.az sql up \ --resource-group $resourceGroup \ --location $location \ --server-name $server \ --database-name $database \\ --admin-user $login \ --admin-password $password -
A server firewall rule is automatically created. If the server declines your IP address, create a new firewall rule using the
az sql server firewall-rule createcommand and specifying appropriate start and end IP addresses.startIp=0.0.0.0 endIp=0.0.0.0 az sql server firewall-rule create \ --resource-group $resourceGroup \ --server $server \ -n AllowYourIp \ --start-ip-address $startIp \ --end-ip-address $endIp -
All required resources are created, and the database is ready for queries.
You can create a resource group, server, and single database using Azure PowerShell.
The Azure Cloud Shell is a free interactive shell that you can use to run the steps in this article. It has common Azure tools preinstalled and configured to use with your account.
To open the Cloud Shell, select Try it from the upper right corner of a code block. You can also launch Cloud Shell in a separate browser tab by going to https://shell.azure.com.
When Cloud Shell opens, verify that PowerShell is selected for your environment. Subsequent sessions will use Azure CLI in a PowerShell environment. Select Copy to copy the blocks of code, paste it into the Cloud Shell, and press Enter to run it.
The following values are used in subsequent commands to create the database and required resources. Server names need to be globally unique across all of Azure so the Get-Random cmdlet is used to create the server name. Replace the 0.0.0.0 values in the ip address range to match your specific environment.
# Set variables for your server and database
$resourceGroupName = "myResourceGroup"
$location = "eastus"
$adminLogin = "azureuser"
$password = "Azure1234567!"
$serverName = "mysqlserver-$(Get-Random)"
$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"
# Show randomized variables
Write-host "Resource group name is" $resourceGroupName
Write-host "Server name is" $serverName
Create an Azure resource group with New-AzResourceGroup. A resource group is a logical container into which Azure resources are deployed and managed.
Write-host "Creating resource group..."
$resourceGroup = New-AzResourceGroup -Name $resourceGroupName -Location $location -Tag @{Owner="SQLDB-Samples"}
$resourceGroup
Create a server with the New-AzSqlServer cmdlet.
Write-host "Creating primary server..."
$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))
$server
Create a server firewall rule with the New-AzSqlServerFirewallRule cmdlet.
Write-host "Configuring server firewall rule..."
$serverFirewallRule = New-AzSqlServerFirewallRule -ResourceGroupName $resourceGroupName `
-ServerName $serverName `
-FirewallRuleName "AllowedIPs" -StartIpAddress $startIp -EndIpAddress $endIp
$serverFirewallRule
Create a single database with the New-AzSqlDatabase cmdlet.
Write-host "Creating a gen5 2 vCore serverless database..."
$database = New-AzSqlDatabase -ResourceGroupName $resourceGroupName `
-ServerName $serverName `
-DatabaseName $databaseName `
-Edition GeneralPurpose `
-ComputeModel Serverless `
-ComputeGeneration Gen5 `
-VCore 2 `
-MinimumCapacity 2 `
-SampleName "AdventureWorksLT"
$database
Once your database is created, you can use the Query editor (preview) in the Azure portal to connect to the database and query data.
-
In the portal, search for and select SQL databases, and then select your database from the list.
-
On the page for your database, select Query editor (preview) in the left menu.
-
Enter your server admin login information, and select OK.
:::image type="content" source="./media/single-database-create-quickstart/query-editor-login.png" alt-text="Sign in to Query editor":::
-
Enter the following query in the Query editor pane.
SELECT TOP 20 pc.Name as CategoryName, p.name as ProductName FROM SalesLT.ProductCategory pc JOIN SalesLT.Product p ON pc.productcategoryid = p.productcategoryid;
-
Select Run, and then review the query results in the Results pane.
:::image type="content" source="./media/single-database-create-quickstart/query-editor-results.png" alt-text="Query editor results" lightbox="media/single-database-create-quickstart/query-editor-results.png":::
-
Close the Query editor page, and select OK when prompted to discard your unsaved edits.
Keep the resource group, server, and single database to go on to the next steps, and learn how to connect and query your database with different methods.
When you're finished using these resources, you can delete the resource group you created, which will also delete the server and single database within it.
To delete myResourceGroup and all its resources using the Azure portal:
- In the portal, search for and select Resource groups, and then select myResourceGroup from the list.
- On the resource group page, select Delete resource group.
- Under Type the resource group name, enter myResourceGroup, and then select Delete.
Use the following command to remove the resource group and all resources associated with it using the az group delete command - unless you have an ongoing need for these resources. Some of these resources may take a while to create, as well as to delete.
az group delete --name $resourceGroup
[!INCLUDE cli-clean-up-resources.md]
az group delete --name $resourceGroup
To delete the resource group and all its resources, run the following PowerShell cmdlet, using the name of your resource group:
Remove-AzResourceGroup -Name $resourceGroupName
Connect and query your database using different tools and languages:
[!div class="nextstepaction"] Connect and query using SQL Server Management Studio
Want to optimize and save on your cloud spending?
[!div class="nextstepaction"] Start analyzing costs with Cost Management