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.
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
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.