Partager via


Configuration d’un serveur de base de données pour la publication Web Deploy

par Jason Lee

Cette rubrique explique comment configurer un serveur de base de données SQL Server 2008 R2 pour prendre en charge le déploiement et la publication web.

Les tâches décrites dans cette rubrique sont courantes pour chaque scénario de déploiement. Il n’est pas important que vos serveurs web soient configurés pour utiliser le service d’agent distant IIS Web Deployment Tool (Web Deploy), le gestionnaire de déploiement web ou le déploiement hors connexion ou votre application s’exécute sur un serveur web unique ou une batterie de serveurs. La façon dont vous déployez la base de données peut changer en fonction des exigences de sécurité et d’autres considérations. Par exemple, vous pouvez déployer la base de données avec ou sans exemples de données, et vous pouvez déployer des mappages de rôles utilisateur ou les configurer manuellement après le déploiement. Toutefois, la façon dont vous configurez le serveur de base de données reste la même.

Vous n’avez pas besoin d’installer de produits ou d’outils supplémentaires pour configurer un serveur de base de données pour prendre en charge le déploiement web. En supposant que votre serveur de base de données et votre serveur web s’exécutent sur différents ordinateurs, vous devez simplement :

  • Autorisez SQL Server à communiquer à l’aide de TCP/IP.
  • Autorisez le trafic SQL Server via tous les pare-feu.
  • Donnez au compte d’ordinateur du serveur web une connexion SQL Server.
  • Mappez la connexion du compte d’ordinateur à tous les rôles de base de données requis.
  • Donnez au compte qui exécutera le déploiement des autorisations de création de base de données et de connexion SQL Server.
  • Pour prendre en charge les déploiements répétés, mappez la connexion du compte de déploiement au rôle de base de données db_owner .

Cette rubrique vous montre comment effectuer chacune de ces procédures. Les tâches et les procédures pas à pas de cette rubrique supposent que vous commencez par une instance par défaut de SQL Server 2008 R2 s’exécutant sur Windows Server 2008 R2. Avant de continuer, assurez-vous que :

  • Windows Server 2008 R2 Service Pack 1 et toutes les mises à jour disponibles sont installées.
  • Le serveur est joint à un domaine.
  • Le serveur a une adresse IP statique.
  • SQL Server 2008 R2 Service Pack 1 et toutes les mises à jour disponibles sont installées.

L’instance SQL Server doit uniquement inclure le rôle Moteur de base de données Services, qui est inclus automatiquement dans n’importe quelle installation de SQL Server. Toutefois, pour faciliter la configuration et la maintenance, nous vous recommandons d’inclure les outils de gestion – Outils de base et outils de gestion – Terminer les rôles serveur.

Remarque

Pour plus d’informations sur la jonction d’ordinateurs à un domaine, consultez Joindre des ordinateurs au domaine et à la connexion. Pour plus d’informations sur la configuration des adresses IP statiques, consultez Configurer une adresse IP statique. Pour plus d’informations sur l’installation de SQL Server, consultez Installation de SQL Server 2008 R2.

Activer l’accès à distance à SQL Server

SQL Server utilise TCP/IP pour communiquer avec les ordinateurs distants. Si votre serveur de base de données et votre serveur web se trouvent sur différents ordinateurs, vous devez :

  • Configurez les paramètres de mise en réseau SQL Server pour autoriser la communication via TCP/IP.
  • Configurez tous les pare-feu matériels ou logiciels pour autoriser le trafic TCP (et, dans certains cas, le trafic UDP (User Datagram Protocol) sur les ports utilisés par l’instance SQL Server.

Pour permettre à SQL Server de communiquer via TCP/IP, utilisez Gestionnaire de configuration SQL Server pour modifier la configuration réseau de votre instance SQL Server.

Pour permettre à SQL Server de communiquer à l’aide de TCP/IP

  1. Dans le menu Démarrer, pointez sur Tous les programmes, cliquez sur Microsoft SQL Server 2008 R2, sur Outils de configuration, puis sur Gestionnaire de configuration SQL Server.

  2. Dans le volet d’arborescence, développez Configuration réseau SQL Server, puis cliquez sur Protocoles pour MSSQLSERVER.

    Remarque

    Si vous avez installé plusieurs instances de SQL Server, vous verrez un élément Protocoles pour [nom d’instance] pour chaque instance. Vous devez configurer les paramètres réseau d’une instance par instance.

  3. Dans le volet d’informations, cliquez avec le bouton droit sur la ligne TCP/IP , puis cliquez sur Activer.

    Dans le volet d’informations, cliquez avec le bouton droit sur la ligne TCP/IP, puis cliquez sur Activer

  4. Dans la boîte de dialogue Avertissement , cliquez sur OK.

    Dans la boîte de dialogue Avertissement, cliquez sur OK

  5. Vous devez redémarrer le service MSSQLSERVER avant que votre nouvelle configuration réseau prenne effet. Vous pouvez le faire à l’invite de commandes, à partir de la console Services ou de SQL Server Management Studio. Dans cette procédure, vous allez utiliser SQL Server Management Studio.

  6. Fermez le Gestionnaire de configuration de SQL Server.

  7. Dans le menu Démarrer , pointez sur Tous les programmes, cliquez sur Microsoft SQL Server 2008 R2, puis sur SQL Server Management Studio.

  8. Dans la boîte de dialogue Se connecter au serveur, dans la zone Nom du serveur, tapez le nom du serveur de base de données, puis cliquez sur Se connecter.

    Dans la boîte de dialogue Se connecter au serveur, dans la zone Nom du serveur, tapez le nom du serveur de base de données, puis cliquez sur Se connecter.

  9. Dans le volet Explorateur d’objets, cliquez avec le bouton droit sur le nœud du serveur parent (par exemple, TESTDB1), puis cliquez sur Redémarrer.

    Dans le volet Explorateur d’objets, cliquez avec le bouton droit sur le nœud du serveur parent (par exemple, TESTDB1), puis cliquez sur Redémarrer.

  10. Dans la boîte de dialogue Microsoft SQL Server Management Studio , cliquez sur Oui.

    Dans la boîte de dialogue Microsoft SQL Server Management Studio, cliquez sur Oui.

  11. Lorsque le service a redémarré, fermez SQL Server Management Studio.

Pour autoriser le trafic SQL Server via un pare-feu, vous devez d’abord savoir quels ports votre instance SQL Server utilise. Cela dépend de la façon dont l’instance SQL Server a été créée et configurée :

  • Une instance par défaut de SQL Server écoute (et répond à) les requêtes sur le port TCP 1433.
  • Une instance nommée de SQL Server écoute (et répond) les requêtes sur un port TCP attribué dynamiquement.
  • Si le service SQL Server Browser est activé, les clients peuvent interroger le service sur le port UDP 1434 pour savoir quel port TCP utiliser pour une instance SQL Server particulière. Toutefois, ce service est souvent désactivé pour des raisons de sécurité.

En supposant que vous utilisez une instance par défaut de SQL Server, vous devez configurer votre pare-feu pour autoriser le trafic.

Sens À partir du port Vers le port Port Type
Entrante Tout 1433 TCP
Règle de trafic sortant 1433 Quelconque TCP

Remarque

Techniquement, un ordinateur client utilise un port TCP attribué de manière aléatoire entre 1024 et 5000 pour communiquer avec SQL Server et vous pouvez limiter vos règles de pare-feu en conséquence. Pour plus d’informations sur les ports et pare-feu SQL Server, consultez les numéros de port TCP/IP requis pour communiquer avec SQL via un pare-feu et comment : configurer un serveur pour écouter sur un port TCP spécifique (Gestionnaire de configuration SQL Server).

Dans la plupart des environnements Windows Server, vous devrez probablement configurer le Pare-feu Windows sur le serveur de base de données. Par défaut, le Pare-feu Windows autorise tout le trafic sortant, sauf si une règle l’interdit spécifiquement. Pour permettre à votre serveur web d’atteindre votre base de données, vous devez configurer une règle de trafic entrant qui autorise le trafic TCP sur le numéro de port utilisé par l’instance SQL Server. Si vous utilisez une instance par défaut de SQL Server, vous pouvez utiliser la procédure suivante pour configurer cette règle.

Pour configurer le Pare-feu Windows afin d’autoriser la communication avec une instance SQL Server par défaut

  1. Sur le serveur de base de données, dans le menu Démarrer , pointez sur Outils d’administration, puis cliquez sur Pare-feu Windows avec Advanced Security.

  2. Dans le volet d’arborescence, cliquez sur Règles de trafic entrant.

    Dans le volet d’arborescence, cliquez sur Règles de trafic entrant.

  3. Dans le volet Actions , sous Règles de trafic entrant, cliquez sur Nouvelle règle.

  4. Dans l’Assistant Nouvelle règle de trafic entrant, dans la page Type de règle, sélectionnez Port, puis cliquez sur Suivant.

    Dans l’Assistant Nouvelle règle de trafic entrant, dans la page Type de règle, sélectionnez Port, puis cliquez sur Suivant.

  5. Dans la page Protocole et ports , vérifiez que TCP est sélectionné, puis, dans la zone Ports locaux spécifiques, tapez 1433, puis cliquez sur Suivant.

    Dans la page Protocole et ports, vérifiez que TCP est sélectionné, puis, dans la zone Ports locaux spécifiques, tapez 1433, puis cliquez sur Suivant.

  6. Dans la page Action , laissez Autoriser la connexion sélectionnée, puis cliquez sur Suivant.

  7. Dans la page Profil , laissez Domaine sélectionné, décochez les cases Privées et Publiques , puis cliquez sur Suivant.

    Dans la page Profil, laissez Domaine sélectionné, décochez les cases Privées et Publiques, puis cliquez sur Suivant.

  8. Dans la page Nom, donnez à la règle un nom descriptif convenablement (par exemple, instance SQL Server par défaut – accès réseau), puis cliquez sur Terminer.

Pour plus d’informations sur la configuration du Pare-feu Windows pour SQL Server, en particulier si vous devez communiquer avec SQL Server sur des ports non standard ou dynamiques, consultez Guide pratique pour configurer un pare-feu Windows pour Moteur de base de données Access.

Configurer les connexions et les autorisations de base de données

Lorsque vous déployez une application web sur Internet Information Services (IIS), l’application s’exécute à l’aide de l’identité du pool d’applications. Dans un environnement de domaine, les identités de pool d’applications utilisent le compte d’ordinateur du serveur sur lequel ils s’exécutent pour accéder aux ressources réseau. Les comptes d’ordinateur prennent la forme [nom de domaine]</strong>[nom de l’ordinateur]$( par exemple, FABRIKAM\TESTWEB1$. Pour permettre à votre application web d’accéder à une base de données sur le réseau, vous devez :

  • Ajoutez une connexion pour le compte d’ordinateur du serveur web à l’instance SQL Server.
  • Mappez la connexion du compte d’ordinateur à tous les rôles de base de données requis ( généralement db_datareader et db_datawriter).

Si votre application web s’exécute sur une batterie de serveurs plutôt qu’un seul serveur, vous devez répéter ces procédures pour chaque serveur web de la batterie de serveurs.

Remarque

Pour plus d’informations sur les identités de pool d’applications et l’accès aux ressources réseau, consultez Identités de pool d’applications.

Vous pouvez aborder ces tâches de différentes manières. Pour créer la connexion, vous pouvez :

  • Créez la connexion manuellement sur le serveur de base de données à l’aide de Transact-SQL ou DE SQL Server Management Studio.
  • Utilisez un projet SQL Server 2008 Server dans Visual Studio pour créer et déployer la connexion.

Une connexion SQL Server est un objet au niveau du serveur, plutôt qu’un objet au niveau de la base de données. Il n’est donc pas dépendant de la base de données que vous souhaitez déployer. Par conséquent, vous pouvez créer la connexion à tout moment, et l’approche la plus simple consiste souvent à créer la connexion manuellement sur le serveur de base de données avant de commencer à déployer des bases de données. Vous pouvez utiliser la procédure suivante pour créer une connexion dans SQL Server Management Studio.

Pour créer une connexion SQL Server pour le compte d’ordinateur de serveur web

  1. Sur le serveur de base de données, dans le menu Démarrer , pointez sur Tous les programmes, cliquez sur Microsoft SQL Server 2008 R2, puis sur SQL Server Management Studio.

  2. Dans la boîte de dialogue Se connecter au serveur, dans la zone Nom du serveur, tapez le nom du serveur de base de données, puis cliquez sur Se connecter.

    Cette image illustre : dans la boîte de dialogue Se connecter au serveur, dans la zone Nom du serveur, tapez le nom du serveur de base de données, puis cliquez sur Se connecter.

  3. Dans le volet Explorateur d’objets, cliquez avec le bouton droit sur Sécurité, pointez sur Nouveau, puis cliquez sur Connexion.

  4. Dans la boîte de dialogue Connexion – Nouveau , dans la zone Nom de connexion, tapez le nom de votre compte d’ordinateur de serveur web (par exemple, FABRIKAM\TESTWEB1$).

    Dans la boîte de dialogue Connexion – Nouveau, dans la zone Nom de connexion, tapez le nom de votre compte d’ordinateur de serveur web (par exemple, FABRIKAM\TESTWEB1$).

  5. Cliquez sur OK.

À ce stade, votre serveur de base de données est prêt pour la publication Web Deploy. Toutefois, les solutions que vous déployez ne fonctionneront pas tant que vous n’aurez pas mappé le compte d’ordinateur aux rôles de base de données requis. Le mappage de la connexion aux rôles de base de données nécessite beaucoup plus de réflexion, car vous ne pouvez pas mapper les rôles tant que vous n’avez pas déployé la base de données. Pour mapper la connexion du compte d’ordinateur aux rôles de base de données requis, vous pouvez :

  • Attribuez manuellement les rôles de base de données à la connexion après avoir déployé la base de données pour la première fois.
  • Utilisez un script post-déploiement pour affecter les rôles de base de données à la connexion.

Pour plus d’informations sur l’automatisation de la création de connexions et de mappages de rôles de base de données, consultez Déploiement d’appartenances aux rôles de base de données dans des environnements de test. Vous pouvez également utiliser la procédure suivante pour mapper manuellement la connexion du compte d’ordinateur aux rôles de base de données requis. N’oubliez pas que vous ne pouvez pas effectuer cette procédure tant que vous n’avez pas déployé la base de données.

Pour mapper les rôles de base de données à la connexion du compte d’ordinateur de serveur web

  1. Ouvrez SQL Server Management Studio comme avant.

  2. Dans le volet Explorateur d’objets, développez le nœud Sécurité , développez le nœud Connexions , puis double-cliquez sur la connexion du compte d’ordinateur (par exemple, FABRIKAM\TESTWEB1$).

    Dans le volet Explorateur d’objets, développez le nœud Sécurité, développez le nœud Connexions, puis double-cliquez sur la connexion du compte d’ordinateur (par exemple, FABRIKAM\TESTWEB1$).

  3. Dans la boîte de dialogue Propriétés de connexion, cliquez sur Mappage d’utilisateurs.

  4. Dans la table Utilisateurs mappés à cette table de connexion , sélectionnez le nom de votre base de données (par exemple, ContactManager).

  5. Dans l’appartenance au rôle de base de données pour la liste [nom de la base de données], sélectionnez les autorisations requises. Dans le cas de l’exemple de solution Gestionnaire de contacts, vous devez sélectionner les rôles db_datareader et db_datawriter .

    Dans l’appartenance au rôle de base de données pour la liste [nom de la base de données], sélectionnez les autorisations requises. Dans le cas de l’exemple de solution Gestionnaire de contacts, vous devez sélectionner les rôles db_datareader et db_datawriter.

  6. Cliquez sur OK.

Bien que le mappage manuel des rôles de base de données soit souvent plus qu’adéquat pour les environnements de test, il est moins souhaitable pour les déploiements automatisés ou en un clic vers des environnements intermédiaires ou de production. Vous trouverez plus d’informations sur l’automatisation de ce type de tâche à l’aide de scripts post-déploiement dans le déploiement d’appartenances aux rôles de base de données dans des environnements de test.

Remarque

Pour plus d’informations sur les projets de serveur et les projets de base de données, consultez Projets de base de données SQL Server Visual Studio 2010.

Configurer des autorisations pour le compte de déploiement

Si le compte que vous utiliserez pour exécuter le déploiement n’est pas un administrateur SQL Server, vous devez également créer une connexion pour ce compte. Pour créer la base de données, le compte doit être membre du rôle serveur dbcreator ou disposer d’autorisations équivalentes.

Remarque

Lorsque vous utilisez Web Deploy ou VSDBCMD pour déployer une base de données, vous pouvez utiliser des informations d’identification Windows ou des informations d’identification SQL Server (si votre instance SQL Server est configurée pour prendre en charge l’authentification en mode mixte). La procédure suivante suppose que vous souhaitez utiliser les informations d’identification Windows, mais il n’y a rien qui vous empêche de spécifier un nom d’utilisateur et un mot de passe SQL Server dans votre chaîne de connexion lorsque vous configurez le déploiement.

Pour configurer des autorisations pour le compte de déploiement

  1. Ouvrez SQL Server Management Studio comme avant.

  2. Dans le volet Explorateur d’objets, cliquez avec le bouton droit sur Sécurité, pointez sur Nouveau, puis cliquez sur Connexion.

  3. Dans la boîte de dialogue Connexion – Nouveau , dans la zone Nom de connexion, tapez le nom de votre compte de déploiement (par exemple, FABRIKAM\matt).

  4. Dans le volet Sélectionner une page , cliquez sur Rôles de serveur.

  5. Sélectionnez dbcreator, puis cliquez sur OK.

    Sélectionnez dbcreator, puis cliquez sur OK.

Pour prendre en charge les déploiements suivants, vous devez également ajouter le compte de déploiement au rôle db_owner sur la base de données après le premier déploiement. Cela est dû au fait que sur les déploiements suivants, vous modifiez le schéma d’une base de données existante, plutôt que de créer une base de données. Comme décrit dans la section précédente, vous ne pouvez pas ajouter d’utilisateur à un rôle de base de données tant que vous n’avez pas créé la base de données pour des raisons évidentes.

Pour mapper la connexion du compte de déploiement au rôle de base de données db_owner

  1. Ouvrez SQL Server Management Studio comme avant.

  2. Dans la fenêtre Explorateur d’objets, développez le nœud Sécurité , développez le nœud Connexions , puis double-cliquez sur la connexion du compte d’ordinateur (par exemple, FABRIKAM\matt).

  3. Dans la boîte de dialogue Propriétés de connexion, cliquez sur Mappage d’utilisateurs.

  4. Dans la table Utilisateurs mappés à cette table de connexion , sélectionnez le nom de votre base de données (par exemple, ContactManager).

  5. Dans la liste des rôles de base de données pour : [nom de la base de données], sélectionnez le rôle db_owner .

    Dans la liste des rôles de base de données pour : [nom de la base de données], sélectionnez le rôle db_owner.

  6. Cliquez sur OK.

Conclusion

Votre serveur de base de données doit maintenant être prêt à accepter les déploiements de bases de données distantes et à autoriser les serveurs web IIS distants à accéder à vos bases de données. Avant de tenter de déployer et d’utiliser des bases de données, vous pouvez vérifier ces points clés :

  • Avez-vous configuré SQL Server pour accepter les connexions TCP/IP distantes ?
  • Avez-vous configuré des pare-feu pour autoriser le trafic SQL Server ?
  • Avez-vous créé une connexion de compte d’ordinateur pour chaque serveur web qui accédera à SQL Server ?
  • Votre déploiement de base de données inclut-il un script pour créer des mappages de rôles utilisateur, ou devez-vous les créer manuellement après avoir déployé la base de données pour la première fois ?
  • Avez-vous créé une connexion pour le compte de déploiement et l’avez-vous ajoutée au rôle serveur dbcreator ?

Pour aller plus loin

Pour obtenir des conseils sur le déploiement de projets de base de données, consultez Déploiement de projets de base de données. Pour obtenir des conseils sur la création d’appartenances aux rôles de base de données en exécutant un script post-déploiement, consultez Déploiement d’appartenances aux rôles de base de données dans des environnements de test. Pour obtenir des conseils sur la façon de répondre aux défis de déploiement uniques que posent les bases de données d’appartenance, consultez Déploiement de bases de données d’appartenance dans des environnements d’entreprise.