This commit is contained in:
Anna Hoffman 2020-02-18 10:08:18 -08:00
Родитель bb26669976
Коммит a5f2628647
8 изменённых файлов: 69 добавлений и 72 удалений

Просмотреть файл

@ -12,12 +12,11 @@ The Azure SQL Workshop is taught using the following components, which you will
> NOTE: If you take this Workshop in person, you may be provided with a complete environment, or have different instructions. The invitation where you registered for the Workshop will be followed up with details for that environment, otherwise assume that you need to complete all of the following steps to complete the Workshop. The Labs in this Workshop are optional, all screenshots and Notebooks are provided for you to follow along if you cannot meet these requirements.
For this workshop, you will use Microsoft Windows as the base workstation, although Apple and Linux operating systems can be used in production. You can <a href="https://developer.microsoft.com/en-us/windows/downloads/virtual-machines" target="_blank">download a Windows 10 Workstation Image for VirtualBox, Hyper-V, VMWare, or Parallels for free here to use in the course</a>. You must be able to install software on the system you will use for the course, so a Virtual Machine is often a good choice. This Workshop was built and designed for a server or VM with at least 8GB RAM and 4 CPUs.
For this workshop, you can use any base OS station, as long as you can connect to a Remote Desktop (RDP).
Other requirements include:
- **Microsoft Azure**: This Workshop uses the Microsoft Azure platform to host various components, and optionally you can deploy a system there to act as a workstation. You can use a free Azure account, an MSDN Account, your own account, or potentially one provided for you, as long as you can create about $100.00 (U.S.) worth of assets.
- **Microsoft Azure**: This Workshop uses the Microsoft Azure platform to host the environment and workstation. You can use a free Azure account, an MSDN Account, your own account, or potentially one provided for you, as long as you can create about $100.00 (U.S.) worth of assets.
> Note that all following activities must be completed prior to class - there will not be time to perform these operations during the workshop.
@ -53,34 +52,42 @@ Your workshop invitation may have instructed you that they will provide a Micros
<p><img style="float: left; margin: 0px 15px 15px 0px;" src="https://github.com/microsoft/sqlworkshops/blob/master/graphics/point1.png?raw=true"><b>Activity 2: Set up your environment</b></p>
In order to complete this workshop you need to install the following software:
In order to complete this workshop, you need to install the following software:
1. Create a resource group for the workshop, naming it **azuresqlworkshopID** where **ID** is some 4-6 digit identifier that you can easily remember (e.g. 0406 is my birthday so I might pick "azuresqlworkshop0406"). Use this same **ID** every time you are told to name something ending in **ID**. Select a region that is close to where you are, and use this region for all future resources.
1. Deploy an [Azure virtual machine](https://ms.portal.azure.com/#create/Microsoft.VirtualMachine-ARM) (link goes to service in Azure portal). The recommended minimum size is a **D2s_v3**, and you should use a **Windows 10** image. Name the virtual machine **win-vmID** (i.e. "win-vm0406"). Accept other defaults, and refer to more information on deploying Azure virtual machines [here](https://docs.microsoft.com/en-us/azure/virtual-machines/windows/quick-create-portal#create-virtual-machine).
1. Using your Azure account, create a resource group for the workshop, naming it **azuresqlworkshopID** where **ID** is some 4-6 digit identifier that you can easily remember (e.g. 0406 is my birthday so I might pick "azuresqlworkshop0406"). Use this same **ID** every time you are told to name something ending in **ID**. Select a region that is close to where you are, and use this region for all future resources.
1. Deploy an [Azure virtual machine](https://ms.portal.azure.com/#create/Microsoft.VirtualMachine-ARM) (link goes to service in Azure portal). The recommended minimum size is a **D2s_v3**, and you should use a **Windows 10 Pro** image. Name the virtual machine **win-vmID** (i.e. "win-vm0406"). Use the username **vmuser** and choose a password. Accept other defaults, and refer to more information on deploying Azure virtual machines [here](https://docs.microsoft.com/en-us/azure/virtual-machines/windows/quick-create-portal#create-virtual-machine).
1. After your virtual machine is deployed, add **Microsoft.Sql** as a service endpoint in the virtual network that is created. Navigate to the vNet in the Azure portal, should be similar to **azuresqlworkshop`ID`-vnet**, and select **Service endpoints** in the left-hand task menu. Select **Add** and for the Service select **Microsoft.Sql** and apply this to the **default** subnet. Select add.
1. After your virtual machine is deployed, you need to add **Microsoft.Sql** as a service endpoint in the virtual network that is created in the resource group. Navigate to the vNet in the Azure portal, should be similar to **azuresqlworkshop`ID`-vnet**, and select **Service endpoints** in the left-hand task menu. Select **Add** and for the Service select **Microsoft.Sql** and apply this to the **default** subnet. Select add.
1. Connect to the virtual machine, and perform the remaining steps in the virtual machine.
1. [Connect to the virtual machine](https://docs.microsoft.com/en-us/azure/virtual-machines/windows/connect-logon), and perform the remaining steps in the virtual machine.
1. Download the [new Microsoft Edge](https://www.microsoft.com/en-us/edge?form=MY01BL&OCID=MY01BL) and make it your default browser (you can type "default browser" in the Windows taskbar and it will take you to the settings for this).
1. Download the [new Microsoft Edge](https://www.microsoft.com/en-us/edge?form=MY01BL&OCID=MY01BL) and make it your default browser (you can type "default browser" in the Windows taskbar and it will take you to the settings for this).
1. Complete [Step 1.2 and 1.3 at this link to install and configure Java and Maven](https://www.microsoft.com/en-us/sql-server/developer-get-started/java/windows). You can confirm this worked by opening a new command prompt and running `mvn --version`. If this command results include Maven 3.6.3+ and Java 1.8.0_241+, the configuration is complete.
1. Navigate to the [Azure portal](https://www.portal.azure.com) and log in with the same Azure credentials used to create the resource group and Azure virtual machine.
1. Complete [Step 1.2 and 1.3 at this link to install and configure Java and Maven](https://www.microsoft.com/en-us/sql-server/developer-get-started/java/windows). You can confirm this worked by opening a new command prompt and running `mvn --version`. If this command results include Maven 3.6.3+ and Java 1.8.0_241+, the configuration is complete.
1. Pin the command prompt to the taskbar (right-click on icon in taskbar and select **Pin to taskbar**).
1. Install the [RMUtils tool (which contains ostress)](https://www.microsoft.com/en-us/download/details.aspx?id=4511) and add `C:\Program Files\Microsoft Corporation\RMLUtils` to the VM's System variables' Path. You can confirm this worked by opening a new command prompt and running `ostress`. If you see the available commands, the configuration is complete.
1. Install [SQL Server 2019 Developer/Evaluation edition](https://www.microsoft.com/en-us/sql-server/sql-server-2019#Install) with default features enabled.
2. Install [SQL Server Management Studio (SSMS) 18.4 or higher](https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms). Several of the modules require features built only into SSMS.
1. Install [SQL Server 2019 Developer/Evaluation edition](https://www.microsoft.com/en-us/sql-server/sql-server-2019#Install) with default features enabled (using the **Basic** selection).
1. Install the [Azure CLI](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli-windows?view=azure-cli-latest).
1. Install the [Az PowerShell Module](https://docs.microsoft.com/en-us/powershell/azure/install-az-ps?view=azps-3.4.0).
1. Install the [Az PowerShell Module](https://docs.microsoft.com/en-us/powershell/azure/install-az-ps?view=azps-3.4.0). Open PowerShell and right-click on the icon in the taskbar and select **Pin to taskbar**. Close PowerShell.
3. Install [Azure Data Studio February 2020 or higher](https://docs.microsoft.com/en-us/sql/azure-data-studio/download). T-SQL and PowerShell notebooks are used in this course.
3. Install [Azure Data Studio February 2020 or later](https://docs.microsoft.com/en-us/sql/azure-data-studio/download). T-SQL and PowerShell notebooks are used in this course.
4. Download the [AdventureWorksLT2017.bak](https://github.com/Microsoft/sql-server-samples/releases/download/adventureworks/AdventureWorksLT2017.bak) and restore it on the SQL Server 2019 instance you created in an earlier step.
1. Open Azure Data Studio and select **New notebook** from the main page. For kernel, change to PowerShell. You should get a pop-up to the side that reads "Configure Python for Notebooks". Leave all the defaults and select **Install**. While it's installing, you can right-click on the icon in the taskbar and select **Pin to taskbar**.
1. Install [Git for Windows](https://git-scm.com/download/win), and run the following command in Windows Command Prompt. This downloads the repository (i.e. all the files for the workshop) to `C:\Users\<vm-username>`.
1. In Azure Data Studio, if/when you get a pop-up asking to enable preview features, select **Yes**. When the installation of Python is complete and you have enabled preview features., you can close Azure Data Studio (no need to save the "New notebook").
2. Install [SQL Server Management Studio (SSMS) 18.4 or higher](https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms). Several of the modules require features built only into SSMS. Once it installs, restart the virtual machine.
4. Download the [AdventureWorksLT2017.bak](https://github.com/Microsoft/sql-server-samples/releases/download/adventureworks/AdventureWorksLT2017.bak). Copy the file to the `C:` drive. Open SSMS and right-click on the icon in the taskbar and select **Pin to taskbar**. Then, use SSMS to restore the backup on the SQL Server 2019 instance you created in an earlier step (you can use **.** and **Windows Authentication** to connect to the local SQL Server in SSMS).
1. Install [Git for Windows](https://git-scm.com/download/win) with all defaults, and run the following command in Windows Command Prompt. This downloads the repository (i.e. all the files for the workshop) to `C:\Users\<vm-username>`.
```cmd
git clone --config core.autocrlf=false https://github.com/microsoft/sqlworkshops.git
```

Просмотреть файл

@ -8,7 +8,9 @@
<img style="float: left; margin: 0px 15px 15px 0px;" src="../graphics/textbubble.png"> <h2>01 - Introduction to Azure SQL</h2>
In this module, you'll start with a brief history of why and how we built Azure SQL, then youll then learn about the various deployment options and service tiers, including what to use when. This includes Azure SQL Database and Azure SQL managed instance. Understanding what Platform as a Service (PaaS) encompasses and how it compares to the SQL Server “box” will help level-set what you get (and dont get) when you move to the cloud. Well cover deployment, configuration, and other getting started related tasks for Azure SQL (hands-on).
In this module, you'll start with a brief history of why and how we built Azure SQL, then youll then learn about the various deployment options and service tiers, including what to use when. This includes Azure SQL Database and Azure SQL managed instance. Understanding what Platform as a Service (PaaS) encompasses and how it compares to the SQL Server “box” will help level-set what you get (and dont get) when you move to the cloud.
>Note: This is the only module that does not contain activities for you to complete.
In each module you'll get more references, which you should follow up on to learn more. Also watch for links within the text - click on each one to explore that topic.
@ -160,7 +162,7 @@ The vCore model lets you choose the generation of hardware:
Basically, Gen4 hardware offers substantially more memory per vCore. However, Gen5 hardware allows you to scale up compute resources much higher. [New Gen4 databases are no longer supported in certain regions](https://azure.microsoft.com/en-us/updates/gen-4-hardware-on-azure-sql-database-approaching-end-of-life-in-2020/), where Gen5 is available in most regions worldwide. As technology advances, you can expect that the hardware will change as well. For example, Fsv2-series (compute optimized) and M-series (memory optimized) hardware options recently became available in public preview for Azure SQL DB. You can review the latest hardware generations and availability [here](https://docs.microsoft.com/en-us/azure/sql-database/sql-database-service-tiers-vcore#hardware-generations).
> Note: If you choose General Purpose within Azure SQL DB and want to use the serverless compute tier, Gen5 hardware is the only option and it currently can scale up to 16 vCores.
> Note: If you choose General Purpose within Azure SQL DB and want to use the serverless compute tier, Gen5 hardware is currently the only option and it currently can scale up to 16 vCores.
In this module, you learned about Azure SQL, including the deployment options, purchasing models, service tiers, and hardware choices. Hopefully, you also have a better understanding of what to choose when. In the next module, you'll learn more about deploying and configuring Azure SQL.

Просмотреть файл

@ -62,7 +62,7 @@ Navigate to https://portal.azure.com/ and log in with your account, if you are n
* **Documentation**: this searches docs.microsoft.com
* **Resource groups**: this allows you to select a resource group
Next, select **Azure SQL** under "Marketplace." This will bring you to the Azure SQL create experience. Take a few seconds to click around and explore.
Next, select **Azure SQL** under "Marketplace." This will bring you to the Azure SQL create experience. Take a few moments to click around and explore.
![](../graphics/AzureSQLDeploymentOptions.gif)
@ -200,7 +200,7 @@ And some time later ...
And finally...
![](../graphics/deploymentunderway3.png)
If, for whatever reason, you get lost from this page and the deployment has not completed, you can navigate to your resource group, and select **Deployments**. This will give you the various deployments, their statuses, and more information.
If, for whatever reason, you get lost from this page and the deployment has not completed, you can navigate to your resource group, and select **Deployments**. This will give you the various deployments, their status, and more information.
![](../graphics/deploymentstatus.png)

Просмотреть файл

@ -30,8 +30,6 @@
"\r\n",
"0. You should have opened this file using Azure Data Studio. If you didn't, please refer to Module 2 Activity 3 in the readme.md file to get set up. \r\n",
"1. In the bar at the top of this screen, confirm or change the \"Kernel\" to **PowerShell**. This determines what language the code blocks in the file are. In this case, that language is SQL. \r\n",
"2. You may be prompted to install Python, if you are select **New Python Installation**. This may take a few minutes, you'll see the output in a window that appears at the bottom of ADS.\r\n",
"TODO THIS TAKES ~5 minutes. \r\n",
"2. Confirming the Kernel is **PowerShell**, for \"Attach to\", confirm it reads **localhost**. \r\n",
"\r\n",
"Now that you're set up, you should read the text cells and \"Run\" the code cells by selecting the play button that appears in the left of a code cell when you hover over it. \r\n",
@ -54,25 +52,33 @@
"tags": []
},
"outputs": [],
"execution_count": 1
"execution_count": null
},
{
"cell_type": "code",
"source": [
"# Specify your subscription for the workshop\r\n",
"# Should appear in the list of subscriptions output in previous cell\r\n",
"az account set --subscription <subscription-ID>"
],
"metadata": {
"azdata_cell_guid": "da44d206-65f3-4749-b186-364ee211b766"
},
"outputs": [],
"outputs": [
{
"name": "stdout",
"text": "",
"output_type": "stream"
}
],
"execution_count": 2
},
{
"cell_type": "code",
"source": [
"# Specify your default subscription, resource group, and Azure SQL Database logical server\r\n",
"az configure --defaults group=azuresqlworkshop0406 sql-server=aw-server0406"
"# Replace ID with your ID for the workshop\r\n",
"az configure --defaults group=azuresqlworkshopID sql-server=aw-serverID"
],
"metadata": {
"azdata_cell_guid": "e91e1c9a-7175-45e0-879b-0f6ef150db3c",
@ -80,12 +86,12 @@
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": ""
"text": "",
"output_type": "stream"
}
],
"execution_count": 2
"execution_count": 3
},
{
"cell_type": "markdown",
@ -106,7 +112,7 @@
"azdata_cell_guid": "828e608f-fadd-40a7-8ac2-1f5394a81412"
},
"outputs": [],
"execution_count": 3
"execution_count": null
},
{
"cell_type": "markdown",
@ -121,18 +127,18 @@
{
"cell_type": "code",
"source": [
"az sql db show --name AdventureWorks0406"
"az sql db show --name AdventureWorksID"
],
"metadata": {
"azdata_cell_guid": "85457b28-ac25-40a1-8dea-5cd1ca8a70f2"
},
"outputs": [],
"execution_count": 4
"execution_count": null
},
{
"cell_type": "markdown",
"source": [
"You can also determine the database suze and usage."
"You can also determine the database size and usage."
],
"metadata": {
"azdata_cell_guid": "9439704f-73d5-4c60-a422-233e2062dcff"
@ -141,19 +147,19 @@
{
"cell_type": "code",
"source": [
"az sql db list-usages --name AdventureWorks0406"
"az sql db list-usages --name AdventureWorksID"
],
"metadata": {
"azdata_cell_guid": "ae511ce4-3a1c-4d4b-bef9-7ba77e281af6"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": "[\n {\n \"currentValue\": 556793856.0,\n \"displayName\": \"Database Size\",\n \"limit\": 34359738368.0,\n \"name\": \"database_size\",\n \"nextResetTime\": null,\n \"resourceName\": \"AdventureWorks0406\",\n \"unit\": \"Bytes\"\n },\n {\n \"currentValue\": 1610612736.0,\n \"displayName\": \"Database Allocated Size\",\n \"limit\": 34359738368.0,\n \"name\": \"database_allocated_size\",\n \"nextResetTime\": null,\n \"resourceName\": \"AdventureWorks0406\",\n \"unit\": \"Bytes\"\n }\n]\n"
"text": "[\n {\n \"currentValue\": 12582912.0,\n \"displayName\": \"Database Size\",\n \"limit\": 34359738368.0,\n \"name\": \"database_size\",\n \"nextResetTime\": null,\n \"resourceName\": \"AdventureWorks0218\",\n \"unit\": \"Bytes\"\n },\n {\n \"currentValue\": 16777216.0,\n \"displayName\": \"Database Allocated Size\",\n \"limit\": 34359738368.0,\n \"name\": \"database_allocated_size\",\n \"nextResetTime\": null,\n \"resourceName\": \"AdventureWorks0218\",\n \"unit\": \"Bytes\"\n }\n]\n",
"output_type": "stream"
}
],
"execution_count": 5
"execution_count": 6
},
{
"cell_type": "markdown",
@ -205,7 +211,7 @@
"azdata_cell_guid": "1af59f8b-afe3-43c5-863d-3549f06871ed"
},
"outputs": [],
"execution_count": 6
"execution_count": null
},
{
"cell_type": "markdown",
@ -227,19 +233,13 @@
"metadata": {
"azdata_cell_guid": "5114ebd7-b37d-4cd8-abbc-4a00ba77f798"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": "{\n \"connectionType\": \"Proxy\",\n \"id\": \"/subscriptions/227e9423-1792-43b0-82e6-ac94397ed789/resourceGroups/azuresqlworkshop0406/providers/Microsoft.Sql/servers/aw-server0406/connectionPolicies/default\",\n \"kind\": null,\n \"location\": null,\n \"name\": \"default\",\n \"resourceGroup\": \"azuresqlworkshop0406\",\n \"type\": \"Microsoft.Sql/servers/connectionPolicies\"\n}\n{\n \"connectionType\": \"Proxy\",\n \"id\": \"/subscriptions/227e9423-1792-43b0-82e6-ac94397ed789/resourceGroups/azuresqlworkshop0406/providers/Microsoft.Sql/servers/aw-server0406/connectionPolicies/default\",\n \"kind\": null,\n \"location\": \"West US\",\n \"name\": \"default\",\n \"resourceGroup\": \"azuresqlworkshop0406\",\n \"type\": \"Microsoft.Sql/servers/connectionPolicies\"\n}\n"
}
],
"execution_count": 16
"outputs": [],
"execution_count": null
},
{
"cell_type": "markdown",
"source": [
"If you want to test round trip time, you can connect with SSMS, create a new query (below), and choose to \"Include Client Statistics\" in your results. In the results, the \"Wait time on server replies\" is the best indicator of network latency. You can run this a few times to get a good average. \r\n",
"If you want to test round trip time, you can connect with SSMS, create a new query (below), and choose to \"Include Client Statistics\" in your results. Be sure to right-click on the database and select **New Query**. In the results, the \"Wait time on server replies\" is the best indicator of network latency. You can run this a few times to get a good average. \r\n",
"\r\n",
"```sql\r\n",
"-- Proxy\r\n",
@ -277,14 +277,8 @@
"metadata": {
"azdata_cell_guid": "c540779a-9c4d-472f-8ddc-6fc59b8437d4"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": "{\n \"connectionType\": \"Redirect\",\n \"id\": \"/subscriptions/227e9423-1792-43b0-82e6-ac94397ed789/resourceGroups/azuresqlworkshop0406/providers/Microsoft.Sql/servers/aw-server0406/connectionPolicies/default\",\n \"kind\": null,\n \"location\": null,\n \"name\": \"default\",\n \"resourceGroup\": \"azuresqlworkshop0406\",\n \"type\": \"Microsoft.Sql/servers/connectionPolicies\"\n}\n{\n \"connectionType\": \"Redirect\",\n \"id\": \"/subscriptions/227e9423-1792-43b0-82e6-ac94397ed789/resourceGroups/azuresqlworkshop0406/providers/Microsoft.Sql/servers/aw-server0406/connectionPolicies/default\",\n \"kind\": null,\n \"location\": \"West US\",\n \"name\": \"default\",\n \"resourceGroup\": \"azuresqlworkshop0406\",\n \"type\": \"Microsoft.Sql/servers/connectionPolicies\"\n}\n"
}
],
"execution_count": 17
"outputs": [],
"execution_count": null
},
{
"cell_type": "markdown",
@ -331,14 +325,8 @@
"metadata": {
"azdata_cell_guid": "34f23b31-0252-436f-abdb-f0b7208f44b7"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": "{\n \"connectionType\": \"Default\",\n \"id\": \"/subscriptions/227e9423-1792-43b0-82e6-ac94397ed789/resourceGroups/azuresqlworkshop0406/providers/Microsoft.Sql/servers/aw-server0406/connectionPolicies/default\",\n \"kind\": null,\n \"location\": null,\n \"name\": \"default\",\n \"resourceGroup\": \"azuresqlworkshop0406\",\n \"type\": \"Microsoft.Sql/servers/connectionPolicies\"\n}\n{\n \"connectionType\": \"Default\",\n \"id\": \"/subscriptions/227e9423-1792-43b0-82e6-ac94397ed789/resourceGroups/azuresqlworkshop0406/providers/Microsoft.Sql/servers/aw-server0406/connectionPolicies/default\",\n \"kind\": null,\n \"location\": \"West US\",\n \"name\": \"default\",\n \"resourceGroup\": \"azuresqlworkshop0406\",\n \"type\": \"Microsoft.Sql/servers/connectionPolicies\"\n}\n"
}
],
"execution_count": 18
"outputs": [],
"execution_count": null
}
]
}

Просмотреть файл

@ -386,7 +386,7 @@ In the Azure portal, navigate to your Azure SQL Database logical server. Then, i
In this step, you'll review the selections you've made for your Azure SQL Database logical server. In the same pane as step 1 (Azure SQL Database logical server > Security > Advanced data security), you will also see information regarding Vulnerability Assessments and Advanced Threat Protection.
At the highest level, SQL Vulnerability Assessment (VA) is a scanning service that provide visibility into your security state. It then provides actionable steps to address any potential concerns. When you configure periodic recurring scans, you're enabling the service to scan your databases every seven days and check for any vulnerabilities. You can then choose to send those reports to the admins, subscription owners, or anyone else that might need to be made notified of changes. In order for this service to operate, you have to specify a storage account for the results to be stored. This storage account was deployed during deployment of your Azure SQL Database, as you opted in to turn on ADS. Review the options and add your email address if you want to view a recurring scan.
At the highest level, SQL Vulnerability Assessment (VA) is a scanning service that provides visibility into your security state. It then provides actionable steps to address any potential concerns. When you configure periodic recurring scans, you're enabling the service to scan your databases every seven days and check for any vulnerabilities. You can then choose to send those reports to the admins, subscription owners, or anyone else that might need to be made notified of changes. In order for this service to operate, you have to specify a storage account for the results to be stored. This storage account was deployed during deployment of your Azure SQL Database, as you opted in to turn on ADS. Review the options and add your email address if you want to view a recurring scan.
![](../graphics/vasettings.png)
@ -542,7 +542,7 @@ You should get a result of the first ten names, with no masking applied. Why? Be
Now, run the following query to create a new user and run the previous query as that user. You may notice the first few commands, they are a repeat from Activity 2, Step 3.
```sql
-- Create a new SQL user and give them a password
CREATE USER Bob WITH PASSWORD = 'gocowboys1!';
CREATE USER Bob WITH PASSWORD = 'goTitans1!';
-- Until you run the following two lines, Bob has no access to read or write data
ALTER ROLE db_datareader ADD MEMBER Bob;
@ -647,7 +647,7 @@ The default query is querying the category `SQLSecurityAuditEvents`, so while yo
![](../graphics/laview.png)
This workshop won't go deep into KQL querying of logs, but there are many resources in the references above if you want more practice later.
This activity won't go deep into KQL querying of logs, but there are many resources in the references above if you want more practice later.
**Step 7 - Analyze audit logs and monitor security with the Log Analytics SQL Security dashboard**
@ -675,7 +675,7 @@ Back in the overview, select **Azure SQL - Security Insights**.
![](../graphics/securitydb.png)
This dashboard gives more auditing information to help you understand database activity, and gain insight into anomalies. Spend a few minutes reviewing the options here.
This dashboard gives more auditing information to help you understand database activity, and gain insight into anomalies. Spend a few minutes reviewing and drilling into the options here.
> Looking for another bonus security activity? Try this tutorial: [Always Encrypted: Protect sensitive data and store encryption keys in Azure Key Vault](https://docs.microsoft.com/en-us/azure/sql-database/sql-database-always-encrypted-azure-key-vault?tabs=azure-powershell). You will need VS for this, you can download [Visual Studio Community for free here](https://visualstudio.microsoft.com/downloads/).

Просмотреть файл

@ -20,12 +20,12 @@ In this module, you'll cover these topics:
[5.2](#5.2): Azure SQL high availability basics
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[Activity 2](#2): Basic HA in Azure SQL Database
[5.3](#5.3): The highest availability
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[Activity 3](#3): TODO-Turn-key AGs in Business critical
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[Activity 3](#3): Turn-key AGs in Business critical
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[Activity 4](#4): Geo-distributed auto-failover groups with read-scale in Business critical
<p style="border-bottom: 1px solid lightgrey;"></p>
<h2><img style="float: left; margin: 0px 15px 15px 0px;" src="../graphics/pencil2.png"><a name="5.1">5.1 TODO: Backup and restore</h2></a>
<h2><img style="float: left; margin: 0px 15px 15px 0px;" src="../graphics/pencil2.png"><a name="5.1">5.1 Backup and restore</h2></a>
TODO: Explain how on prem you have to have a plan for DR and a BU/R strategy, but how it's built for you in Azure. Also talk about how it all works, ADR, LTR, etc.
<br>
@ -36,7 +36,7 @@ In all organizations, big or small, mistakes can happen. That's why you always h
One of the benefits of Azure SQL is that Azure can take care of all of this for you. Since Azure SQL manages your backups and runs in full recovery model, it can restore you to any point in time (you can even [restore a deleted database](https://docs.microsoft.com/en-us/azure/sql-database/sql-database-recovery-using-backups#deleted-database-restore)). In this activity, you'll see how a common error can be recovered using point in time restore (PITR). This is easy to do in the portal or programmatically, but in this activity you'll see how to do it with the Azure CLI.
TODO Need to add a note about prereq from Module 3
> Note: In this activity, you use auditing in Log Analytics to determine the time of a dropped database. Auditing and Log Analytics were configured in Module 3, so ensure you have completed that before attempting this activity.
<p><img style="margin: 0px 15px 15px 0px;" src="../graphics/checkmark.png"><b>Steps</b></p>
@ -50,7 +50,7 @@ TODO: Explain basic architecture of general purpose/business critical/hyperscale
<p><img style="float: left; margin: 0px 15px 15px 0px;" src="../graphics/point1.png"><a name="2"><b>Activity 2</a>: Basic HA in Azure SQL Database</b></p>
In this activity, you'll get to see how the General purpose tier of Azure SQL Database behaves similarly to a Failover Cluster Instance on-prem. The difference is that on-prem, this can be time-consuming or tricky to set up, but with Azure SQL, you get it out of the box.
In this activity, you'll get to see how the General purpose tier of Azure SQL Database behaves similarly to a Failover Cluster Instance on-prem. The main difference is that on-prem, this can be time-consuming or tricky to set up, but with Azure SQL, you get it out of the box.
<p><img style="margin: 0px 15px 15px 0px;" src="../graphics/checkmark.png"><b>Steps</b></p>
@ -79,7 +79,7 @@ Additionally, in the Business critical tier, you can opt-in (for no additional f
More information about Business critical can be found [here](https://docs.microsoft.com/en-us/azure/sql-database/sql-database-service-tier-business-critical).
<p><img style="float: left; margin: 0px 15px 15px 0px;" src="../graphics/point1.png"><a name="3"><b>Activity 3</a>: TODO-Turn-key AGs in Business critical</b></p>
<p><img style="float: left; margin: 0px 15px 15px 0px;" src="../graphics/point1.png"><a name="3"><b>Activity 3</a>: Turn-key AGs in Business critical</b></p>
In this activity, you'll upgrade your database to the Business critical tier and explore the offering, including read-replicas, availability zones, and increased performance.

Двоичные данные
AzureSQLWorkshop/graphics/search.png

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 57 KiB

После

Ширина:  |  Высота:  |  Размер: 67 KiB

Двоичные данные
AzureSQLWorkshop/graphics/serverdashboard.png

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 124 KiB

После

Ширина:  |  Высота:  |  Размер: 124 KiB