azureblog.co.uk
← cd ~/roles
// roles/azure · databases

SQL Security ManagerAzure built-in role

Lets you manage the security-related policies of SQL servers and databases, but not access to them.

Role ID056cd41c-7e88-42e1-933e-88ba6a50c9c3
CategoryDatabases
Actions65
Data actions0

What it can do

PermissionWhat it allows
Microsoft.Authorization/*/readAny read operation on anything under Microsoft.Authorization
Microsoft.Insights/alertRules/*Every operation under Microsoft.Insights/alertRules
Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/actionJoins resource such as storage account or SQL database to a subnet. Not alertable.
Microsoft.ResourceHealth/availabilityStatuses/readGets the availability statuses for all resources in the specified scope
Microsoft.Resources/deployments/*Every operation under Microsoft.Resources/deployments
Microsoft.Resources/subscriptions/resourceGroups/readGets or lists resource groups.
Microsoft.Sql/locations/administratorAzureAsyncOperation/readGets the Managed instance azure async administrator operations result.
Microsoft.Sql/managedInstances/advancedThreatProtectionSettings/readRetrieve a list of managed instance Advanced Threat Protection settings configured for a given instance
Microsoft.Sql/managedInstances/advancedThreatProtectionSettings/writeChange the managed instance Advanced Threat Protection settings for a given managed instance
Microsoft.Sql/managedInstances/databases/advancedThreatProtectionSettings/readRetrieve a list of the managed database Advanced Threat Protection settings configured for a given managed database
Microsoft.Sql/managedInstances/databases/advancedThreatProtectionSettings/writeChange the database Advanced Threat Protection settings for a given managed database
Microsoft.Sql/managedInstances/databases/currentSensitivityLabels/*Every operation under Microsoft.Sql/managedInstances/databases/currentSensitivityLabels
Microsoft.Sql/managedInstances/databases/recommendedSensitivityLabels/*Every operation under Microsoft.Sql/managedInstances/databases/recommendedSensitivityLabels
Microsoft.Sql/managedInstances/databases/schemas/tables/columns/sensitivityLabels/*Every operation under Microsoft.Sql/managedInstances/databases/schemas/tables/columns/sensitivityLabels
Microsoft.Sql/managedInstances/databases/securityAlertPolicies/*Every operation under Microsoft.Sql/managedInstances/databases/securityAlertPolicies
Microsoft.Sql/managedInstances/databases/sensitivityLabels/*Every operation under Microsoft.Sql/managedInstances/databases/sensitivityLabels
Microsoft.Sql/managedInstances/databases/vulnerabilityAssessments/*Every operation under Microsoft.Sql/managedInstances/databases/vulnerabilityAssessments
Microsoft.Sql/servers/advancedThreatProtectionSettings/readRetrieve a list of server Advanced Threat Protection settings configured for a given server
Microsoft.Sql/servers/advancedThreatProtectionSettings/writeChange the server Advanced Threat Protection settings for a given server
Microsoft.Sql/managedInstances/securityAlertPolicies/*Every operation under Microsoft.Sql/managedInstances/securityAlertPolicies
Microsoft.Sql/managedInstances/databases/transparentDataEncryption/*Every operation under Microsoft.Sql/managedInstances/databases/transparentDataEncryption
Microsoft.Sql/managedInstances/vulnerabilityAssessments/*Every operation under Microsoft.Sql/managedInstances/vulnerabilityAssessments
Microsoft.Sql/managedInstances/serverConfigurationOptions/readGets properties for the specified Azure SQL Managed Instance Server Configuration Option.
Microsoft.Sql/managedInstances/serverConfigurationOptions/writeUpdates Azure SQL Managed Instance's Server Configuration Option properties for the specified instance.
Microsoft.Sql/locations/serverConfigurationOptionAzureAsyncOperation/readGets the status of Azure SQL Managed Instance Server Configuration Option Azure async operation.
Microsoft.Sql/servers/auditingSettings/*Every operation under Microsoft.Sql/servers/auditingSettings
Microsoft.Sql/servers/extendedAuditingSettings/*Every operation under Microsoft.Sql/servers/extendedAuditingSettings
Microsoft.Sql/servers/databases/advancedThreatProtectionSettings/readRetrieve a list of database Advanced Threat Protection settings configured for a given database
Microsoft.Sql/servers/databases/advancedThreatProtectionSettings/writeChange the database Advanced Threat Protection settings for a given database
Microsoft.Sql/servers/databases/auditingSettings/*Every operation under Microsoft.Sql/servers/databases/auditingSettings
Microsoft.Sql/servers/databases/auditRecords/readRetrieve the database blob audit records
Microsoft.Sql/servers/databases/currentSensitivityLabels/*Every operation under Microsoft.Sql/servers/databases/currentSensitivityLabels
Microsoft.Sql/servers/databases/dataMaskingPolicies/*Every operation under Microsoft.Sql/servers/databases/dataMaskingPolicies
Microsoft.Sql/servers/databases/extendedAuditingSettings/readRetrieve details of the extended blob auditing policy configured on a given database
Microsoft.Sql/servers/databases/readReturn the list of databases or gets the properties for the specified database.
Microsoft.Sql/servers/databases/recommendedSensitivityLabels/*Every operation under Microsoft.Sql/servers/databases/recommendedSensitivityLabels
Microsoft.Sql/servers/databases/schemas/readGet a database schema.
Microsoft.Sql/servers/databases/schemas/tables/columns/readGet a database column.
Microsoft.Sql/servers/databases/schemas/tables/columns/sensitivityLabels/*Every operation under Microsoft.Sql/servers/databases/schemas/tables/columns/sensitivityLabels
Microsoft.Sql/servers/databases/schemas/tables/readGet a database table.
Microsoft.Sql/servers/databases/securityAlertPolicies/*Every operation under Microsoft.Sql/servers/databases/securityAlertPolicies
Microsoft.Sql/servers/databases/securityMetrics/*Every operation under Microsoft.Sql/servers/databases/securityMetrics
Microsoft.Sql/servers/databases/sensitivityLabels/*Every operation under Microsoft.Sql/servers/databases/sensitivityLabels
Microsoft.Sql/servers/databases/transparentDataEncryption/*Every operation under Microsoft.Sql/servers/databases/transparentDataEncryption
Microsoft.Sql/servers/databases/sqlvulnerabilityAssessments/*Every operation under Microsoft.Sql/servers/databases/sqlvulnerabilityAssessments
Microsoft.Sql/servers/databases/vulnerabilityAssessments/*Every operation under Microsoft.Sql/servers/databases/vulnerabilityAssessments
Microsoft.Sql/servers/databases/vulnerabilityAssessmentScans/*Every operation under Microsoft.Sql/servers/databases/vulnerabilityAssessmentScans
Microsoft.Sql/servers/databases/vulnerabilityAssessmentSettings/*Every operation under Microsoft.Sql/servers/databases/vulnerabilityAssessmentSettings
Microsoft.Sql/servers/devOpsAuditingSettings/*Every operation under Microsoft.Sql/servers/devOpsAuditingSettings
Microsoft.Sql/servers/firewallRules/*Every operation under Microsoft.Sql/servers/firewallRules
Microsoft.Sql/servers/readReturn the list of servers or gets the properties for the specified server.
Microsoft.Sql/servers/securityAlertPolicies/*Every operation under Microsoft.Sql/servers/securityAlertPolicies
Microsoft.Sql/servers/sqlvulnerabilityAssessments/*Every operation under Microsoft.Sql/servers/sqlvulnerabilityAssessments
Microsoft.Sql/servers/vulnerabilityAssessments/*Every operation under Microsoft.Sql/servers/vulnerabilityAssessments
Microsoft.Support/*Every operation under Microsoft.Support
Microsoft.Sql/servers/azureADOnlyAuthentications/*Every operation under Microsoft.Sql/servers/azureADOnlyAuthentications
Microsoft.Sql/managedInstances/readReturn the list of managed instances or gets the properties for the specified managed instance.
Microsoft.Sql/managedInstances/azureADOnlyAuthentications/*Every operation under Microsoft.Sql/managedInstances/azureADOnlyAuthentications
Microsoft.Security/sqlVulnerabilityAssessments/*Every operation under Microsoft.Security/sqlVulnerabilityAssessments
Microsoft.Sql/managedInstances/administrators/readGets a list of managed instance administrators.
Microsoft.Sql/servers/administrators/readGets a specific Azure Active Directory administrator object
Microsoft.Sql/servers/databases/ledgerDigestUploads/*Every operation under Microsoft.Sql/servers/databases/ledgerDigestUploads
Microsoft.Sql/locations/ledgerDigestUploadsAzureAsyncOperation/readGets in-progress operations of ledger digest upload settings
Microsoft.Sql/locations/ledgerDigestUploadsOperationResults/readGets in-progress operations of ledger digest upload settings
Microsoft.Sql/servers/externalPolicyBasedAuthorizations/*Every operation under Microsoft.Sql/servers/externalPolicyBasedAuthorizations

Assign it

Scope it as tightly as you can: a resource or resource group rather than the whole subscription.

azure cli
az role assignment create \
  --assignee "jane.doe@contoso.com" \
  --role "SQL Security Manager" \
  --scope "/subscriptions/<subscription id>/resourceGroups/<resource group>"
powershell3 lines
New-AzRoleAssignment -SignInName "jane.doe@contoso.com" `
  -RoleDefinitionName "SQL Security Manager" `
  -Scope "/subscriptions/<subscription id>/resourceGroups/<resource group>"
bicep7 lines
resource assignment 'Microsoft.Authorization/roleAssignments@2022-04-01' = {
  name: guid(resourceGroup().id, principalId, '056cd41c-7e88-42e1-933e-88ba6a50c9c3')
  properties: {
    roleDefinitionId: subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '056cd41c-7e88-42e1-933e-88ba6a50c9c3')
    principalId: principalId
  }
}

Who already has it?

kql · azure resource graph
authorizationresources
| where type == "microsoft.authorization/roleassignments"
| where tostring(properties.roleDefinitionId) endswith "056cd41c-7e88-42e1-933e-88ba6a50c9c3"
| project principalId = tostring(properties.principalId), principalType = tostring(properties.principalType), scope = tostring(properties.scope)

Other databases roles

Find the smallest role for a task →