Cette section fournit les instructions sur comment créer et configurer votre base de données SQL Azure.
Création de la base de données SQL Azure
L'instance de la base de données SQL Azure doit être créée dans le portail Azure. Consultez l'article Microsoft Démarrage rapide : Créer une base de données unique pour des informations sur comment créer la base de données. Une fois que vous avez complété les instructions, vous aurez :
Le nom du serveur SQL Azure
Les informations d'identification du compte administrateur
Une règle de pare-feu au niveau du serveur pour le serveur de votre adresse IP
-- Replace <database name>, <database user>, and <password> with the ones you choose (e.g. WFGEN, wfgen_user, <YourPWD>!) -- Create SQL Login template for Azure SQL Database and Azure SQL Data Warehouse DatabaseCREATELOGIN<database user>WITHPASSWORD='<password>'GO -- Create SQL Login template for Azure SQL Database and Azure SQL Data Warehouse DatabaseCREATE USER <database user>FROMLOGIN<database user>WITHDEFAULT_SCHEMA=<databasename>GO -- Add user to the database owner roleEXEC sp_addrolemember N'db_datawriter', N'<database user>'EXEC sp_addrolemember N'db_datareader', N'<database user>'GO
Ouvrez le dossier source DISQUE:\temp\pack\Databases\MsSQLServer et exécutez le script SQL de création de base de données create.sql sur la nouvelle instance de la base de données.
Via Azure CLI
La base de données SQL Azure peut également être créée via des scripts Azure CLI (interface de ligne de commande Azure). Pour ce faire :
Copiez le script create.sql de la base de données WorkflowGen dans le dossier C:\Azure\setup\sql. Si vous souhaitez modifier le chemin, vous devez également modifier la variable $sqlScriptPath dans le script suivant.
Option A : Mode base de données autonome
Le script suivant crée l'utilisateur de la base de données (wfgen_user) dans une base de données autonome. La variable de mot de passe de l'utilisateur de la base de données SQL ($sqlUserPassword) doit être mise à jour.
✏️ Note : N'exécutez pas le script Remove my public IP si vous devez accéder à la base de données à partir de votre bureau ou si votre serveur WorkflowGen n'est pas hébergé par Azure.
Option B : Mode base de données standard
Le script suivant crée l'utilisateur de la base de données (wfgen_user) dans une base de données standard. La variable de mot de passe de l'utilisateur de la base de données SQL ($sqlUserPassword) doit être mise à jour.
✏️ Note : N'exécutez pas le script Remove my public IP si vous devez accéder à la base de données à partir de votre bureau ou si votre serveur WorkflowGen n'est pas hébergé par Azure.
Étape 2 : Configurez WorkflowGen
Ouvrez le fichier web.config de WorkflowGen et ajouter le nœud suivant sous <connectionStrings> :
Remplacez <server name> par le nom du serveur (p.ex. workflowgen.database.windows.net).
Remplacez <database name> par le nom de la base de données (p.ex. WFGEN).
Remplacez <database user> par l'utilisateur de la base de données (p.ex. wfgen_user).
Remplacez <password> par le mot de passe de l'utilisateur de la base de données (p.ex. Admin123!).
Nous recommandons fortement d'ajouter encrypt=true et trustServerCertificate=false; au connectionString pour établir une connexion sécurisée à la base de données.
# Configuration variables
$resourceGroup= "workflowgen"
$location="East US"
$sqlServer="wfgen-sql-server"
$sqlAdminUsername="wfgen_sa"
$sqlAdminPassword="<your(Strong!)password1>"
$sqlDatabase="WFGEN"
$sqlServiceObjective="Basic"
$connectionStringWithSqlAdmin = "Server=tcp:$sqlServer.database.windows.net,1433;Initial Catalog=$sqlDatabase;Persist Security Info=False;User ID=$sqlAdminUsername;Password=$sqlAdminPassword;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"
$sqlScriptPath = "C:\Azure\setup\sql"
$sqlScriptCreation = Join-Path $sqlScriptPath "create.sql"
# Create the Azure SQL Server
az sql server create `
--resource-group $resourceGroup `
--location $location `
--name $sqlServer `
--admin-user $sqlAdminUsername `
--admin-password $sqlAdminPassword
# Enable Azure internal services access
az sql server firewall-rule create `
--resource-group $resourceGroup `
--server $sqlServer `
--name AllowAzureServices `
--start-ip-address 0.0.0.0 `
--end-ip-address 0.0.0.0
# Azure SQL database creation
az sql db create `
--name $sqlDatabase `
--resource-group $resourceGroup `
--server $sqlServer `
--service-objective $sqlServiceObjective
# Allow my public IP to access the SQL Server
$myPublicIP = (Invoke-WebRequest https://itomation.ca/mypublicip).content
az sql server firewall-rule create `
--resource-group $resourceGroup `
--server $sqlServer `
--name AllowMyTempPublicIP `
--start-ip-address $myPublicIP `
--end-ip-address $myPublicIP
# Initialize the database
Invoke-Sqlcmd `
-ConnectionString $connectionStringWithSqlAdmin `
-InputFile $sqlScriptCreation
# Remove my public IP
az sql server firewall-rule delete `
--resource-group $resourceGroup `
--server $sqlServer `
--name AllowMyTempPublicIP
# Database user credentials
$sqlUserUsername = "wfgen_user"
$sqlUserPassword = "<your(Strong!)Password>"
# Allow my public IP to access the SQL Server
$myPublicIP = (Invoke-WebRequest https://itomation.ca/mypublicip).content
az sql server firewall-rule create `
--resource-group $resourceGroup `
--server $sqlServer `
--name AllowMyTempPublicIP `
--start-ip-address $myPublicIP `
--end-ip-address $myPublicIP
# Create the database user in the contained database
$queryVariables = "USERNAME=$sqlUserUsername","PASSWORD='$sqlUserPassword'"
Invoke-Sqlcmd `
-ConnectionString $connectionStringWithSqlAdmin `
-Query '
CREATE USER $(USERNAME) WITH PASSWORD = $(PASSWORD);
ALTER ROLE db_datareader ADD MEMBER $(USERNAME);
ALTER ROLE db_datawriter ADD MEMBER $(USERNAME);
' `
-Variable $queryVariables
# Remove my public IP
az sql server firewall-rule delete `
--resource-group $resourceGroup `
--server $sqlServer `
--name AllowMyTempPublicIP
# Master database connection string
$connectionStringMaster = "Server=tcp:$sqlServer.database.windows.net,1433;Persist Security Info=False;User ID=$sqlAdminUsername;Password=$sqlAdminPassword;MultipleActiveResultSets=False;Encrypt=True;"
# Database user credentials
$sqlUserUsername = "wfgen_user"
$sqlUserPassword = "<your(Strong!)Password>"
# Allow my public IP to access the SQL Server
$myPublicIP = (Invoke-WebRequest https://itomation.ca/mypublicip).content
az sql server firewall-rule create `
--resource-group $resourceGroup `
--server $sqlServer `
--name AllowMyTempPublicIP `
--start-ip-address $myPublicIP `
--end-ip-address $myPublicIP
# Create the database login in the master db
$queryVariables = "USERNAME=$sqlUserUsername","PASSWORD='$sqlUserPassword'","DATABASE=$sqlDatabase"
Invoke-Sqlcmd `
-ConnectionString $connectionStringMaster `
-Query '
CREATE LOGIN $(USERNAME) WITH PASSWORD = $(PASSWORD);
' `
-Variable $queryVariables
# Create the user in the WorkflowGen database
Invoke-Sqlcmd `
-ConnectionString $connectionStringWithSqlAdmin `
-Query '
CREATE USER $(USERNAME) FROM LOGIN $(USERNAME) WITH DEFAULT_SCHEMA = $(DATABASE);
ALTER ROLE db_datareader ADD MEMBER $(USERNAME);
ALTER ROLE db_datawriter ADD MEMBER $(USERNAME);
' `
-Variable $queryVariables
# Remove my public IP
az sql server firewall-rule delete `
--resource-group $resourceGroup `
--server $sqlServer `
--name AllowMyTempPublicIP