Déploiement de bases de données d’appartenance pour les environnements d’entreprise

par Jason Lee

Notes

Depuis la rédaction de cet article, les fournisseurs d’appartenance ASP.NET ont été remplacés par ASP.NET Identity. Nous vous recommandons vivement de mettre à jour les applications pour utiliser la plateforme d’identité ASP.NET plutôt que les fournisseurs d’appartenance proposés au moment de la rédaction de cet article. ASP.NET Identity présente un certain nombre d’avantages par rapport au système d’appartenance ASP.NET, notamment :

  • Meilleures performances
  • Extensibilité et testabilité améliorées
  • Prise en charge d’OAuth, OpenID Connect et de l’authentification à deux facteurs
  • Prise en charge des identités basées sur les revendications
  • Meilleure interopérabilité avec ASP.Net Core

Cette rubrique explique les principales considérations et défis que vous devez surmonter lorsque vous approvisionnez ASP.NET bases de données des services d’application (plus communément appelées bases de données d’appartenance) dans des environnements de test, de préproduction ou de production. Il décrit également les approches que vous pouvez utiliser pour relever ces défis.

Cette rubrique fait partie d’une série de tutoriels basés sur les exigences de déploiement d’entreprise d’une société fictive nommée Fabrikam, Inc. Cette série de tutoriels utilise un exemple de solution, la solution Contact Manager, pour représenter une application web avec un niveau de complexité réaliste, y compris une application MVC 3 ASP.NET, un service Windows Communication Foundation (WCF) et un projet de base de données.

La méthode de déploiement au cœur de ces didacticiels est basée sur l’approche de fichier projet fractionné décrite dans Présentation du fichier projet, dans laquelle le processus de génération est contrôlé par deux fichiers projet : l’un contenant des instructions de génération qui s’appliquent à chaque environnement de destination et l’autre contenant des paramètres de build et de déploiement spécifiques à l’environnement. Au moment de la génération, le fichier projet spécifique à l’environnement est fusionné dans le fichier projet indépendant de l’environnement pour former un ensemble complet d’instructions de build.

Quels sont les problèmes liés au déploiement d’une base de données d’appartenance ?

Dans la plupart des cas, lorsque vous concevez une stratégie de déploiement pour une base de données, la première chose que vous devez prendre en compte est les données que vous souhaitez déployer. Dans un environnement de développement ou de test, vous pouvez déployer des données de compte d’utilisateur pour faciliter les tests rapides et faciles. Dans un environnement intermédiaire ou de production, il est très peu probable que vous souhaitiez déployer des données de compte d’utilisateur.

Malheureusement, ASP.NET bases de données d’appartenance présentent des défis spécifiques qui rendent cette décision beaucoup plus complexe :

  • Un déploiement de schéma uniquement laisse la base de données d’appartenance dans un état non opérationnel. Cela est dû au fait que la base de données d’appartenance inclut certaines données de configuration (dans la table aspnet_SchemaVersions ) dont la base de données a besoin pour fonctionner. Par conséquent, si vous effectuez un déploiement de schéma uniquement de votre base de données d’appartenance afin d’exclure les données de compte d’utilisateur, vous devez exécuter un script de post-déploiement pour ajouter les données de configuration essentielles.
  • Selon la façon dont votre base de données d’appartenance est configurée, le fournisseur d’appartenance peut utiliser la clé d’ordinateur pour chiffrer les mots de passe et les stocker dans la base de données. Dans ce cas, toutes les données de compte d’utilisateur que vous déployez avec la base de données deviendront inutilisables sur le serveur de destination. Pour cette raison, le déploiement des données de compte d’utilisateur n’est pas un scénario pris en charge.

Choix d’une stratégie de base de données d’appartenance

Suivez ces instructions lorsque vous choisissez comment approvisionner une base de données d’appartenance dans un environnement de serveur d’entreprise :

  • Dans la mesure du possible, ne déployez pas de bases de données d’appartenance. Au lieu de cela, créez la base de données d’appartenance manuellement sur le serveur de base de données cible. Si vous n’avez pas personnalisé votre schéma de base de données d’appartenance, vous pouvez simplement en créer un in situ à l’aide de l’outil d’inscription ASP.NET SQL Server (aspnet_regsql.exe).
  • Si vous n’avez pas d’autre choix que de déployer une base de données d’appartenance(par exemple, si vous avez apporté des modifications importantes au schéma de base de données), vous devez effectuer un déploiement de schéma uniquement de la base de données d’appartenance, pour exclure les données de compte d’utilisateur, puis exécuter un script de post-déploiement pour ajouter les données de configuration requises. Vous trouverez des conseils généraux sur ces approches dans Guide pratique pour déployer la base de données d’appartenance ASP.NET sans inclure de comptes d’utilisateur.

Il est important de se rappeler que le schéma de votre base de données d’appartenance est susceptible d’être assez statique. Même si vous avez personnalisé la base de données d’appartenance, il est peu probable que vous ayez besoin de mettre à jour le schéma régulièrement. Il ne va pas changer avec la même fréquence que le code d’une application web ou d’un projet de base de données. Par conséquent, vous n’avez pas besoin d’inclure la base de données d’appartenance dans les processus de déploiement automatisés ou en une seule étape.

Utilisation de VSDBCMD pour mettre à jour un schéma de base de données d’appartenance

Si vous modifiez la structure de votre base de données d’appartenance après votre premier déploiement, il se peut que vous ne souhaitiez pas utiliser l’outil De déploiement web (Web Deploy) des services Internet (IIS) pour redéployer la base de données. La fonctionnalité de déploiement de base de données dans Web Deploy n’inclut pas la possibilité d’effectuer des mises à jour différentielles à une base de données de destination. Au lieu de cela, Web Deploy doit supprimer et recréer la base de données. Cela signifie que vous perdez les données de compte d’utilisateur existantes, ce qui est généralement indésirable dans les environnements intermédiaires ou de production.

L’alternative consiste à utiliser l’utilitaire VSDBCMD pour mettre à jour le schéma de votre base de données de destination. VSDBCMD comprend deux fonctionnalités importantes. Tout d’abord, il peut importer le schéma d’une base de données existante dans un fichier .dbschema. Deuxièmement, il peut déployer un fichier .dbschema sur une base de données existante en tant que mise à jour différentielle, ce qui signifie qu’il apporte uniquement les modifications nécessaires pour mettre à jour la base de données cible et que vous ne perdez aucune donnée.

Vous pouvez utiliser ces étapes générales pour mettre à jour un schéma de base de données d’appartenance :

  1. Utilisez l’action d’importation VSDBCMD pour générer un fichier .dbschema pour votre base de données d’appartenance source. Cette procédure est décrite dans Guide pratique pour importer un schéma à partir d’une invite de commandes.
  2. Utilisez l’action VSDBCMD Deploy pour déployer le fichier .dbschema sur votre base de données d’appartenance de destination. Cette procédure est décrite dans Référence de ligne de commande pour VSDBCMD.EXE (Déploiement et importation de schéma).

Conclusion

Cette rubrique décrit certains des défis que vous pouvez rencontrer lorsque vous devez approvisionner ASP.NET bases de données d’appartenance dans différents environnements cibles. En particulier, il a expliqué pourquoi les déploiements de schéma uniquement laissent la base de données d’appartenance dans un état non opérationnel et pourquoi le déploiement des données de compte d’utilisateur n’est pas pris en charge. La rubrique présente également des conseils sur l’approvisionnement, le déploiement et la mise à jour des bases de données d’appartenance dans différents scénarios.

En savoir plus

Pour obtenir des conseils supplémentaires et des exemples sur l’utilisation de VSDBCMD, consultez Informations de référence en ligne de commande pour VSDBCMD.EXE (déploiement et importation de schéma) et Guide pratique pour importer un schéma à partir d’une invite de commandes. Pour plus d’informations sur l’utilisation de aspnet_regsql.exe pour créer des bases de données d’appartenance, consultez ASP.NET SQL Server’outil d’inscription (aspnet_regsql.exe). Pour obtenir des conseils plus généraux sur le déploiement de bases de données d’appartenance, consultez Guide pratique pour déployer la base de données d’appartenance ASP.NET sans inclure de comptes d’utilisateur.