Implémentation des applications de la couche Données

Une application de la couche Données (DAC) définit les schémas du moteur de base de données SQL Server et les objets qui sont obligatoires pour prendre en charge une application. Une DAC peut être implémentée à l'aide de l'un des deux processus suivants :

  • Une DAC peut être créée à l'aide d'un projet d'application de la couche Données de SQL Server dans Microsoft Visual Studio 2010.

  • Elle peut également peut être extraite à partir d'une base de données existante à l'aide de l'Assistant Extraction de l'application de la couche Données dans SQL Server Management Studio.

Les processus de génération de l'extraction et de la création produisent une définition de la DAC qui spécifie les objets et métadonnées. La définition de la DAC est intégrée à un package DAC, c'est-à-dire un fichier qui contient un manifeste de toutes les définitions des stratégies et des objets inclus dans la DAC. Le package DAC peut être utilisé pour les opérations suivantes :

  • Déployer la version actuelle de la DAC sur les instances de développement, test et production du moteur de base de données et SQL Azure. Utilisez l'Assistant Déployer l'application de la couche Données pour déployer une nouvelle instance DAC. Utilisez l'Assistant Mettre à niveau l'application de la couche Données pour mettre à niveau une instance existante de la DAC qui été déployée sur la base d'une version antérieure.

  • Démarrer le développement de la version suivante de la DAC dans Visual Studio en important la DAC dans un nouveau projet d'application de la couche Données SQL Server dans Visual Studio.

Applications de la couche Données dans le processus de développement

Les DAC sont développées à l'aide de projets DAC dans Visual Studio. Un projet DAC permet une intégration étroite du développement d'objets de la couche Données avec l'environnement de développement de l'application qui est codée pour utiliser les objets. Un développeur de base de données crée la DAC en utilisant un projet DAC dans Visual Studio. Le projet DAC peut être intégré à la solution de développement globale pour l'application dans Visual Studio Team System. Alors que les développeurs d'applications écrivent le code de l'application, le développeur de base de données code les définitions d'objet de la couche Données dans la DAC.

Pour une nouvelle application, le développeur de base de données crée le projet DAC, puis commence à ajouter des objets au projet au fur et à mesure de leur développement. Lors du démarrage du projet pour une nouvelle version d'une application existante, le développeur de base de données peut extraire un package DAC de la base de données actuelle utilisée par l'application et l'importer dans le projet DAC.

Le développeur peut ajouter ces éléments au projet DAC :

  • Les propriétés de la DAC qui en définissent des caractéristiques. Par exemple, chaque DAC a une propriété de nom d'application et une propriété de version dont les valeurs sont en général en rapport avec le nom et le numéro de version de l'application associée.

  • Les définitions de tous les objets de base de données utilisées par l'application, tels que les schémas, tables, vues et procédures stockées. Les DAC ne prennent pas en charge tous les objets SQL Server disponibles. Pour plus d'informations, consultez Prise en charge DAC pour les objets et versions SQL Server.

  • Les définitions des objets au niveau de l'instance, tels que les connexions, qui sont associées aux objets de la base de données et sont utilisées par l'application.

  • Une stratégie de sélection du serveur qui définit la configuration requise pour une instance du moteur de base de données destinée à héberger la DAC. La stratégie est définie à l'aide de la facette Sélection du serveur et peut évaluer des conditions telles que l'édition et le classement par défaut de l'instance.

  • Les fichiers et les scripts qui peuvent être intégrés à la DAC lorsque celle-ci est créée dans Visual Studio. Exemples : documents d'application, plans de génération de données qui spécifient comment créer des données de test pertinentes ou scripts antérieurs et ultérieurs au déploiement.

À des fins de test, le développeur de base de données peut déployer le projet DAC sur une instance de test du moteur de base de données. Il peut également générer le projet DAC, ce qui crée une définition de la DAC dans un package DAC. La définition de la DAC contient les métadonnées pour tous les éléments définis dans le projet DAC. Le package DAC est un fichier XML zippé qui contient la définition de la DAC et qui est utilisé pour déployer ou mettre à niveau une DAC. Les développeurs et testeurs peuvent utiliser l'Assistant Déployer l'application de la couche Données pour déployer la DAC sur leurs systèmes de test.

Une fois le développement de l'application terminé, le projet DAC est généré pour créer la version de production du package DAC, tout comme le projet d'application est généré pour créer les fichiers exécutables de l'application. Le package DAC est fourni aux administrateurs de base de données de production, qui le déploient sur les instances du moteur de base de données qui s'exécutent en production ou sur SQL Azure.

Une fois qu'une version de la DAC a été déployée en production, le développement peut démarrer sur la version suivante de la DAC. Le développeur de base de données crée une nouvelle version du projet DAC avec les définitions de tous les objets de la couche Données tels qu'ils existent dans cette version. Lorsque le projet est intégré à un nouveau package DAC, le même package peut être utilisé à la fois pour le déploiement d'une nouvelle instance de la DAC ou pour la mise à niveau d'une instance existante vers la nouvelle version. L'Assistant Mettre à niveau l'application de la couche Données compare le schéma de l'instance DAC existante avec celui du package DAC et effectue dynamiquement les actions nécessaires pour transformer l'instance DAC existante en la nouvelle version de la DAC.

Pour plus d'informations sur les projets DAC dans la documentation Visual Studio, consultez Création et gestion d'applications de la couche Données.

Extraction d'une DAC d'une base de données

L'Assistant Extraire l'application de la couche Données est utilisé pour générer une définition de la DAC d'après une base de données existante. La définition de la DAC contient les métadonnées qui définissent tous les objets dans la base de données, toutes les connexions qui mappent aux entités de sécurité de la base de données, ainsi que le classement de base de données et le niveau de compatibilité. La définition de la DAC ne contient pas de données utilisateur de la base de données source. La définition de la DAC est intégrée à un fichier de package DAC.

L'Assistant ne peut extraire que des objets pris en charge dans les applications de la couche Données. Une fois que vous avez spécifié les propriétés telles que le nom et la version de la DAC, l'Assistant charge tous les objets de la base de données et vérifie qu'ils sont pris en charge dans une DAC. L'Assistant affiche ensuite une page de résumé qui regroupe les objets dans trois catégories :

  • Les objets avec une icône d'entrée non valide rouge ne sont pas pris en charge dans une DAC.

  • Les objets avec une icône d'avertissement jaune sont eux-mêmes pris en charge dans une DAC, mais ont une dépendance sur un objet qui ne l'est pas.

  • Les objets avec une icône de réussite verte sont pris en charge dans une DAC et n'ont pas de dépendances sur des objets non pris en charge dans une DAC.

Si l'Assistant rencontre des objets qui ne sont pas pris en charge dans une DAC, il les répertorie dans un rapport récapitulatif et ne crée pas le package DAC. Si tous les objets ont une icône de réussite verte, vous pouvez poursuivre la création du package DAC.

Le package DAC extrait peut être utilisé pour les opérations suivantes :

  • Importer la DAC dans un projet DAC dans Visual Studio, où un développeur de base de données peut démarrer le développement sur la version suivante de la DAC.

  • Déployer une nouvelle instance de la DAC.

  • Mettre à niveau une version déployée précédemment de la DAC.

Pour plus d'informations sur les objets pris en charge, consultez Prise en charge DAC pour les objets et versions SQL Server.

Pour plus d'informations sur le démarrage de l'Assistant, consultez Procédure : extraire une DAC d'une base de données.

Mots de passe de connexion

Pour améliorer la sécurité, les connexions d'authentification SQL Server sont stockées dans un package DAC sans mot de passe. Lorsque le package est déployé ou mis à niveau, la connexion est créée en tant que connexion désactivée avec un mot de passe généré. Pour activer les connexions, connectez-vous à l'aide d'une connexion qui possède l'autorisation ALTER ANY LOGIN et utilisez ALTER LOGIN pour activer la connexion et affecter un nouveau mot de passe pouvant être communiqué à l'utilisateur. Cela n'est pas nécessaire pour les connexions d'authentification Windows car leurs mots de passe ne sont pas gérés par SQL Server.