diff --git a/src/Sql/Sql/Auditing/Services/AuditingEndpointsCommunicator.cs b/src/Sql/Sql/Auditing/Services/AuditingEndpointsCommunicator.cs index 961a874a934e..1c4996318d6a 100644 --- a/src/Sql/Sql/Auditing/Services/AuditingEndpointsCommunicator.cs +++ b/src/Sql/Sql/Auditing/Services/AuditingEndpointsCommunicator.cs @@ -223,12 +223,15 @@ public DiagnosticSettingsResource UpdateDiagnosticSettings(DiagnosticSettingsRes public Guid? AssignServerIdentityIfNotAssigned(string resourceGroupName, string serverName) { var server = GetCurrentSqlClient().Servers.Get(resourceGroupName, serverName); - if (server.Identity == null || - server.Identity.Type != ResourceIdentityType.SystemAssigned.ToString()) + if (server.Identity == null) { server.Identity = ResourceIdentityHelper.GetIdentityObjectFromType(true, ResourceIdentityType.SystemAssigned.ToString(), null, null); server = GetCurrentSqlClient().Servers.CreateOrUpdate(resourceGroupName, serverName, server); } + else if (server.Identity.Type != null && server.Identity.Type.Contains("UserAssigned")) + { + return null; + } return server.Identity.PrincipalId; } diff --git a/src/Sql/Sql/Auditing/Services/SqlAuditAdapter.cs b/src/Sql/Sql/Auditing/Services/SqlAuditAdapter.cs index 356d5a86ea36..2b14ed6c4e29 100644 --- a/src/Sql/Sql/Auditing/Services/SqlAuditAdapter.cs +++ b/src/Sql/Sql/Auditing/Services/SqlAuditAdapter.cs @@ -352,7 +352,10 @@ internal virtual void PolicizeStorageInfo(AuditModelType model, ProxyResource po if (AzureCommunicator.IsStorageAccountInVNet(model.StorageAccountResourceId) || model.UseIdentity == BoolType.True) { Guid? principalId = Communicator.AssignServerIdentityIfNotAssigned(model.ResourceGroupName, model.ServerName); - AzureCommunicator.AssignRoleForServerIdentityOnStorageIfNotAssigned(model.StorageAccountResourceId, principalId.Value, RoleAssignmentId); + if (principalId != null) + { + AzureCommunicator.AssignRoleForServerIdentityOnStorageIfNotAssigned(model.StorageAccountResourceId, principalId.Value, RoleAssignmentId); + } } else { diff --git a/src/Sql/Sql/ChangeLog.md b/src/Sql/Sql/ChangeLog.md index c1bba8b7d3e1..0bf0c849fda3 100644 --- a/src/Sql/Sql/ChangeLog.md +++ b/src/Sql/Sql/ChangeLog.md @@ -19,6 +19,7 @@ --> ## Upcoming Release * Added an optional parameter `HAReplicaCount` to `Restore-AzSqlDatabase` +* Enabled support for UserAssignedManagedIdentity in Auditing ## Version 4.2.0 * Added a parameter named `UseIdentity` for `Set-AzSqlServerAudit`, `Set-AzSqlDatabaseAudit`, `Set-AzSqlServerMSSupportAudit`