Start-AzSqlInstanceDatabaseVulnerabilityAssessmentScan

Starts a vulnerability assessment scan.

Syntax

Start-AzSqlInstanceDatabaseVulnerabilityAssessmentScan
     [-InstanceName] <String>
     [-DatabaseName] <String>
     [-AsJob]
     [-ScanId <String>]
     [-ResourceGroupName] <String>
     [-DefaultProfile <IAzureContextContainer>]
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]
Start-AzSqlInstanceDatabaseVulnerabilityAssessmentScan
     -InputObject <AzureSqlManagedDatabaseModel>
     [-AsJob]
     [-ScanId <String>]
     [-ResourceGroupName] <String>
     [-DefaultProfile <IAzureContextContainer>]
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]

Description

The Start-AzSqlInstanceDatabaseVulnerabilityAssessmentScan cmdlet triggers a scan with ScanId identifier. Scan results will be saved under the storage defined by the Update-AzSqlInstanceVulnerabilityAssessmentSetting cmdlet, under scans/{ManagedInstanceName}/{ManagedDatabaseName}/scan_{ScanId}.json You can monitor the progress of the scan by using the Get-AzSqlInstanceDatabaseVulnerabilityAssessmentScanRecord cmdlet with the scanId parameter and look at the State returned parameter. Note that you need to run Enable-AzSqlInstanceAdvancedDataSecurity and Update-AzSqlInstanceVulnerabilityAssessmentSetting cmdlet as a prerequisite for using this cmdlets.

Examples

Example 1: Starts a vulnerability assessment scan

Start-AzSqlInstanceDatabaseVulnerabilityAssessmentScan `
            -ResourceGroupName "ResourceGroup01" `
            -InstanceName "ManagedInstance01" `
            -DatabaseName "Database01" `
            -ScanId "myScan"

ResourceGroupName	         : ResourceGroup01
InstanceName		     : ManagedInstance01
DatabaseName		     : Database01
ScanId			             : myScan
TriggerType		             : OnDemand
State			             : Fail
StartTime			         : 6/11/2018 1:57:27 PM
EndTime			             : 6/11/2018 1:57:31 PM
Errors			             : {}
ScanResultsLocationPath	     : https://myaccount.blob.core.windows.net/vulnerability-assessment
                                scans/ManagedInstance01/Database01/scan_myScan.json
NumberOfFailedSecurityChecks : 9

Example 2: Starts a vulnerability assessment scan without a specific scan ID

Start-AzSqlInstanceDatabaseVulnerabilityAssessmentScan `
            -ResourceGroupName "ResourceGroup01" `
            -InstanceName "ManagedInstance01" `
            -DatabaseName "Database01"

ResourceGroupName	         : ResourceGroup01
InstanceName		     : ManagedInstance01
DatabaseName		     : Database01
ScanId			             : 20180611_135726
TriggerType		             : OnDemand
State			             : Fail
StartTime			         : 6/11/2018 1:57:27 PM
EndTime			             : 6/11/2018 1:57:31 PM
Errors			             : {}
ScanResultsLocationPath	     : https://myaccount.blob.core.windows.net/vulnerability-assessment
                                scans/ManagedInstance01/Database01/scan_myScan.json
NumberOfFailedSecurityChecks : 9

This command generates a scan ID in the format of "yyyyMMdd_HHmmss" from the UTC date time.

Example 3: Starts a vulnerability assessment scan in the background

$scanJob = Start-AzSqlInstanceDatabaseVulnerabilityAssessmentScan `
            -ResourceGroupName "ResourceGroup01" `
            -InstanceName "ManagedInstance01" `
            -DatabaseName "Database01" `
            -ScanId "myScan" `
            -AsJob
$scanJob | Wait-Job
$scanJob | Receive-Job

ResourceGroupName	         : ResourceGroup01
InstanceName		     : ManagedInstance01
DatabaseName		     : Database01
ScanId			             : myScan
TriggerType		             : OnDemand
State			             : Fail
StartTime			         : 6/11/2018 1:57:27 PM
EndTime			             : 6/11/2018 1:57:31 PM
Errors			             : {}
ScanResultsLocationPath	     : https://myaccount.blob.core.windows.net/vulnerability-assessment
                                scans/ManagedInstance01/Database01/scan_myScan.json
NumberOfFailedSecurityChecks : 9

Example 4: Starts a vulnerability assessment scan with a managed database object

Get-AzSqlInstanceDatabase `
            -ResourceGroupName "ResourceGroup01" `
            -InstanceName "ManagedInstance01" `
            -Name "Database01" `
            | Start-AzSqlInstanceDatabaseVulnerabilityAssessmentScan

ResourceGroupName	         : ResourceGroup01
InstanceName		     : ManagedInstance01
DatabaseName		     : Database01
ScanId			             : 20180611_135726
TriggerType		             : OnDemand
State			             : Fail
StartTime			         : 6/11/2018 1:57:27 PM
EndTime			             : 6/11/2018 1:57:31 PM
Errors			             : {}
ScanResultsLocationPath	     : https://myaccount.blob.core.windows.net/vulnerability-assessment
                                scans/ManagedInstance01/Database01/scan_myScan.json
NumberOfFailedSecurityChecks : 9

Example 5: Starts a vulnerability assessment scan on all the databases under a managed instance

Get-AzSqlInstanceDatabase `
            -ResourceGroupName "ResourceGroup01" `
            -InstanceName "ManagedInstance01" `
            | Where-Object {$_.Name -ne "master"}  `
            | Start-AzSqlInstanceDatabaseVulnerabilityAssessmentScan

ResourceGroupName	         : ResourceGroup01
InstanceName		     : ManagedInstance01
DatabaseName		     : Database01
ScanId			             : 20180611_135726
TriggerType		             : OnDemand
State			             : Fail
StartTime			         : 6/11/2018 1:57:27 PM
EndTime			             : 6/11/2018 1:57:31 PM
Errors			             : {}
ScanResultsLocationPath	     : https://myaccount.blob.core.windows.net/vulnerability-assessment
                                scans/ManagedInstance01/Database01/scan_myScan.json
NumberOfFailedSecurityChecks : 9


ResourceGroupName	         : ResourceGroup01
InstanceName		     : ManagedInstance01
DatabaseName		     : Database02
ScanId			             : 20180611_135726
TriggerType		             : OnDemand
State			             : Fail
StartTime			         : 6/11/2018 1:57:27 PM
EndTime			             : 6/11/2018 1:57:31 PM
Errors			             : {}
ScanResultsLocationPath	     : https://myaccount.blob.core.windows.net/vulnerability-assessment
                                scans/ManagedInstance01/Database02/scan_myScan.json
NumberOfFailedSecurityChecks : 9

Parameters

-AsJob

Run cmdlet in the background

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

Prompts you for confirmation before running the cmdlet.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DatabaseName

SQL Managed Database name.

Type:String
Position:2
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-DefaultProfile

The credentials, account, tenant, and subscription used for communication with Azure.

Type:IAzureContextContainer
Aliases:AzContext, AzureRmContext, AzureCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

The managed database object to get Vulnerability Assessment settings for

Type:AzureSqlManagedDatabaseModel
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-InstanceName

SQL Managed Instance name.

Type:String
Position:1
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-ResourceGroupName

The name of the resource group.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-ScanId

Specifies the scan ID.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-WhatIf

Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Inputs

AzureSqlManagedDatabaseModel

String

Outputs

ManagedDatabaseVulnerabilityAssessmentScanRecordModel