Nasazení databází členství do podnikových prostředí
Poznámka
Od napsání tohoto článku se zprostředkovatelé členství ASP.NET nahradili službou ASP.NET Identity. Důrazně doporučujeme aktualizovat aplikace tak, aby používaly platformu ASP.NET Identity Platform místo zprostředkovatelů členství, které se objevovalo v době psaní tohoto článku. ASP.NET Identity má oproti systému členství ASP.NET řadu výhod, mezi které patří:
- Lepší výkon
- Vylepšená rozšiřitelnost a testovatelnost
- Podpora OAuth, OpenID Connect a dvojúrovňového ověřování
- Podpora identit založených na deklarací identity
- Lepší interoperabilita s ASP.Net Core
Toto téma vysvětluje klíčové aspekty a výzvy, které budete muset vyřešit při zřizování databází ASP.NET aplikačních služeb (častěji označovaných jako databáze členství) v testovacím, přípravném nebo produkčním prostředí. Popisuje také přístupy, které můžete použít ke splnění těchto výzev.
Toto téma je součástí série kurzů založených na požadavcích na podnikové nasazení fiktivní společnosti s názvem Fabrikam, Inc. Tato série kurzů používá ukázkové řešení – řešení Contact Manager – k reprezentaci webové aplikace s realistickou úrovní složitosti, včetně aplikace ASP.NET MVC 3, služby WCF (Windows Communication Foundation) a databázového projektu.
Metoda nasazení, která je jádrem těchto kurzů, je založená na přístupu založeném na rozdělených souborech projektu popsaném v tématu Vysvětlení souboru projektu, ve kterém je proces sestavení řízen dvěma soubory projektu – jedním obsahujícím pokyny k sestavení, které platí pro každé cílové prostředí, a jedním obsahujícím nastavení sestavení a nasazení specifické pro prostředí. V době sestavení se soubor projektu specifického pro prostředí sloučí do souboru projektu nezávislého na prostředí, aby se vytvořila úplná sada pokynů k sestavení.
K jakým problémům dochází při nasazení databáze členství?
Ve většině případů platí, že když vytvoříte strategii nasazení databáze, musíte nejprve zvážit, jaká data chcete nasadit. Ve vývojovém nebo testovacím prostředí můžete chtít nasadit data uživatelského účtu, abyste usnadnili rychlé a snadné testování. V přípravném nebo produkčním prostředí je velmi nepravděpodobné, že byste chtěli nasadit data uživatelského účtu.
Databáze členství ASP.NET bohužel přinášejí určité specifické problémy, které toto rozhodnutí značně zkompilují:
- Nasazení pouze schématu ponechá databázi členství v neprovozovém stavu. Je to proto, že databáze členství obsahuje některá konfigurační data (v tabulce aspnet_SchemaVersions ), která databáze potřebuje ke své funkci. Pokud tedy provedete nasazení databáze členství pouze na schématu, abyste vyloučili data uživatelských účtů, budete muset spustit skript po nasazení a přidat základní konfigurační data.
- V závislosti na konfiguraci databáze členství může poskytovatel členství použít klíč počítače k šifrování hesel a jejich uložení v databázi. V takovém případě budou všechna data uživatelského účtu, která nasadíte s databází, na cílovém serveru nepoužitelná. Z tohoto důvodu není nasazení dat uživatelského účtu podporovaným scénářem.
Volba strategie databáze členství
Při volbě způsobu zřízení databáze členství v prostředí podnikového serveru použijte tyto pokyny:
- Pokud je to možné, nenasazujte databáze členství. Místo toho vytvořte databázi členství ručně na cílovém databázovém serveru. Pokud jste si schéma databáze členství nepřizpůsobili, můžete jednoduše vytvořit nové schéma na místě v cílovém umístění pomocí nástroje ASP.NET SQL Server Registration Tool (aspnet_regsql.exe).
- Pokud nemáte jinou možnost, než nasadit databázi členství ( například pokud jste provedli rozsáhlé úpravy schématu databáze ), měli byste provést nasazení databáze členství pouze na schématu, vyloučit data uživatelských účtů a pak spuštěním skriptu po nasazení přidat požadovaná konfigurační data. Obecné pokyny k těmto přístupům najdete v tématu Postupy: Nasazení databáze členství ASP.NET bez zahrnutí uživatelských účtů.
Je důležité si uvědomit, že schéma vaší členské databáze bude pravděpodobně poměrně statické. I když jste přizpůsobili databázi členství, je nepravděpodobné, že budete muset schéma pravidelně aktualizovat – nebude se měnit se stejnou frekvencí jako kód ve webové aplikaci nebo databázovém projektu. Proto byste neměli databázi členství zahrnout do žádných automatizovaných procesů nasazení ani procesů nasazení v jednom kroku.
Použití VSDBCMD k aktualizaci schématu databáze členství
Pokud změníte strukturu databáze členství po prvním nasazení, možná nebudete chtít k opětovnému nasazení databáze použít Nástroj pro nasazení webu Internetové informační služby (IIS). Funkce nasazení databáze v nasazení webu nezahrnuje možnost provádět rozdílové aktualizace cílové databáze– místo toho nasazení webu musí databázi odstranit a znovu vytvořit. To znamená, že ztratíte všechna existující data uživatelského účtu, což je v přípravném nebo produkčním prostředí obvykle nežádoucí.
Alternativou je použití nástroje VSDBCMD k aktualizaci schématu cílové databáze. VSDBCMD zahrnuje dvě důležité funkce. Nejprve může importovat schéma existující databáze do souboru .dbschema. Za druhé může nasadit soubor .dbschema do existující databáze jako rozdílovou aktualizaci, což znamená, že provede pouze změny potřebné k aktualizaci cílové databáze a nepřijdete o žádná data.
K aktualizaci schématu databáze členství můžete použít tyto základní kroky:
- Pomocí akce importu VSDBCMD vygenerujte soubor .dbschema pro zdrojovou databázi členství. Tento postup je popsaný v tématu Postupy: Import schématu z příkazového řádku.
- Pomocí akce Nasadit VSDBCMD nasaďte soubor .dbschema do cílové databáze členství. Tento postup je popsaný v tématu Referenční informace k příkazovému řádku pro VSDBCMD.EXE (nasazení a import schématu).
Závěr
Toto téma popisuje některé problémy, kterým můžete čelit, když potřebujete zřídit databáze členství ASP.NET v různých cílových prostředích. Konkrétně vysvětluje, proč nasazení pouze schématu ponechají databázi členství v neprovozním stavu a proč se nasazení dat uživatelského účtu nepodporuje. Toto téma také obsahuje pokyny ke zřizování, nasazování a aktualizaci databází členství v různých scénářích.
Další čtení
Další pokyny a příklady použití nástroje VSDBCMD najdete v tématech Referenční informace k příkazovému řádku pro VSDBCMD.EXE (nasazení a import schématu) a Postupy: Import schématu z příkazového řádku. Další informace o vytváření databází členství pomocí aspnet_regsql.exe najdete v tématu ASP.NET SQL Server Registration Tool (aspnet_regsql.exe). Obecnější pokyny k nasazení databází členství najdete v tématu Postupy: Nasazení databáze členství ASP.NET bez zahrnutí uživatelských účtů.