> Tech > Scripter une installation de base de données

Scripter une installation de base de données

Tech - Par iTPro.fr - Publié le 24 juin 2010
email

par William Sheldon - Mis en ligne le 26/04/02
Le packaging d'une base de données SQL Server à  installer dans le cadre d'une application personnalisée peut être difficile. La tâche la plus importante consiste à  déplacer dans de bonnes conditions les tables, procédures, et objets associés de la base de données ...

D'autres tâches, comme packager la sauvegarde de l'instance de la base de données, présentent un danger supplémentaire, vous empêchant de spécifier de nouveaux comptes utilisateur et le nom du fichier de données primaire. Toutefois, on peut utiliser Microsoft Windows Installer avec un ensemble de scripts VBScript et T-SQL personnalisés pour packager et installer la base de données avec beaucoup d'efficacité. Dans cet article, j'utilise les scripts T-SQL générés à  partir de SQL Server 2000. Vous pouvez utiliser l'installation pour créer une base de données SQL Server 2000 ou SQL Server 7.0.

J'ai découvert cette excellente combinaison quand j'ai commencé à  utiliser l'outil personnalisé de ma société pour analyser l'utilisation du site Web en temps réel. L'outil, qui s'intègre avec l'AD (Active Directory) du membership service, s'appuie sur les paramètres stockés dans le registre pour définir une connexion de base de données. Mais, comme nous avons utilisé l'outil dans différents environnements, il nous fallait un moyen d'assurer l'homogénéité du paramétrage des composants sur différentes machines, autoriser des noms, des comptes, et des mots de passe de base de données personnalisés, et laisser au DBA le soin de coordonner les composants installés, différentes machines d'entreprise sans être obligé de modifier le registre directement. Nous avons opté pour Windows Installer, qui offre un cadre de configuration commun et englobe un UI pour un paramétrage personnalisé. En combinant l'Installer et les scripts personnalisés, on peut :

• fournir un nom de base de données et un lieu d'installation personnalisés
• créer des comptes et des mots de passe personnalisés
• créer les tables et les procédures cataloguées dans la nouvelle base de données
• attribuer des autorisations de comptes aux objets créés dans le nouvelle base de données
• importer des données statiques délimitées par des virgules, à  partir de l'application

Suivons le processus de création d'un package d'installation conforme aux exigences précédentes et voyons un outil d'installation simple que vous pourrez utiliser pour installer les bases de données SQL Server et créer vos propres packages d'installation personnalisés. Vous pouvez télécharger l'outil modèle sur le site Web : www.itpro.fr; le fichier d'installation contient le fichier SampleDB.msi et le sous-répertoire IKSampleDBFiles, qui contient les fichiers script dont le fichier .msi a besoin. Au lieu d'incorporer les fichiers d'installation source comme un fichier .cab à  l'intérieur du fichier .msi, je les ai placés à  l'extérieur du fichier .msi dans leur format non compressé afin que vous puissiez remplacer les scripts .vbs et .sql selon les besoins, pour construire vos bases de données personnalisées.

Scripter une installation de base de données

Windows Installer est un service d’installation
Windows accompagnant
Windows 2000 et fourni comme un pack
de services pour Windows NT 4.0 et
Windows 9.x. L’extension .msi représente
les fichiers qui acceptent le format
Windows Installer. Pour scripter l’installation
d’une base de données, il faut deux composants: les scripts .vbs et .sql
qui exécutent les tâches et le fichier .msi
qui transporte et coordonne les actions
des scripts. La documentation online
pour Windows Installer se trouve à 
htpp://msdn.microsoft.com/library/psd
k/wiport_6gf9.htm.

Microsoft documente sérieusement
les interfaces et possibilités de Windows
Installer. Mais l’Installer ne fournit pas
une UI type pour créer de nouveaux
packages d’installation. Les fournisseurs
tierce partie ont donc développé des UI
complètes qui fonctionnent avec les
packages .msi. C’est ainsi que des
applications de Wise Solutions et
InstallShield permettent de modifier la
base de données d’installation du fichier
.msi binaire au moyen d’une GUI. Ces
produits ajoutent aussi automatiquement
un ensemble de fenêtres d’assistance
au package d’installation. Vous
pouvez modifier ces fenêtres en éditant
l’affichage par défaut ou en ajoutant
d’autres fenêtres au processus de configuration.
Pour le package .msi que j’inclus
dans cet article, j’ai choisi Wise for Windows Installer 2.01 parce que l’un
des clients de ma société a besoin de
l’outil. (Notons que Wise Solutions a
annoncé Wise for Windows Installer
3.0.)

Cet article n’a pas pour but de
montrer comment travailler dans un
environnement personnalisé comme
Wise for Windows Installer. Voyons plutôt
les modifications de base nécessaires
pour supporter les scripts d’installation
de la base de données et pour
exécuter le package Installer. Pour supporter
l’exécution des scripts, la première
modification à  apporter à  l’installation
par défaut est d’ajouter des
propriétés personnalisées à  la table de
propriétés de la base de données de
l’Installer. L’environnement .msi permet
de définir des variables globales en
attribuant les propriétés adéquates.
Vous trouverez une description
des propriétés utiles à  http://msdn.microsoft.
com/library/en-us/msi/hh/msi/prop_0ylv.asp.
Les propriétés choisies doivent répondre
à  deux critères: il faut pouvoir
modifier les propriétés dans les fenêtres
personnalisées montrées dans
l’article et il faut pouvoir les utiliser
dans les scripts que je fournis. Compte
tenu des restrictions qui précèdent,
vous devez attribuer aux définitions de
propriétés personnalisées le status restricted
public properties, que l’application
présente en lettres majuscules
(MASTERDBMACHINE, par exemple).
La propriété INSTALLDIR, que l’outil
Wise ajoute automatiquement à  la liste
Secure Public Properties, sauvegarde
vos lieux d’installation sélectionnés
pour les nouveaux fichiers base de données
et script.

Outre les fenêtres personnalisées
qu’un constructeur d’installation engendre
automatiquement, j’ai créé
deux fenêtres personnalisées. (Il est intéressant
d’exécuter IKSample.msi à  ce
stade du processus d’installation, parce
que vous pouvez ainsi examiner les modifications
au fur et à  mesure qu’elles
apparaissent dans les fenêtres et pendant
le processus d’installation.)
L’exécution du package d’installation compilé génère une fenêtre d’introduction,
suivie d’une fenêtre qui permet de
sélectionner le répertoire cible pour les
fichiers base de données. Ensuite, la première
de ces deux fenêtres personnalisées,
Connect to Master Database, apparaît.
La figure 1 présente cette fenêtre et
les informations nécessaires pour vous
connecter au serveur de base de données.
Les champs de cette fenêtre ont
reçu les propriétés du package d’installation.
Le premier champ est le nom du
serveur, associé à  la propriété MASTERDBMACHINE.
L’information de
compte est associée aux propriétés personnalisées
MASTERDBPWD et MASTERDBUSER.
Quand vous exécutez le
package d’installation, vous fournissez
un compte de base de données avec des
privilèges d’administrateur pour ajouter
une nouvelle base de données.
L’Installer ne stocke pas cette information
mais a besoin des données pour se
connecter à  SQL Server et pour exécuter
les commandes destinées à  créer et peupler
la nouvelle base de données.

La seconde fenêtre d’entrée personnalisée
affiche la prochaine étape du wizard
d’installation. Dans la fenêtre New
Database Settings illustrée dans la figure
2, vous pouvez fournir un nom personnalisé
pour la nouvelle base de données
(WHSDBNAME, par exemple) et
désigner un compte utilisateur (WHSDBUSER,
par exemple) et un mot de
passe (WHSDBPWD, par exemple) qui
accède à  la nouvelle base de données. Si
vous devez créer plus d’un compte pour
votre base de données, vous pouvez
ajuster cet écran ou ajouter des écrans
qui vous permettront de fournir des
noms de comptes utilisateur supplémentaires
pour l’installation.

Après avoir entré les données dans
la fenêtre New Database Settings, cliquez
sur Next dans la fenêtre de confirmation
qui suit. L’installation commence:
Windows Installer copie les
fichiers script du répertoire source dans
le répertoire cible. Après cette copie, le
package Installer exécute trois actions
personnalisées. Vous pouvez définir les
actions personnalisées qui exécutent des scripts personnalisés de la même
manière que vous avez ajouté des propriétés
personnalisées à  la table
Property dans la base de données
Installer. Vous pouvez trouver une
bonne référence de définition d’actions
personnalisées à  http://msdn.microsoft.
com/library/en-us/msi/hh/msi/
prop_0ylv.asp. A partir du produit Wise,
j’ai ajouté un appel à  chacun des trois fichiers
.vbs que j’ai inclus dans les scripts
d’installation. Chacune des actions
CreateDB, GrantPermission et
RunScripts exécute un fichier .vbs qui,
comme nous le verrons plus loin,
couvre les étapes chargées de créer une
nouvelle base de données.

L’installation personnalisée que vous venez de créer est destinée à  une
base de données simple. Mais vous pouvez
personnaliser les scripts de l’installation
pour créer votre propre base de
données. Votre première étape – modifier
les fichiers .sql dans le package
Installer – vous permet de préciser les
structures de base de données que le
script d’installation construit. Notons
que les structures changeantes peuvent
nécessiter le changement des fichiers
.vbs qui opèrent dynamiquement pendant
l’installation. Vous pouvez changer
le contenu de tous les fichiers qui se
trouvent dans le répertoire source
IKSampleDBFiles. J’ai utilisé des fichiers
source non compressés externes pour
cette installation, afin que vous puissiez remplacer les scripts .vbs et .sql selon les
besoins pour construire vos bases de
données personnalisées.

Téléchargez cette ressource

Sécuriser votre système d’impression

Sécuriser votre système d’impression

Longtemps sous-estimée, la sécurisation d’un système d’impression d’entreprise doit être pleinement prise en compte afin de limiter le risque de fuite d’informations sensibles. Voici les 3 principales précautions à prendre.

Tech - Par iTPro.fr - Publié le 24 juin 2010