Skip to content

Commit c6550a0

Browse files
authored
Merge pull request Azure#11204 from Azure/DenyPublicAccess
Add PublicNetworkAccess to New-AzSqlServer and Set-AzSqlServer
2 parents 8fdd7ed + 00c51e8 commit c6550a0

File tree

55 files changed

+13432
-90898
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+13432
-90898
lines changed

src/Network/Network/Network.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
<ItemGroup>
1515
<PackageReference Include="AutoMapper" Version="6.2.2" />
1616
<PackageReference Include="Microsoft.Azure.Management.Network" Version="19.18.0-preview" />
17-
<PackageReference Include="Microsoft.Azure.Management.Sql" Version="1.37.0-preview" />
17+
<PackageReference Include="Microsoft.Azure.Management.Sql" Version="1.38.0-preview" />
1818
</ItemGroup>
1919

2020
<ItemGroup>

src/Sql/Sql.Test/ScenarioTests/AdvancedDataSecurityTests.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@ protected override void SetupManagementClients(RestTestFramework.MockContext con
3232

3333
public AdvancedDataSecurityTests(ITestOutputHelper output) : base(output)
3434
{
35+
base.resourceTypesToIgnoreApiVersion = new string[] {
36+
"Microsoft.Sql/servers"
37+
};
3538
}
3639

3740
[Fact]

src/Sql/Sql.Test/ScenarioTests/AdvisorTests.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ public class AdvisorTests : SqlTestsBase
2323
{
2424
public AdvisorTests(ITestOutputHelper output) : base(output)
2525
{
26+
base.resourceTypesToIgnoreApiVersion = new string[] {
27+
"Microsoft.Sql/servers"
28+
};
2629
}
2730

2831
#region Server Advisor Tests

src/Sql/Sql.Test/ScenarioTests/AuditTests.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,9 @@ protected override void SetupManagementClients(RestTestFramework.MockContext con
3838

3939
public AuditTests(ITestOutputHelper output) : base(output)
4040
{
41+
base.resourceTypesToIgnoreApiVersion = new string[] {
42+
"Microsoft.Sql/servers"
43+
};
4144
}
4245

4346
[Fact]

src/Sql/Sql.Test/ScenarioTests/DataClassificationTests.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@ public class DataClassificationTests : SqlTestsBase
2424
public DataClassificationTests(ITestOutputHelper output) : base(output)
2525
{
2626
base.resourceTypesToIgnoreApiVersion = new string[] {
27-
"Microsoft.Sql/managedInstances"
27+
"Microsoft.Sql/managedInstances",
28+
"Microsoft.Sql/servers"
2829
};
2930
}
3031

src/Sql/Sql.Test/ScenarioTests/DataMaskingTests.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@ protected override void SetupManagementClients(RestTestFramework.MockContext con
3131

3232
public DataMaskingTests(ITestOutputHelper output) : base(output)
3333
{
34+
base.resourceTypesToIgnoreApiVersion = new string[] {
35+
"Microsoft.Sql/servers"
36+
};
3437
}
3538

3639
[Fact]

src/Sql/Sql.Test/ScenarioTests/DataSyncTests.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@ public class DataSyncTests : SqlTestsBase
2525
public DataSyncTests(ITestOutputHelper output) : base(output)
2626
{
2727
XunitTracingInterceptor.AddToContext(new XunitTracingInterceptor(output));
28+
29+
base.resourceTypesToIgnoreApiVersion = new string[] {
30+
"Microsoft.Sql/servers"
31+
};
2832
}
2933

3034
[Fact]

src/Sql/Sql.Test/ScenarioTests/DatabaseActivationTests.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ public class DatabaseActivationTests : SqlTestsBase
2323
{
2424
public DatabaseActivationTests(ITestOutputHelper output) : base(output)
2525
{
26+
base.resourceTypesToIgnoreApiVersion = new string[] {
27+
"Microsoft.Sql/servers"
28+
};
2629
}
2730

2831
[Fact]

src/Sql/Sql.Test/ScenarioTests/DatabaseBackupStretchTests.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@ public class DatabaseBackupStretchTests : SqlTestsBase
2424
{
2525
public DatabaseBackupStretchTests(ITestOutputHelper output) : base(output)
2626
{
27+
base.resourceTypesToIgnoreApiVersion = new string[] {
28+
"Microsoft.Sql/servers"
29+
};
2730
}
2831

2932
[Fact]

src/Sql/Sql.Test/ScenarioTests/DatabaseBackupTests.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@ public class DatabaseBackupTests : SqlTestsBase
2424
{
2525
public DatabaseBackupTests(ITestOutputHelper output) : base(output)
2626
{
27+
base.resourceTypesToIgnoreApiVersion = new string[] {
28+
"Microsoft.Sql/servers"
29+
};
2730
}
2831

2932
[Fact]

src/Sql/Sql.Test/ScenarioTests/DatabaseCrudStretchTests.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@ public class DatabaseCrudStretchTests : SqlTestsBase
2424
{
2525
public DatabaseCrudStretchTests(ITestOutputHelper output) : base(output)
2626
{
27+
base.resourceTypesToIgnoreApiVersion = new string[] {
28+
"Microsoft.Sql/servers"
29+
};
2730
}
2831

2932
[Fact]

src/Sql/Sql.Test/ScenarioTests/DatabaseCrudTests.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ public class DatabaseCrudTests : SqlTestsBase
2323
{
2424
public DatabaseCrudTests(ITestOutputHelper output) : base(output)
2525
{
26+
base.resourceTypesToIgnoreApiVersion = new string[] {
27+
"Microsoft.Sql/servers"
28+
};
2629
}
2730

2831
protected override void SetupManagementClients(Rest.ClientRuntime.Azure.TestFramework.MockContext context)

src/Sql/Sql.Test/ScenarioTests/DatabaseReplicationTests.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ public class DatabaseReplicationTests : SqlTestsBase
2323
{
2424
public DatabaseReplicationTests(ITestOutputHelper output) : base(output)
2525
{
26+
base.resourceTypesToIgnoreApiVersion = new string[] {
27+
"Microsoft.Sql/servers"
28+
};
2629
}
2730

2831
[Fact]

src/Sql/Sql.Test/ScenarioTests/ElasticJobAgentCrudTests.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ public class ElasticJobAgentCrudTests : SqlTestsBase
2323
{
2424
public ElasticJobAgentCrudTests(ITestOutputHelper output) : base(output)
2525
{
26+
base.resourceTypesToIgnoreApiVersion = new string[] {
27+
"Microsoft.Sql/servers"
28+
};
2629
}
2730

2831
#region Create Tests

src/Sql/Sql.Test/ScenarioTests/ElasticJobCredentialCrudTests.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ public class ElasticJobCredentialCrudTests : SqlTestsBase
2323
{
2424
public ElasticJobCredentialCrudTests(ITestOutputHelper output) : base(output)
2525
{
26+
base.resourceTypesToIgnoreApiVersion = new string[] {
27+
"Microsoft.Sql/servers"
28+
};
2629
}
2730

2831
#region Create Tests

src/Sql/Sql.Test/ScenarioTests/ElasticJobCrudTests.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ public class ElasticJobCrudTests : SqlTestsBase
2323
{
2424
public ElasticJobCrudTests(ITestOutputHelper output) : base(output)
2525
{
26+
base.resourceTypesToIgnoreApiVersion = new string[] {
27+
"Microsoft.Sql/servers"
28+
};
2629
}
2730

2831
#region Create Tests

src/Sql/Sql.Test/ScenarioTests/ElasticJobExecutionCrudTests.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ public class ElasticJobExecutionCrudTests : SqlTestsBase
2323
{
2424
public ElasticJobExecutionCrudTests(ITestOutputHelper output) : base(output)
2525
{
26+
base.resourceTypesToIgnoreApiVersion = new string[] {
27+
"Microsoft.Sql/servers"
28+
};
2629
}
2730

2831
#region Start Job Tests

src/Sql/Sql.Test/ScenarioTests/ElasticJobStepCrudTests.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ public class ElasticJobStepCrudTests : SqlTestsBase
2323
{
2424
public ElasticJobStepCrudTests(ITestOutputHelper output) : base(output)
2525
{
26+
base.resourceTypesToIgnoreApiVersion = new string[] {
27+
"Microsoft.Sql/servers"
28+
};
2629
}
2730

2831
#region Create Tests

src/Sql/Sql.Test/ScenarioTests/ElasticJobTargetCrudTests.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ public class ElasticJobTargetCrudTests : SqlTestsBase
2323
{
2424
public ElasticJobTargetCrudTests(ITestOutputHelper output) : base(output)
2525
{
26+
base.resourceTypesToIgnoreApiVersion = new string[] {
27+
"Microsoft.Sql/servers"
28+
};
2629
}
2730

2831
[Fact]

src/Sql/Sql.Test/ScenarioTests/ElasticJobTargetGroupCrudTests.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ public class ElasticJobTargetGroupCrudTests : SqlTestsBase
2323
{
2424
public ElasticJobTargetGroupCrudTests(ITestOutputHelper output) : base(output)
2525
{
26+
base.resourceTypesToIgnoreApiVersion = new string[] {
27+
"Microsoft.Sql/servers"
28+
};
2629
}
2730

2831
#region Create Tests

src/Sql/Sql.Test/ScenarioTests/ElasticPoolCrudTests.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@ public class ElasticPoolCrudTests : SqlTestsBase
2424
{
2525
public ElasticPoolCrudTests(ITestOutputHelper output) : base(output)
2626
{
27+
base.resourceTypesToIgnoreApiVersion = new string[] {
28+
"Microsoft.Sql/servers"
29+
};
2730
}
2831

2932
// Currently the test runs too long to be marked as a check-in test.

src/Sql/Sql.Test/ScenarioTests/FailoverGroupTests.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ public class FailoverGroupTests : SqlTestsBase
2323
{
2424
public FailoverGroupTests(ITestOutputHelper output) : base(output)
2525
{
26+
base.resourceTypesToIgnoreApiVersion = new string[] {
27+
"Microsoft.Sql/servers"
28+
};
2629
}
2730

2831
[Fact]

src/Sql/Sql.Test/ScenarioTests/FailoverTests.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@ public class FailoverTests : SqlTestsBase
2424
{
2525
public FailoverTests(ITestOutputHelper output) : base(output)
2626
{
27+
base.resourceTypesToIgnoreApiVersion = new string[] {
28+
"Microsoft.Sql/servers"
29+
};
2730
}
2831

2932
[Fact]

src/Sql/Sql.Test/ScenarioTests/ImportExportTests.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ public class ImportExportTests : SqlTestsBase
2323
{
2424
public ImportExportTests(ITestOutputHelper output) : base(output)
2525
{
26+
base.resourceTypesToIgnoreApiVersion = new string[] {
27+
"Microsoft.Sql/servers"
28+
};
2629
}
2730

2831

src/Sql/Sql.Test/ScenarioTests/ReadScaleCrudTests.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ public class ReadScaleCrudTests : SqlTestsBase
2323
{
2424
public ReadScaleCrudTests(ITestOutputHelper output) : base(output)
2525
{
26+
base.resourceTypesToIgnoreApiVersion = new string[] {
27+
"Microsoft.Sql/servers"
28+
};
2629
}
2730

2831
[Fact]

src/Sql/Sql.Test/ScenarioTests/ServerCommunicationLinkCrudTests.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ public class ServerCommunicationLinkCrudTests : SqlTestsBase
2323
{
2424
public ServerCommunicationLinkCrudTests(ITestOutputHelper output) : base(output)
2525
{
26+
base.resourceTypesToIgnoreApiVersion = new string[] {
27+
"Microsoft.Sql/servers"
28+
};
2629
}
2730

2831
[Fact]

src/Sql/Sql.Test/ScenarioTests/ServerCrudTests.cs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
using Microsoft.WindowsAzure.Commands.ScenarioTest;
1717
using Xunit;
1818
using Xunit.Abstractions;
19+
using RestTestFramework = Microsoft.Rest.ClientRuntime.Azure.TestFramework;
1920

2021
namespace Microsoft.Azure.Commands.Sql.Test.ScenarioTests
2122
{
@@ -73,5 +74,19 @@ public void TestServerUpdateWithoutIdentity()
7374
{
7475
RunPowerShellTest("Test-UpdateServerWithoutIdentity");
7576
}
77+
78+
[Fact]
79+
[Trait(Category.AcceptanceType, Category.CheckIn)]
80+
public void TestServerCreateAndGetWithPublicNetworkAccess()
81+
{
82+
RunPowerShellTest("Test-CreateAndGetServerWithPublicNetworkAccess");
83+
}
84+
85+
[Fact]
86+
[Trait(Category.AcceptanceType, Category.CheckIn)]
87+
public void TestServerUpdateWithPublicNetworkAccess()
88+
{
89+
RunPowerShellTest("Test-UpdateServerWithPublicNetworkAccess");
90+
}
7691
}
7792
}

src/Sql/Sql.Test/ScenarioTests/ServerCrudTests.ps1

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -253,4 +253,97 @@ function Test-UpdateServerWithoutIdentity
253253
{
254254
Remove-ResourceGroupForTest $rg
255255
}
256+
}
257+
258+
<#
259+
.SYNOPSIS
260+
Tests create server with Enabled/Disabled/null PublicNetworkAccess. Also check get server returns correct PublicNetworkAccess.
261+
#>
262+
function Test-CreateAndGetServerWithPublicNetworkAccess
263+
{
264+
# Setup
265+
$location = "westeurope"
266+
$rg = Create-ResourceGroupForTest $location
267+
268+
$serverName1 = Get-ServerName
269+
$serverName2 = Get-ServerName
270+
$serverName3 = Get-ServerName
271+
$serverLogin = "testusername"
272+
$serverPassword = "t357ingP@s5w0rd!"
273+
$credentials = new-object System.Management.Automation.PSCredential($serverLogin, ($serverPassword | ConvertTo-SecureString -asPlainText -Force))
274+
$enabled = "Enabled"
275+
$disabled = "Disabled"
276+
277+
try
278+
{
279+
# Create a server with PublicNetworkAccess Disabled
280+
$server1 = New-AzSqlServer -ResourceGroupName $rg.ResourceGroupName -ServerName $serverName1 -Location $location -SqlAdministratorCredentials $credentials -PublicNetworkAccess "Enabled"
281+
Assert-AreEqual $server1.ServerName $serverName1
282+
Assert-AreEqual $server1.PublicNetworkAccess $enabled
283+
284+
$retrievedServer1 = Get-AzSqlServer -ResourceGroupName $rg.ResourceGroupName -ServerName $server1.ServerName
285+
Assert-AreEqual $retrievedServer1.ServerName $server1.ServerName
286+
Assert-AreEqual $retrievedServer1.PublicNetworkAccess $enabled
287+
288+
# Create a server with PublicNetworkAccess Disabled
289+
$server2 = New-AzSqlServer -ResourceGroupName $rg.ResourceGroupName -ServerName $serverName2 -Location $location -SqlAdministratorCredentials $credentials -PublicNetworkAccess "Disabled"
290+
Assert-AreEqual $server2.ServerName $serverName2
291+
Assert-AreEqual $server2.PublicNetworkAccess $disabled
292+
293+
# Create a server with PublicNetworkAccess null (should default to Enabled)
294+
$server3 = New-AzSqlServer -ResourceGroupName $rg.ResourceGroupName -ServerName $serverName3 -Location $location -SqlAdministratorCredentials $credentials
295+
Assert-AreEqual $server3.ServerName $serverName3
296+
Assert-AreEqual $server3.PublicNetworkAccess $enabled
297+
}
298+
finally
299+
{
300+
Remove-ResourceGroupForTest $rg
301+
}
302+
}
303+
304+
<#
305+
.SYNOPSIS
306+
Tests update PublicNetworkAccess to Enabled/Disabled/null on server
307+
#>
308+
function Test-UpdateServerWithPublicNetworkAccess
309+
{
310+
# Setup
311+
$location = "westeurope"
312+
$rg = Create-ResourceGroupForTest $location
313+
314+
$serverName = Get-ServerName
315+
$serverLogin = "testusername"
316+
$serverPassword = "t357ingP@s5w0rd!"
317+
$secureString = ConvertTo-SecureString $serverPassword -AsPlainText -Force
318+
$credentials = new-object System.Management.Automation.PSCredential($serverLogin, ($serverPassword | ConvertTo-SecureString -asPlainText -Force))
319+
$enabled = "Enabled"
320+
$disabled = "Disabled"
321+
322+
try
323+
{
324+
# Create a server with PublicNetworkAccess Disabled
325+
$server = New-AzSqlServer -ResourceGroupName $rg.ResourceGroupName -ServerName $serverName -Location $location -SqlAdministratorCredentials $credentials
326+
Assert-AreEqual $server.ServerName $serverName
327+
Assert-AreEqual $server.PublicNetworkAccess $enabled
328+
329+
# Update server with PublicNetworkAccess Disabled
330+
$server = Set-AzSqlServer -ResourceGroupName $rg.ResourceGroupName -ServerName $serverName -SqlAdministratorPassword $secureString -PublicNetworkAccess "Disabled"
331+
Assert-AreEqual $server.ServerName $serverName
332+
Assert-AreEqual $server.PublicNetworkAccess $disabled
333+
334+
# Update server with PublicNetworkAccess null (should still be Disabled)
335+
$server = Set-AzSqlServer -ResourceGroupName $rg.ResourceGroupName -ServerName $serverName -SqlAdministratorPassword $secureString -AssignIdentity
336+
Assert-AreEqual $server.ServerName $serverName
337+
Assert-AreEqual $server.Identity.Type SystemAssigned
338+
Assert-AreEqual $server.PublicNetworkAccess $disabled
339+
340+
# Update server with PublicNetworkAccess Enabled
341+
$server = Set-AzSqlServer -ResourceGroupName $rg.ResourceGroupName -ServerName $serverName -SqlAdministratorPassword $secureString -PublicNetworkAccess "Enabled"
342+
Assert-AreEqual $server.ServerName $serverName
343+
Assert-AreEqual $server.PublicNetworkAccess $enabled
344+
}
345+
finally
346+
{
347+
Remove-ResourceGroupForTest $rg
348+
}
256349
}

src/Sql/Sql.Test/ScenarioTests/ServerDnsAliasTests.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ public class ServerDnsAliasTests : SqlTestsBase
2323
{
2424
public ServerDnsAliasTests(ITestOutputHelper output) : base(output)
2525
{
26+
base.resourceTypesToIgnoreApiVersion = new string[] {
27+
"Microsoft.Sql/servers"
28+
};
2629
}
2730

2831
[Fact]

0 commit comments

Comments
 (0)