@@ -156,14 +156,11 @@ function Test-DatabaseUpdatePolicyWithEventTypes
156
156
Assert-AreEqual $policy.EventType.Length 15
157
157
158
158
# Test
159
- Set-AzureSqlDatabaseAuditingPolicy - ResourceGroupName $params.rgname - ServerName $params.serverName - DatabaseName $params.databaseName - StorageAccountName $params.storageAccount - EventType " PlainSQL_Success" , " ParameterizedSQL_Success" , " ParameterizedSQL_Failure" , " DataAccess " , " DataChanges " , " RevokePermissions "
159
+ Set-AzureSqlDatabaseAuditingPolicy - ResourceGroupName $params.rgname - ServerName $params.serverName - DatabaseName $params.databaseName - StorageAccountName $params.storageAccount - EventType " PlainSQL_Success" , " ParameterizedSQL_Success" , " ParameterizedSQL_Failure"
160
160
$policy = Get-AzureSqlDatabaseAuditingPolicy - ResourceGroupName $params.rgname - ServerName $params.serverName - DatabaseName $params.databaseName
161
161
162
162
# Assert
163
- Assert-AreEqual $policy.EventType.Length 6
164
- Assert-True {$policy.EventType.Contains ([Microsoft.Azure.Commands.Sql.Security.Model.AuditEventType ]::DataAccess)}
165
- Assert-True {$policy.EventType.Contains ([Microsoft.Azure.Commands.Sql.Security.Model.AuditEventType ]::DataChanges)}
166
- Assert-True {$policy.EventType.Contains ([Microsoft.Azure.Commands.Sql.Security.Model.AuditEventType ]::RevokePermissions)}
163
+ Assert-AreEqual $policy.EventType.Length 3
167
164
Assert-True {$policy.EventType.Contains ([Microsoft.Azure.Commands.Sql.Security.Model.AuditEventType ]::PlainSQL_Success)}
168
165
Assert-True {$policy.EventType.Contains ([Microsoft.Azure.Commands.Sql.Security.Model.AuditEventType ]::ParameterizedSQL_Success)}
169
166
Assert-True {$policy.EventType.Contains ([Microsoft.Azure.Commands.Sql.Security.Model.AuditEventType ]::ParameterizedSQL_Failure)}
@@ -203,18 +200,16 @@ function Test-ServerUpdatePolicyWithEventTypes
203
200
Assert-AreEqual $policy.EventType.Length 15
204
201
205
202
# Test
206
- Set-AzureSqlDatabaseServerAuditingPolicy - ResourceGroupName $params.rgname - ServerName $params.serverName - StorageAccountName $params.storageAccount - EventType " DataAccess " , " DataChanges " , " RevokePermissions " , " PlainSQL_Success" , " ParameterizedSQL_Success" , " ParameterizedSQL_Failure"
203
+ Set-AzureSqlDatabaseServerAuditingPolicy - ResourceGroupName $params.rgname - ServerName $params.serverName - StorageAccountName $params.storageAccount - EventType " PlainSQL_Success" , " ParameterizedSQL_Success" , " ParameterizedSQL_Failure"
207
204
$policy = Get-AzureSqlDatabaseServerAuditingPolicy - ResourceGroupName $params.rgname - ServerName $params.serverName
208
205
209
206
# Assert
210
- Assert-AreEqual $policy.EventType.Length 6
211
- Assert-True {$policy.EventType.Contains ([Microsoft.Azure.Commands.Sql.Security.Model.AuditEventType ]::DataAccess)}
212
- Assert-True {$policy.EventType.Contains ([Microsoft.Azure.Commands.Sql.Security.Model.AuditEventType ]::DataChanges)}
213
- Assert-True {$policy.EventType.Contains ([Microsoft.Azure.Commands.Sql.Security.Model.AuditEventType ]::RevokePermissions)}
207
+ Assert-AreEqual $policy.EventType.Length 3
214
208
Assert-True {$policy.EventType.Contains ([Microsoft.Azure.Commands.Sql.Security.Model.AuditEventType ]::PlainSQL_Success)}
215
209
Assert-True {$policy.EventType.Contains ([Microsoft.Azure.Commands.Sql.Security.Model.AuditEventType ]::ParameterizedSQL_Success)}
216
210
Assert-True {$policy.EventType.Contains ([Microsoft.Azure.Commands.Sql.Security.Model.AuditEventType ]::ParameterizedSQL_Failure)}
217
211
212
+
218
213
# Test
219
214
Set-AzureSqlDatabaseServerAuditingPolicy - ResourceGroupName $params.rgname - ServerName $params.serverName - StorageAccountName $params.storageAccount - EventType " None"
220
215
$policy = Get-AzureSqlDatabaseServerAuditingPolicy - ResourceGroupName $params.rgname - ServerName $params.serverName
@@ -276,6 +271,10 @@ function Test-DatabaseUpdatePolicyWithEventTypeShortcuts
276
271
Assert-Throws {Set-AzureSqlDatabaseAuditingPolicy - ResourceGroupName $params.rgname - ServerName $params.serverName - DatabaseName $params.databaseName - StorageAccountName $params.storageAccount - EventType " None" , " All" }
277
272
Assert-Throws {Set-AzureSqlDatabaseAuditingPolicy - ResourceGroupName $params.rgname - ServerName $params.serverName - DatabaseName $params.databaseName - StorageAccountName $params.storageAccount - EventType " PlainSQL_Success" , " All" }
278
273
Assert-Throws {Set-AzureSqlDatabaseAuditingPolicy - ResourceGroupName $params.rgname - ServerName $params.serverName - DatabaseName $params.databaseName - StorageAccountName $params.storageAccount - EventType " PlainSQL_Success" , " None" }
274
+
275
+ # Test - If the event types includes new events and deprecated events we throw error
276
+ Assert-Throws {Set-AzureSqlDatabaseServerAuditingPolicy - ResourceGroupName $params.rgname - ServerName $params.serverName - StorageAccountName $params.storageAccount - EventType " PlainSQL_Success" , " DataAccess" }
277
+
279
278
}
280
279
finally
281
280
{
@@ -331,6 +330,9 @@ function Test-ServerUpdatePolicyWithEventTypeShortcuts
331
330
Assert-Throws {Set-AzureSqlDatabaseServerAuditingPolicy - ResourceGroupName $params.rgname - ServerName $params.serverName - StorageAccountName $params.storageAccount - EventType " None" , " All" }
332
331
Assert-Throws {Set-AzureSqlDatabaseServerAuditingPolicy - ResourceGroupName $params.rgname - ServerName $params.serverName - StorageAccountName $params.storageAccount - EventType " PlainSQL_Success" , " All" }
333
332
Assert-Throws {Set-AzureSqlDatabaseServerAuditingPolicy - ResourceGroupName $params.rgname - ServerName $params.serverName - StorageAccountName $params.storageAccount - EventType " PlainSQL_Success" , " None" }
333
+
334
+ # Test - If the event types includes new events and deprecated events we throw error
335
+ Assert-Throws {Set-AzureSqlDatabaseServerAuditingPolicy - ResourceGroupName $params.rgname - ServerName $params.serverName - StorageAccountName $params.storageAccount - EventType " PlainSQL_Success" , " DataAccess" }
334
336
}
335
337
finally
336
338
{
@@ -731,4 +733,208 @@ function Test-DatabaseStorageKeyRotation
731
733
# Cleanup
732
734
Remove-TestEnvironment $testSuffix
733
735
}
734
- }
736
+ }
737
+ <#
738
+ . SYNOPSIS
739
+ Tests that when setting the retention values of server policy, that values is later fetched properly.
740
+ #>
741
+ function Test-ServerUpdatePolicyWithRetention
742
+ {
743
+ # Setup
744
+ $testSuffix = 202
745
+ Create- TestEnvironment $testSuffix
746
+ $params = Get-SqlAuditingTestEnvironmentParameters $testSuffix
747
+
748
+ try
749
+ {
750
+ # Test
751
+ $retentionTableIdentifier = " retentionTableIdentifier" + $testSuffix ;
752
+ Set-AzureSqlDatabaseServerAuditingPolicy - ResourceGroupName $params.rgname - ServerName $params.serverName - StorageAccountName $params.storageAccount - RetentionInDays 10 - TableIdentifier $retentionTableIdentifier ;
753
+ $policy = Get-AzureSqlDatabaseServerAuditingPolicy - ResourceGroupName $params.rgname - ServerName $params.serverName
754
+
755
+ # Assert
756
+ Assert-AreEqual $policy.RetentionInDays 10
757
+ Assert-AreEqual $policy.TableIdentifier $retentionTableIdentifier
758
+ }
759
+ finally
760
+ {
761
+ # Cleanup
762
+ Remove-TestEnvironment $testSuffix
763
+ }
764
+ }
765
+
766
+ <#
767
+ . SYNOPSIS
768
+ Tests that when setting the retention values of database policy, that values is later fetched properly.
769
+ #>
770
+ function Test-DatabaseUpdatePolicyWithRetention
771
+ {
772
+ # Setup
773
+ $testSuffix = 203
774
+ Create- TestEnvironment $testSuffix
775
+ $params = Get-SqlAuditingTestEnvironmentParameters $testSuffix
776
+
777
+ try
778
+ {
779
+ # Test
780
+ $retentionTableIdentifier = " retentionTableIdentifier" + $testSuffix ;
781
+ Set-AzureSqlDatabaseAuditingPolicy - ResourceGroupName $params.rgname - ServerName $params.serverName - DatabaseName $params.databaseName - StorageAccountName $params.storageAccount - RetentionInDays 10 - TableIdentifier $retentionTableIdentifier ;
782
+ $policy = Get-AzureSqlDatabaseAuditingPolicy - ResourceGroupName $params.rgname - ServerName $params.serverName - DatabaseName $params.databaseName
783
+
784
+ # Assert
785
+ Assert-AreEqual $policy.RetentionInDays 10
786
+ Assert-AreEqual $policy.TableIdentifier $retentionTableIdentifier
787
+ }
788
+ finally
789
+ {
790
+ # Cleanup
791
+ Remove-TestEnvironment $testSuffix
792
+ }
793
+ }
794
+
795
+ <#
796
+ . SYNOPSIS
797
+ Tests that after setting the retention values to a server auditing policy, this value is used on next policy set operations as default.
798
+ #>
799
+ function Test-ServerRetentionKeepProperties
800
+ {
801
+ # Setup
802
+ $testSuffix = 204
803
+ Create- TestEnvironment $testSuffix
804
+ $params = Get-SqlAuditingTestEnvironmentParameters $testSuffix
805
+
806
+ try
807
+ {
808
+ # Test
809
+ $retentionTableIdentifier = " retentionTableIdentifier" + $testSuffix ;
810
+ Set-AzureSqlDatabaseServerAuditingPolicy - ResourceGroupName $params.rgname - ServerName $params.serverName - StorageAccountName $params.storageAccount - RetentionInDays 10 - TableIdentifier $retentionTableIdentifier ;
811
+
812
+ Set-AzureSqlDatabaseServerAuditingPolicy - ResourceGroupName $params.rgname - ServerName $params.serverName - StorageAccountName $params.storageAccount - RetentionInDays 11 ;
813
+ $policy = Get-AzureSqlDatabaseServerAuditingPolicy - ResourceGroupName $params.rgname - ServerName $params.serverName
814
+
815
+ # Assert
816
+ Assert-AreEqual $policy.RetentionInDays 11
817
+ Assert-AreEqual $policy.TableIdentifier $retentionTableIdentifier
818
+
819
+ # Test
820
+ $retentionTableIdentifier = " retentionTableIdentifier1" + $testSuffix ;
821
+ Set-AzureSqlDatabaseServerAuditingPolicy - ResourceGroupName $params.rgname - ServerName $params.serverName - StorageAccountName $params.storageAccount - TableIdentifier $retentionTableIdentifier ;
822
+ $policy = Get-AzureSqlDatabaseServerAuditingPolicy - ResourceGroupName $params.rgname - ServerName $params.serverName
823
+
824
+ # Assert
825
+ Assert-AreEqual $policy.RetentionInDays 11
826
+ Assert-AreEqual $policy.TableIdentifier $retentionTableIdentifier
827
+ }
828
+ finally
829
+ {
830
+ # Cleanup
831
+ Remove-TestEnvironment $testSuffix
832
+ }
833
+ }
834
+
835
+ <#
836
+ . SYNOPSIS
837
+ Tests that after setting the retention values to a database auditing policy, this value is used on next policy set operations as default.
838
+ #>
839
+ function Test-DatabaseRetentionKeepProperties
840
+ {
841
+ # Setup
842
+ $testSuffix = 205
843
+ Create- TestEnvironment $testSuffix
844
+ $params = Get-SqlAuditingTestEnvironmentParameters $testSuffix
845
+
846
+ try
847
+ {
848
+ # Test
849
+ $retentionTableIdentifier = " retentionTableIdentifier" + $testSuffix ;
850
+ Set-AzureSqlDatabaseAuditingPolicy - ResourceGroupName $params.rgname - ServerName $params.serverName - DatabaseName $params.databaseName - StorageAccountName $params.storageAccount - RetentionInDays 10 - TableIdentifier $retentionTableIdentifier ;
851
+
852
+ Set-AzureSqlDatabaseAuditingPolicy - ResourceGroupName $params.rgname - ServerName $params.serverName - DatabaseName $params.databaseName - StorageAccountName $params.storageAccount - RetentionInDays 11 ;
853
+ $policy = Get-AzureSqlDatabaseAuditingPolicy - ResourceGroupName $params.rgname - ServerName $params.serverName - DatabaseName $params.databaseName
854
+
855
+ # Assert
856
+ Assert-AreEqual $policy.RetentionInDays 11
857
+ Assert-AreEqual $policy.TableIdentifier $retentionTableIdentifier
858
+
859
+ # Test
860
+ $retentionTableIdentifier = " retentionTableIdentifier1" + $testSuffix ;
861
+ Set-AzureSqlDatabaseAuditingPolicy - ResourceGroupName $params.rgname - ServerName $params.serverName - DatabaseName $params.databaseName - StorageAccountName $params.storageAccount - TableIdentifier $retentionTableIdentifier ;
862
+ $policy = Get-AzureSqlDatabaseAuditingPolicy - ResourceGroupName $params.rgname - ServerName $params.serverName - DatabaseName $params.databaseName
863
+
864
+ # Assert
865
+ Assert-AreEqual $policy.RetentionInDays 11
866
+ Assert-AreEqual $policy.TableIdentifier $retentionTableIdentifier
867
+ }
868
+ finally
869
+ {
870
+ # Cleanup
871
+ Remove-TestEnvironment $testSuffix
872
+ }
873
+ }
874
+
875
+
876
+ <#
877
+ . SYNOPSIS
878
+ Tests the case when one of the retention values is missing from the server policy.
879
+ #>
880
+ function Test-ServerRetentionMissing
881
+ {
882
+ # Setup
883
+ $testSuffix = 206
884
+ Create- TestEnvironment $testSuffix
885
+ $params = Get-SqlAuditingTestEnvironmentParameters $testSuffix
886
+
887
+ try
888
+ {
889
+ # Test - only RetentionInDays
890
+ Assert-Throws { Set-AzureSqlDatabaseServerAuditingPolicy - ResourceGroupName $params.rgname - ServerName $params.serverName - StorageAccountName $params.storageAccount - RetentionInDays 9 }
891
+
892
+
893
+ # Test - only TableIdentifier
894
+ $retentionTableIdentifier = " retentionTableIdentifier" + $testSuffix ;
895
+ Set-AzureSqlDatabaseServerAuditingPolicy - ResourceGroupName $params.rgname - ServerName $params.serverName - StorageAccountName $params.storageAccount - TableIdentifier $retentionTableIdentifier ;
896
+ $policy = Get-AzureSqlDatabaseServerAuditingPolicy - ResourceGroupName $params.rgname - ServerName $params.serverName
897
+
898
+ # Assert
899
+ Assert-AreEqual $policy.RetentionInDays 0
900
+ Assert-AreEqual $policy.TableIdentifier $retentionTableIdentifier
901
+ }
902
+ finally
903
+ {
904
+ # Cleanup
905
+ Remove-TestEnvironment $testSuffix
906
+ }
907
+ }
908
+
909
+ <#
910
+ . SYNOPSIS
911
+ Tests the case when one of the retention values is missing from the database policy.
912
+ #>
913
+ function Test-DatabaseRetentionMissing
914
+ {
915
+ # Setup
916
+ $testSuffix = 207
917
+ Create- TestEnvironment $testSuffix
918
+ $params = Get-SqlAuditingTestEnvironmentParameters $testSuffix
919
+
920
+ try
921
+ {
922
+ # Test - only RetentionInDays
923
+ Assert-Throws { Set-AzureSqlDatabaseAuditingPolicy - ResourceGroupName $params.rgname - ServerName $params.serverName - DatabaseName $params.databaseName - StorageAccountName $params.storageAccount - RetentionInDays 9 }
924
+
925
+
926
+ # Test - only TableIdentifier
927
+ $retentionTableIdentifier = " retentionTableIdentifier" + $testSuffix ;
928
+ Set-AzureSqlDatabaseAuditingPolicy - ResourceGroupName $params.rgname - ServerName $params.serverName - DatabaseName $params.databaseName - StorageAccountName $params.storageAccount - TableIdentifier $retentionTableIdentifier ;
929
+ $policy = Get-AzureSqlDatabaseAuditingPolicy - ResourceGroupName $params.rgname - ServerName $params.serverName - DatabaseName $params.databaseName
930
+
931
+ # Assert
932
+ Assert-AreEqual $policy.RetentionInDays 0
933
+ Assert-AreEqual $policy.TableIdentifier $retentionTableIdentifier
934
+ }
935
+ finally
936
+ {
937
+ # Cleanup
938
+ Remove-TestEnvironment $testSuffix
939
+ }
940
+ }
0 commit comments