Konfigurace databázového serveru pro publikování nasazeného webu

Jason Lee

Toto téma popisuje, jak nakonfigurovat databázový server SQL Server 2008 R2 pro podporu nasazení a publikování na webu.

Úlohy popsané v tomto tématu jsou společné pro každý scénář nasazení – nezáleží na tom, jestli jsou webové servery nakonfigurované tak, aby používaly službu vzdáleného agenta Nástroje pro nasazení webu služby IIS, obslužnou rutinu nasazení webu nebo offline nasazení nebo jestli je vaše aplikace spuštěná na jednom webovém serveru nebo serverové farmě. Způsob nasazení databáze se může měnit v závislosti na požadavcích na zabezpečení a dalších aspektech. Databázi můžete například nasadit s ukázkovými daty nebo bez nich a můžete nasadit mapování rolí uživatele nebo je po nasazení nakonfigurovat ručně. Způsob konfigurace databázového serveru ale zůstává stejný.

Ke konfiguraci databázového serveru pro podporu nasazení webu nemusíte instalovat žádné další produkty ani nástroje. Za předpokladu, že databázový server a webový server běží na různých počítačích, stačí:

  • Povolte SQL Server komunikaci pomocí protokolu TCP/IP.
  • Povolte SQL Server provoz přes všechny brány firewall.
  • Dejte účtu počítače webového serveru SQL Server přihlášení.
  • Namapujte přihlášení k účtu počítače na všechny požadované databázové role.
  • Udělte účtu, který spustí nasazení, oprávnění SQL Server přihlášení a tvůrce databáze.
  • Pokud chcete podporovat opakovaná nasazení, namapujte přihlašovací účet nasazení na roli databáze db_owner .

V tomto tématu se dozvíte, jak tyto postupy provést. Úlohy a návody v tomto tématu předpokládají, že začínáte s výchozí instancí SQL Server 2008 R2 spuštěnou v systému Windows Server 2008 R2. Než budete pokračovat, ujistěte se, že:

  • Windows Server 2008 R2 Service Pack 1 a všechny dostupné aktualizace jsou nainstalované.
  • Server je připojený k doméně.
  • Server má statickou IP adresu.
  • SQL Server 2008 R2 Service Pack 1 a nainstalují se všechny dostupné aktualizace.

Instance SQL Server musí obsahovat pouze roli Služby databázového stroje, která je automaticky zahrnuta v každé instalaci SQL Server. Pro usnadnění konfigurace a údržby ale doporučujeme zahrnout role serveru Nástroje pro správu – Základní a Nástroje pro správu – Kompletní .

Poznámka

Další informace o připojení počítačů k doméně najdete v tématu Připojení počítačů k doméně a přihlášení. Další informace o konfiguraci statických IP adres najdete v tématu Konfigurace statické IP adresy. Další informace o instalaci SQL Server najdete v tématu Instalace SQL Server 2008 R2.

Povolení vzdáleného přístupu pro SQL Server

SQL Server ke komunikaci se vzdálenými počítači používá protokol TCP/IP. Pokud jsou váš databázový server a webový server na různých počítačích, musíte:

  • Nakonfigurujte SQL Server nastavení sítě tak, aby umožňovala komunikaci přes protokol TCP/IP.
  • Nakonfigurujte hardwarové nebo softwarové brány firewall tak, aby umožňovaly provoz TCP (a v některých případech provoz UDP (User Datagram Protocol) na portech, které SQL Server instance používá.

Pokud chcete SQL Server povolit komunikaci přes protokol TCP/IP, pomocí SQL Server Configuration Manager změňte konfiguraci sítě pro instanci SQL Server.

Povolení komunikace SQL Server pomocí protokolu TCP/IP

  1. V nabídce Start přejděte na Všechny programy, klikněte na Microsoft SQL Server 2008 R2, klikněte na Konfigurační nástroje a potom klikněte na SQL Server Configuration Manager.

  2. V podokně stromového zobrazení rozbalte SQL Server Konfigurace sítě a potom klikněte na Protokoly pro MSSQLSERVER.

    Poznámka

    Pokud jste nainstalovali více instancí SQL Server, zobrazí se pro každou instanci položka Protocols (Protokoly) propoložku [název instance]. Musíte nakonfigurovat nastavení sítě pro zvlášť instance.

  3. V podokně podrobností klikněte pravým tlačítkem na řádek TCP/IP a potom klikněte na Povolit.

    V podokně podrobností klikněte pravým tlačítkem na řádek TCP/IP a pak klikněte na Povolit.

  4. V dialogovém okně Upozornění klikněte na OK.

    V dialogovém okně Upozornění klikněte na OK.

  5. Než se nová konfigurace sítě projeví, musíte službu MSSQLSERVER restartovat. Můžete to udělat na příkazovém řádku, z konzoly Služby nebo z SQL Server Management Studio. V tomto postupu použijete SQL Server Management Studio.

  6. Zavřete SQL Server Configuration Manager.

  7. V nabídce Start přejděte na Všechny programy, klikněte na Microsoft SQL Server 2008 R2 a potom klikněte na SQL Server Management Studio.

  8. V dialogovém okně Připojit k serveru zadejte do pole Název serveru název databázového serveru a klikněte na Připojit.

    V dialogovém okně Připojit k serveru zadejte do pole Název serveru název databázového serveru a klikněte na Připojit.

  9. V podokně Průzkumník objektů klikněte pravým tlačítkem na uzel nadřazeného serveru (například TESTDB1) a potom klikněte na Restartovat.

    V podokně Průzkumník objektů klikněte pravým tlačítkem na uzel nadřazeného serveru (například TESTDB1) a potom klikněte na Restartovat.

  10. V dialogovém okně Microsoft SQL Server Management Studio klikněte na Ano.

    V dialogovém okně Microsoft SQL Server Management Studio klikněte na Ano.

  11. Po restartování služby zavřete SQL Server Management Studio.

Pokud chcete povolit SQL Server provoz přes bránu firewall, musíte nejprve vědět, které porty vaše instance SQL Server používá. To bude záviset na tom, jak se instance SQL Server vytvořila a nakonfigurovala:

  • Výchozí instance SQL Server naslouchá požadavkům (a odpovídá na ně) na portu TCP 1433.
  • Pojmenovaná instance SQL Server naslouchá požadavkům (a odpovídá na ně) na dynamicky přiřazeném portu TCP.
  • Pokud je povolená služba SQL Server Browser, můžou se klienti dotazovat služby na portu UDP 1434 a zjistit, který port TCP použít pro konkrétní SQL Server instanci. Tato služba je však často zakázána z bezpečnostních důvodů.

Za předpokladu, že používáte výchozí instanci SQL Server, je potřeba nakonfigurovat bránu firewall tak, aby umožňovala provoz.

Směr Z portu Do portu Typ portu
Příchozí Všechny 1433 TCP
Odchozí 1433 Všechny TCP

Poznámka

Z technického hlediska bude klientský počítač ke komunikaci s SQL Server používat náhodně přiřazený port TCP mezi 1024 a 5000 a vy můžete odpovídajícím způsobem omezit pravidla brány firewall. Další informace o SQL Server portech a branách firewall najdete v tématech Čísla portů TCP/IP vyžadovaná ke komunikaci s SQL přes bránu firewall a Postup: Konfigurace serveru pro naslouchání na konkrétním portu TCP (SQL Server Configuration Manager).

Ve většině prostředí Windows Serveru budete pravděpodobně muset nakonfigurovat bránu Windows Firewall na databázovém serveru. Brána Windows Firewall ve výchozím nastavení povoluje veškerý odchozí provoz, pokud to pravidlo výslovně nezakazuje. Pokud chcete webovému serveru umožnit přístup k databázi, musíte nakonfigurovat příchozí pravidlo, které povoluje provoz TCP na portu, které používá SQL Server instance. Pokud používáte výchozí instanci SQL Server, můžete toto pravidlo nakonfigurovat pomocí následujícího postupu.

Konfigurace brány Windows Firewall tak, aby umožňovala komunikaci s výchozí instancí SQL Server

  1. Na databázovém serveru přejděte v nabídce Start na Nástroje pro správu a potom klikněte na Brána Windows Firewall s pokročilým zabezpečením.

  2. V podokně stromového zobrazení klikněte na Příchozí pravidla.

    V podokně stromového zobrazení klikněte na Příchozí pravidla.

  3. V podokně Akce klikněte v části Příchozí pravidla na Nové pravidlo.

  4. V Průvodci novým příchozím pravidlem na stránce Typ pravidla vyberte Port a potom klikněte na Další.

    V Průvodci novým příchozím pravidlem na stránce Typ pravidla vyberte Port a potom klikněte na Další.

  5. Na stránce Protokol a porty se ujistěte, že je vybraná možnost TCP , do pole Konkrétní místní porty zadejte 1433 a potom klikněte na Další.

    Na stránce Protokol a porty se ujistěte, že je vybraná možnost TCP, do pole Konkrétní místní porty zadejte 1433 a potom klikněte na Další.

  6. Na stránce Akce ponechte vybranou možnost Povolit připojení a klikněte na Další.

  7. Na stránce Profil ponechte vybranou možnost Domain (Doména), zrušte zaškrtnutí políček Private (Privátní) a Public (Veřejné) a klikněte na Next (Další).

    Na stránce Profil ponechte vybranou možnost Domain (Doména), zrušte zaškrtnutí políček Private (Privátní) a Public (Veřejné) a klikněte na Next (Další).

  8. Na stránce Název dejte pravidlu vhodně popisný název (například SQL Server výchozí instance – přístup k síti) a pak klikněte na Dokončit.

Další informace o konfiguraci brány Windows Firewall pro SQL Server, zejména pokud potřebujete komunikovat s SQL Server přes nestandardní nebo dynamické porty, najdete v tématu Postupy: Konfigurace brány Windows Firewall pro přístup k databázovému stroji.

Konfigurace oprávnění k přihlášení a databázi

Když nasadíte webovou aplikaci do Internetové informační služby (IIS), spustí se aplikace pomocí identity fondu aplikací. V prostředí domény identity fondu aplikací používají účet počítače serveru, na kterém běží, pro přístup k síťovým prostředkům. Účty počítačů mají podobu [název domény]</strong>[název počítače]$, například FABRIKAM\TESTWEB1$. Pokud chcete webové aplikaci povolit přístup k databázi přes síť, musíte provést následující:

  • Přidejte přihlášení k účtu počítače webového serveru do instance SQL Server.
  • Namapujte přihlášení k účtu počítače na všechny požadované databázové role (obvykle db_datareader a db_datawriter).

Pokud vaše webová aplikace neběží na jednom serveru, ale v serverové farmě, budete muset tyto postupy zopakovat pro každý webový server v serverové farmě.

Poznámka

Další informace o identitách fondů aplikací a přístupu k síťovým prostředkům najdete v tématu Identity fondu aplikací.

K těmto úkolům můžete přistupovat různými způsoby. Pokud chcete vytvořit přihlášení, můžete provést následující:

  • Vytvořte přihlášení ručně na databázovém serveru pomocí jazyka Transact-SQL nebo SQL Server Management Studio.
  • Pomocí projektu SQL Server 2008 Server v sadě Visual Studio vytvořte a nasaďte přihlášení.

Přihlášení SQL Server je objekt na úrovni serveru, nikoli objekt na úrovni databáze, takže nezávisí na databázi, kterou chcete nasadit. Přihlášení tak můžete vytvořit kdykoli a nejjednodušší je často vytvořit přihlášení ručně na databázovém serveru, než začnete nasazovat databáze. Další postup můžete použít k vytvoření přihlášení v SQL Server Management Studio.

Vytvoření SQL Server přihlášení pro účet počítače webového serveru

  1. Na databázovém serveru v nabídce Start přejděte na Všechny programy, klikněte na Microsoft SQL Server 2008 R2 a potom klikněte na SQL Server Management Studio.

  2. V dialogovém okně Připojit k serveru zadejte do pole Název serveru název databázového serveru a klikněte na Připojit.

    Tento obrázek znázorňuje: V dialogovém okně Připojit k serveru zadejte do pole Název serveru název databázového serveru a potom klikněte na Připojit.

  3. V podokně Průzkumník objektů klikněte pravým tlačítkem na Zabezpečení, přejděte na Nový a klikněte na Přihlásit.

  4. V dialogovém okně Přihlášení – nové zadejte do pole Přihlašovací jméno název účtu počítače webového serveru (například FABRIKAM\TESTWEB1$).

    V dialogovém okně Přihlášení – nové zadejte do pole Přihlašovací jméno název účtu počítače webového serveru (například FABRIKAM\TESTWEB1$).

  5. Klikněte na OK.

V tomto okamžiku je váš databázový server připravený pro publikování nasazení webu. Žádná řešení, která nasadíte, ale nebudou fungovat, dokud nenamapujete přihlášení k účtu počítače na požadované databázové role. Mapování přihlášení k databázovým rolím vyžaduje mnohem více přemýšlení, protože role nemůžete mapovat, dokud databázi nenasadíte. Pokud chcete namapovat přihlášení k účtu počítače na požadované databázové role, můžete:

  • Po prvním nasazení databáze přiřaďte přihlašovacím rolím databáze ručně.
  • K přiřazení databázových rolí k přihlášení použijte skript po nasazení.

Další informace o automatizaci vytváření přihlášení a mapování databázových rolí najdete v tématu Nasazení členství databázových rolí do testovacích prostředí. Případně můžete použít další postup a namapovat přihlášení účtu počítače na požadované databázové role ručně. Nezapomeňte, že tento postup nemůžete provést , dokud databázi nenasadíte.

Mapování databázových rolí na přihlášení k účtu počítače webového serveru

  1. Otevřete SQL Server Management Studio jako předtím.

  2. V podokně Průzkumník objektů rozbalte uzel Zabezpečení, rozbalte uzel Přihlášení a potom poklikejte na přihlášení k účtu počítače (například FABRIKAM\TESTWEB1$).

    V podokně Průzkumník objektů rozbalte uzel Zabezpečení, rozbalte uzel Přihlášení a potom poklikejte na přihlášení k účtu počítače (například FABRIKAM\TESTWEB1$).

  3. V dialogovém okně Vlastnosti přihlášení klikněte na Mapování uživatelů.

  4. V tabulce Uživatelé namapované na toto přihlášení vyberte název vaší databáze (například ContactManager).

  5. V seznamu Členství v roli databáze pro:[název_databáze] vyberte požadovaná oprávnění. V případě ukázkového řešení Contact Manageru musíte vybrat role db_datareader a db_datawriter .

    V seznamu Členství v roli databáze pro: [název databáze] vyberte požadovaná oprávnění. V případě ukázkového řešení Aplikace Contact Manager musíte vybrat role db_datareader a db_datawriter.

  6. Klikněte na OK.

Ruční mapování databázových rolí je sice často více než dostačující pro testovací prostředí, ale není žádoucí pro automatizovaná nasazení nebo nasazení jedním kliknutím do přípravného nebo produkčního prostředí. Další informace o automatizaci tohoto typu úlohy pomocí skriptů po nasazení najdete v tématu Nasazení členství databázových rolí do testovacích prostředí.

Poznámka

Další informace o serverových a databázových projektech najdete v tématu Databázové projekty sady Visual Studio 2010 SQL Server.

Konfigurace oprávnění pro účet nasazení

Pokud účet, který použijete ke spuštění nasazení, není správcem SQL Server, budete pro tento účet také muset vytvořit přihlášení. Aby bylo možné vytvořit databázi, účet musí být členem role serveru dbcreator nebo musí mít ekvivalentní oprávnění.

Poznámka

Pokud k nasazení databáze použijete nasazení webu nebo VSDBCMD, můžete použít přihlašovací údaje systému Windows nebo SQL Server přihlašovací údaje (pokud je vaše instance SQL Server nakonfigurovaná tak, aby podporovala ověřování ve smíšeném režimu). Další postup předpokládá, že chcete použít přihlašovací údaje Windows, ale nic vám nebrání v zadání SQL Server uživatelského jména a hesla v připojovacím řetězci při konfiguraci nasazení.

Nastavení oprávnění pro účet nasazení

  1. Otevřete SQL Server Management Studio jako předtím.

  2. V podokně Průzkumník objektů klikněte pravým tlačítkem na Zabezpečení, přejděte na Nový a klikněte na Přihlásit.

  3. V dialogovém okně Přihlášení – nové zadejte do pole Přihlašovací jméno název účtu nasazení (například FABRIKAM\matt).

  4. V podokně Vybrat stránku klikněte na Role serveru.

  5. Vyberte dbcreator a klikněte na OK.

    Vyberte dbcreator a klikněte na OK.

Pokud chcete podporovat další nasazení, budete také muset po prvním nasazení přidat účet pro nasazení do role db_owner v databázi. Je to proto, že v následných nasazeních upravujete schéma existující databáze, nikoli vytváříte novou databázi. Jak je popsáno v předchozí části, uživatele do databázové role nemůžete přidat, dokud databázi nevytvořili, a to ze zřejmých důvodů.

Mapování přihlášení účtu nasazení na roli databáze db_owner

  1. Otevřete SQL Server Management Studio jako předtím.

  2. V okně Průzkumník objektů rozbalte uzel Zabezpečení, rozbalte uzel Přihlášení a potom poklikejte na přihlášení k účtu počítače (například FABRIKAM\matt).

  3. V dialogovém okně Vlastnosti přihlášení klikněte na Mapování uživatelů.

  4. V tabulce Uživatelé namapované na toto přihlášení vyberte název vaší databáze (například ContactManager).

  5. V seznamu Členství v roli databáze pro:[název_databáze] vyberte db_owner roli.

    V seznamu Členství v roli databáze pro: [název databáze] vyberte roli db_owner.

  6. Klikněte na OK.

Závěr

Váš databázový server by teď měl být připravený přijímat vzdálená nasazení databáze a umožnit vzdáleným webovým serverům služby IIS přístup k vašim databázím. Než se pokusíte nasadit a používat databáze, můžete zkontrolovat tyto klíčové body:

  • Nakonfigurovali jste SQL Server pro příjem vzdálených připojení TCP/IP?
  • Nakonfigurovali jste nějaké brány firewall tak, aby povolovaly SQL Server provoz?
  • Vytvořili jste přihlášení k účtu počítače pro každý webový server, který bude přistupovat k SQL Server?
  • Zahrnuje nasazení databáze skript pro vytvoření mapování rolí uživatele, nebo je potřebujete po prvním nasazení databáze vytvořit ručně?
  • Vytvořili jste přihlášení pro účet nasazení a přidali jste ho do role serveru dbcreator ?

Další čtení

Pokyny k nasazení databázových projektů najdete v tématu Nasazení databázových projektů. Pokyny k vytváření členství v databázových rolích spuštěním skriptu po nasazení najdete v tématu Nasazení členství v rolích databáze do testovacích prostředí. Pokyny k řešení jedinečných problémů s nasazením, které představují databáze členství, najdete v tématu Nasazení databází členství do podnikových prostředí.