forked from scriptrunner/ActionPacks
-
Notifications
You must be signed in to change notification settings - Fork 0
/
New-AzDatabase.ps1
144 lines (120 loc) · 5.37 KB
/
New-AzDatabase.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
#Requires -Version 5.0
#Requires -Modules Az.Sql
<#
.SYNOPSIS
Creates a database or an elastic database
.DESCRIPTION
.NOTES
This PowerShell script was developed and optimized for ScriptRunner. The use of the scripts requires ScriptRunner.
The customer or user is authorized to copy the script from the repository and use them in ScriptRunner.
The terms of use for ScriptRunner do not apply to this script. In particular, ScriptRunner Software GmbH assumes no liability for the function,
the use and the consequences of the use of this freely available script.
PowerShell is a product of Microsoft Corporation. ScriptRunner is a product of ScriptRunner Software GmbH.
© ScriptRunner Software GmbH
.COMPONENT
Requires Module Az.Sql
Requires Library script AzureAzLibrary.ps1
.LINK
https://github.com/scriptrunner/ActionPacks/blob/master/Azure/SQL
[sr-en] Specifies the name of the database to retrieve
[sr-de] Name der Datenbank
.Parameter ServerName
[sr-en] Specifies the name of the server to which the database is assigned
[sr-de] Name des Servers auf dem sich die Datenbank befindet
.Parameter ResourceGroupName
[sr-en] Specifies the name of the resource group to which the database server is assigned
[sr-de] Name der resource group die die Datenbank enthält
.Parameter CollationName
[sr-en] Specifies the name of the SQL database collation
[sr-de] Name der SQL-Datenbanksortierung
.Parameter Edition
[sr-en] Specifies the edition for the database
[sr-de] Edition der Datenbank
.Parameter ElasticPoolName
[sr-en] Specifies name of the elastic pool in which to move the database
[sr-de] Namen des Pools für elastische Datenbanken
.Parameter LicenseType
[sr-en] The license type for the Azure Sql database
[sr-de] Lizenztyp für die Azure Sql-Datenbank
.Parameter MaxSizeBytes
[sr-en] The maximum size of the Azure SQL Database in bytes
[sr-de] Maximale Größe der Azure SQL-Datenbank in Bytes
.Parameter ReadScale
[sr-en] The read scale option to assign to the Azure SQL Database
[sr-de] Verbindungen, deren Anwendungsabsicht in ihrer Verbindungszeichenfolge schreibgeschützt ist, an ein schreibgeschütztes sekundäres Replikat weiterleiten
.Parameter RequestedServiceObjectiveName
[sr-en] Specifies the name of the service objective to assign to the database
[sr-de] Namen des Dienstobjekts, dem der Datenbank zugewiesen werden soll
.Parameter SampleName
[sr-en] The name of the sample schema to apply when creating this database
[sr-de] Name des Beispielschemas, das beim Erstellen dieser Datenbank angewendet werden soll
.Parameter ZoneRedundant
[sr-en] The zone redundancy to associate with the Azure Sql Database
[sr-de] Zonenredundanz, die der Azure Sql-Datenbank zugeordnet werden soll
#>
param(
[Parameter(Mandatory = $true)]
[string]$DBName,
[Parameter(Mandatory = $true)]
[string]$ResourceGroupName,
[Parameter(Mandatory = $true)]
[string]$ServerName,
[string]$CollationName,
[ValidateSet('Basic','Standard','Premium','DataWarehouse','Free','Stretch','GeneralPurpose','BusinessCritical')]
[string]$Edition ,
[string]$ElasticPoolName,
[ValidateSet('BasePrice','LicenseIncluded')]
[string]$LicenseType,
[int64]$MaxSizeBytes,
[ValidateSet('Enabled','Disabled')]
[string]$ReadScale,
[string]$RequestedServiceObjectiveName,
[string]$SampleName,
[switch]$ZoneRedundant
)
Import-Module Az.Sql
try{
[string[]]$Properties = @('ResourceGroupName','ServerName','DatabaseName','Location','DatabaseId','Edition','CollationName','Status','CreationDate','Tags')
[hashtable]$cmdArgs = @{'ErrorAction' = 'Stop'
'Confirm' = $false
'ServerName' = $ServerName
'ResourceGroupName' = $ResourceGroupName
'DatabaseName' = $DBName
'ZoneRedundant' = $ZoneRedundant}
if([System.String]::IsNullOrWhiteSpace($CollationName) -eq $false){
$cmdArgs.Add('CollationName',$CollationName)
}
if([System.String]::IsNullOrWhiteSpace($Edition) -eq $false){
$cmdArgs.Add('Edition',$Edition)
}
if([System.String]::IsNullOrWhiteSpace($ElasticPoolName) -eq $false){
$cmdArgs.Add('ElasticPoolName',$ElasticPoolName)
}
if([System.String]::IsNullOrWhiteSpace($LicenseType) -eq $false){
$cmdArgs.Add('LicenseType',$LicenseType)
}
if([System.String]::IsNullOrWhiteSpace($ReadScale) -eq $false){
$cmdArgs.Add('ReadScale',$ReadScale)
}
if([System.String]::IsNullOrWhiteSpace($RequestedServiceObjectiveName) -eq $false){
$cmdArgs.Add('RequestedServiceObjectiveName',$RequestedServiceObjectiveName)
}
if([System.String]::IsNullOrWhiteSpace($SampleName) -eq $false){
$cmdArgs.Add('SampleName',$SampleName)
}
if($MaxSizeBytes -gt 0){
$cmdArgs.Add('MaxSizeBytes',$MaxSizeBytes)
}
$ret = New-AzSqlDatabase @cmdArgs | Select-Object $Properties
if($SRXEnv) {
$SRXEnv.ResultMessage = $ret
}
else{
Write-Output $ret
}
}
catch{
throw
}
finally{
}