Configuration de la base de données SQL Azure

Aperçu

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 Création d'une base de données SQL Azure dans le portail Azure 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
  • Le nom de votre base de données SQL Azure

Étape 1 : Configurez la base de données SQL Azure

Via le portail Azure

  1. 1.
    Connectez-vous à votre instance de base de données SQL Azure depuis le compte d'administrateur que vous avez créé dans SQL Database Query Editor in Azure Portal ou dans SQL Management Studio.
  2. 2.
    Vous devez créer un compte utilisateur SQL Server avec les permissions db_datareader et db_datawriter. Voir l'article Contrôle et octroi de l'accès à la base de données, ou bien exécutez le script dans l'éditeur de requête de la base de données SQL ou dans SQL Management Studio (la base de données master doit être sélectionnée) :
    1
    -- Replace <database name>, <database user>, and <password> with the ones you choose (e.g. WFGEN, wfgen_user, <YourPWD>!)
    2
    -- Create SQL Login template for Azure SQL Database and Azure SQL Data Warehouse Database
    3
    4
    CREATE LOGIN <database user>
    5
    WITH PASSWORD = '<password>'
    6
    GO
    7
    8
    -- Create SQL Login template for Azure SQL Database and Azure SQL Data Warehouse Database
    9
    10
    CREATE USER <database user>
    11
    FROM LOGIN <database user>
    12
    WITH DEFAULT_SCHEMA = <database name>
    13
    GO
    14
    15
    -- Add user to the database owner role
    16
    EXEC sp_addrolemember N'db_datawriter', N'<database user>'
    17
    EXEC sp_addrolemember N'db_datareader', N'<database user>'
    18
    GO
    Copied!
  3. 3.
    Récupérez le script de création de base de données en téléchargeant le pack d'installation manuelle de WorkflowGen le plus récent et le décompressant dans le dossier DISQUE:\temp.
  4. 4.
    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 :
  1. 2.
    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.
Les scripts suivants créent le serveur SQL et la base de données SQL. La variable de mot de passe de l'administrateur de la base de données SQL ($sqlAdminPassword) doit être mise à jour; le nom du groupe de ressources ($resourceGroup), le niveau tarifaire ($sqlServiceObjective) et le chemin du script SQL ($sqlScriptPath) doivent également être mis à jour. (Pour plus d'informations sur le niveau tarifaire, voir https://docs.microsoft.com/fr-fr/sql/relational-databases/system-catalog-views/sys-database-service-objectives-azure-sql-database?view=azuresqldb-current.)
1
# Configuration variables
2
$resourceGroup= "workflowgen"
3
$location="East US"
4
$sqlServer="wfgen-sql-server"
5
$sqlAdminUsername="wfgen_sa"
6
$sqlAdminPassword="<your(Strong!)password1>"
7
$sqlDatabase="WFGEN"
8
$sqlServiceObjective="Basic"
9
$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;"
10
$sqlScriptPath = "C:\Azure\setup\sql"
11
$sqlScriptCreation = Join-Path $sqlScriptPath "create.sql"
12
13
# Create the Azure SQL Server
14
az sql server create `
15
--resource-group $resourceGroup `
16
--location $location `
17
--name $sqlServer `
18
--admin-user $sqlAdminUsername `
19
--admin-password $sqlAdminPassword
20
21
# Enable Azure internal services access
22
az sql server firewall-rule create `
23
--resource-group $resourceGroup `
24
--server $sqlServer `
25
--name AllowAzureServices `
26
--start-ip-address 0.0.0.0 `
27
--end-ip-address 0.0.0.0
28
# Azure SQL database creation
29
az sql db create `
30
--name $sqlDatabase `
31
--resource-group $resourceGroup `
32
--server $sqlServer `
33
--service-objective $sqlServiceObjective
34
35
# Allow my public IP to access the SQL Server
36
$myPublicIP = (Invoke-WebRequest https://itomation.ca/mypublicip).content
37
az sql server firewall-rule create `
38
--resource-group $resourceGroup `
39
--server $sqlServer `
40
--name AllowMyTempPublicIP `
41
--start-ip-address $myPublicIP `
42
--end-ip-address $myPublicIP
43
44
# Initialize the database
45
Invoke-Sqlcmd `
46
-ConnectionString $connectionStringWithSqlAdmin `
47
-InputFile $sqlScriptCreation
48
49
# Remove my public IP
50
az sql server firewall-rule delete `
51
--resource-group $resourceGroup `
52
--server $sqlServer `
53
--name AllowMyTempPublicIP
Copied!
  • 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.
    1
    # Database user credentials
    2
    $sqlUserUsername = "wfgen_user"
    3
    $sqlUserPassword = "<your(Strong!)Password>"
    4
    5
    # Allow my public IP to access the SQL Server
    6
    $myPublicIP = (Invoke-WebRequest https://itomation.ca/mypublicip).content
    7
    az sql server firewall-rule create `
    8
    --resource-group $resourceGroup `
    9
    --server $sqlServer `
    10
    --name AllowMyTempPublicIP `
    11
    --start-ip-address $myPublicIP `
    12
    --end-ip-address $myPublicIP
    13
    14
    # Create the database user in the contained database
    15
    $queryVariables = "USERNAME=$sqlUserUsername","PASSWORD='$sqlUserPassword'"
    16
    Invoke-Sqlcmd `
    17
    -ConnectionString $connectionStringWithSqlAdmin `
    18
    -Query '
    19
    CREATE USER $(USERNAME) WITH PASSWORD = $(PASSWORD);
    20
    ALTER ROLE db_datareader ADD MEMBER $(USERNAME);
    21
    ALTER ROLE db_datawriter ADD MEMBER $(USERNAME);
    22
    ' `
    23
    -Variable $queryVariables
    24
    25
    # Remove my public IP
    26
    az sql server firewall-rule delete `
    27
    --resource-group $resourceGroup `
    28
    --server $sqlServer `
    29
    --name AllowMyTempPublicIP
    Copied!
    ✏️ 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.
    1
    # Master database connection string
    2
    $connectionStringMaster = "Server=tcp:$sqlServer.database.windows.net,1433;Persist Security Info=False;User ID=$sqlAdminUsername;Password=$sqlAdminPassword;MultipleActiveResultSets=False;Encrypt=True;"
    3
    4
    # Database user credentials
    5
    $sqlUserUsername = "wfgen_user"
    6
    $sqlUserPassword = "<your(Strong!)Password>"
    7
    8
    # Allow my public IP to access the SQL Server
    9
    $myPublicIP = (Invoke-WebRequest https://itomation.ca/mypublicip).content
    10
    az sql server firewall-rule create `
    11
    --resource-group $resourceGroup `
    12
    --server $sqlServer `
    13
    --name AllowMyTempPublicIP `
    14
    --start-ip-address $myPublicIP `
    15
    --end-ip-address $myPublicIP
    16
    17
    # Create the database login in the master db
    18
    $queryVariables = "USERNAME=$sqlUserUsername","PASSWORD='$sqlUserPassword'","DATABASE=$sqlDatabase"
    19
    Invoke-Sqlcmd `
    20
    -ConnectionString $connectionStringMaster `
    21
    -Query '
    22
    CREATE LOGIN $(USERNAME) WITH PASSWORD = $(PASSWORD);
    23
    ' `
    24
    -Variable $queryVariables
    25
    26
    # Create the user in the WorkflowGen database
    27
    Invoke-Sqlcmd `
    28
    -ConnectionString $connectionStringWithSqlAdmin `
    29
    -Query '
    30
    CREATE USER $(USERNAME) FROM LOGIN $(USERNAME) WITH DEFAULT_SCHEMA = $(DATABASE);
    31
    ALTER ROLE db_datareader ADD MEMBER $(USERNAME);
    32
    ALTER ROLE db_datawriter ADD MEMBER $(USERNAME);
    33
    ' `
    34
    -Variable $queryVariables
    35
    36
    # Remove my public IP
    37
    az sql server firewall-rule delete `
    38
    --resource-group $resourceGroup `
    39
    --server $sqlServer `
    40
    --name AllowMyTempPublicIP
    Copied!
    ✏️ 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> :
1
<add name="MainDbSource" connectionString="Data Source=<server name>;Initial Catalog=<database name>;User ID=<database user>;Password=<password>;encrypt=true;trustServerCertificate=false;" providerName="System.Data.SqlClient" />
Copied!
  • 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.
Last modified 3mo ago