Připojení databáze
platí pro:SQL Server
Tento článek popisuje, jak připojit databázi na SQL Serveru pomocí aplikace SQL Server Management Studio nebo Transact-SQL. Pomocí této funkce můžete zkopírovat, přesunout nebo upgradovat databázi SQL Serveru.
Omezení a restrikce
Seznam omezení a omezení najdete v tématu Odpojení a připojení databáze (SQL Server).
Požadavky
Než budete pokračovat, projděte si všechny následující požadavky:
V případě, že přesouváte databázi z jedné instance do jiné, musí být databáze nejprve odpojena od jakékoli existující instance SQL. Pokud se pokusíte připojit databázi, která nebyla odpojena, vrátí chybu. Další informace naleznete v tématu Odpojit databázi.
Když připojíte databázi, musí být všechny datové soubory pro databázi dostupné. Tyto soubory mají často přípony .mdf nebo .ndf (pro datové soubory) a .ldf (pro soubory transakčních protokolů). Kromě toho musí být k dispozici všechny skupiny souborů pro data FILESTREAM. Další informace o připojení databáze s povolenou funkcí FILESTREAM naleznete v tématu Přesunutí FILESTREAM-Enabled Databáze.
Pokud má některý datový soubor jinou cestu než při prvním vytvoření nebo posledním připojení databáze, musíte zadat aktuální cestu k souboru.
Účet služby databázového enginu musí mít oprávnění ke čtení souborů v novém umístění.
Pokud jsou soubory MDF a LDF v různých adresářích a jedna z cest zahrnuje
\\?\GlobalRoot
, při připojení databáze operace selže.
Je Attach nejlepší volbou?
Doporučujeme, abyste při přesunu databázových souborů v rámci stejné instance použili plánovaný postup přemístění ALTER DATABASE
, místo odpojování a připojování. Další informace naleznete v tématu Přesun uživatelských databází.
Pro zálohování a obnovení se nedoporučuje používat odpojení a připojení. Při externím odpojování souborů z SQL Serveru nejsou k dispozici žádné zálohy transakčních protokolů ani obnovení k určitému bodu v čase.
Bezpečnost
Oprávnění k přístupu k souborům se nastavují během mnoha databázových operací, včetně odpojení a připojení databáze. Pokud je databáze odpojena nebo připojena, databázový server se pokusí napodobit účet systému Windows připojení, které provádí operaci, aby zajistil, že účet má oprávnění pro přístup k databázi a souborům protokolu. U účtů se smíšeným zabezpečením, které používají přihlášení k SQL Serveru, může zosobnění selhat.
Následující tabulka uvádí oprávnění nastavená pro databázi a soubory protokolů po dokončení operace připojení nebo odpojení a informace o tom, jestli může databázový stroj zosobnit připojovací účet.
Operace | Připojení účtu může být zosobněné | Oprávnění k souborům jsou udělena |
---|---|---|
Odpojit | Ano | Operaci provádí pouze účet. Další účty může přidat správce operačního systému, pokud jsou potřeba po odpojení databáze. |
Odpojit | Ne | Účet služby SQL Server (MSSQLSERVER) a členové místní skupiny Windows Administrators. |
Připojit | Ano | Účet služby SQL Server (MSSQLSERVER) a členové místní skupiny Windows Administrators. |
Připojit | Ne | Účet služby SQL Server (MSSQLSERVER). |
Další informace o oprávněních systému souborů, která jsou udělena identifikátorům SID pro jednotlivé služby služby SQL Server, najdete v tématu Konfigurace oprávnění systému souborů pro přístup k databázovému stroji.
Opatrnost
Doporučujeme nepřiložit nebo obnovit databáze z neznámých nebo nedůvěryhodných zdrojů. Takové databáze můžou obsahovat škodlivý kód, který by mohl spouštět nezamýšlené Transact-SQL kód nebo způsobit chyby úpravou schématu nebo fyzické struktury databáze. Před použitím databáze z neznámého nebo nedůvěryhodného zdroje spusťte DBCC CHECKDB v databázi na neprodukčním serveru a také zkontrolujte kód, jako jsou uložené procedury nebo jiný uživatelem definovaný kód v databázi. Další informace o připojování databází a informací o změnách metadat při připojování databáze naleznete v tématu Odpojení a připojení databáze (SQL Server).
Dovolení
Vyžaduje oprávnění CREATE DATABASE
, CREATE ANY DATABASE
nebo ALTER ANY DATABASE
.
Použití aplikace SQL Server Management Studio (SSMS)
Před přesunem databáze
Pokud přesouváte databázi, před odpojením od stávající instance SQL Serveru zkontrolujte soubory přidružené k databázi a jejich aktuálním umístěním pomocí stránky Vlastnosti databáze.
V Průzkumníku objektů aplikace SQL Server Management Studio se připojte k instanci databázového stroje SQL Serveru a pak rozbalte instanci.
Rozbalte Databázea vyberte název uživatelské databáze, kterou chcete odpojit.
Pravým tlačítkem myši klikněte na název databáze, vyberte Vlastnosti. Vyberte stránku Soubory a zkontrolujte položky v tabulce Databázové soubory:.
Před odpojením, přesunutím a připojením nezapomeňte počítat se všemi soubory přidruženými k databázi. Pak pokračujte kroky odpojení databáze, zkopírování souboru a připojení databáze v následující části. Další informace naleznete v tématu Odpojení databáze.
Připojení databáze
V aplikaci SQL Server Management Studio Průzkumník objektů, připojte se k instanci databázového stroje SQL Serveru a pak v SSMS vyberte možnost rozbalit zobrazení této instance.
Klepněte pravým tlačítkem na Databáze a vyberte Připojit.
V dialogovém okně Připojit databáze určete databázi, která se má připojit, vyberte Přidat. V dialogovém okně Najít soubory databáze vyberte umístění, ve kterém se nachází databáze, a rozbalte adresářový strom, abyste našli a vybrali .mdf soubor databáze; například:
C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA\AdventureWorks2022_Data.mdf
Důležitý
Při pokusu o výběr databáze, která je již připojena, se vygeneruje chyba.
databáze pro připojení
Zobrazí informace o vybraných databázích.<žádné záhlaví sloupce>
Zobrazí ikonu označující stav operace připojení. Možné ikony jsou popsány v popisu stavu.umístění souboru MDF
Zobrazí cestu a název vybraného souboru MDF.Název databáze
Zobrazí název databáze.Připojit jako
Volitelně můžete určit jiný název databáze, která se má připojit jako.vlastníka
Poskytuje rozevírací seznam možných vlastníků databáze, ze kterých můžete volitelně vybrat jiného vlastníka.Stav
Zobrazí stav databáze podle následující tabulky:Ikona Text stavu Popis (Žádná ikona) (Bez textu) Operace připojení nebyla spuštěna nebo může být stále ve stavu čekání pro tento objekt. Toto je výchozí nastavení při otevření dialogového okna. Zelený trojúhelník směřující doprava Probíhá Operace připojení byla spuštěna, ale není dokončena. Zelená fajfka Úspěch Objekt byl úspěšně připojen. Červený kruh obsahující bílý kříž Chyba Operace připojení narazila na chybu a nebyla úspěšně dokončena. Kruh obsahující dva černé kvadranty (vlevo a vpravo) a dva bílé kvadranty (nahoře a dole) Zastavený Operace připojení nebyla úspěšně dokončena, protože jste operaci zastavili. Kruh obsahující zakřivenou šipku směřující proti směru hodinových ručiček Vráceno zpět Operace připojení byla úspěšná, ale byla zrušena kvůli chybě během připojení jiného objektu. zprávy
Zobrazí prázdnou zprávu nebo hypertextový odkaz Soubor nebyl nalezen.Přidat
Vyhledejte potřebné hlavní databázové soubory. Když vyberete soubor .mdf, příslušné informace se vyplní automaticky do příslušných polí Databáze pro připojení mřížky.odebrat
Odebere vybraný soubor z databáze a připojí mřížku."<database_name>" detaily databáze
Zobrazí názvy souborů, které se mají připojit. Chcete-li ověřit nebo změnit název cesty souboru, vyberte tlačítko Procházet (...).Poznámka
Pokud soubor neexistuje, ve sloupci Zpráva se zobrazí zpráva Nenalezena. Pokud se soubor protokolu nenajde, existuje v jiném adresáři nebo byl odstraněn. Musíte buď aktualizovat cestu k souboru v mřížce podrobností databáze , aby odkazovala na správné umístění, nebo odebrat soubor protokolu z mřížky. Pokud se datový soubor .ndf nenajde, musíte aktualizovat jeho cestu v mřížce, aby odkazovala na správné umístění.
původní název souboru
Zobrazí název připojeného souboru, který patří do databáze.Typ souboru
Označuje typ souboru, Data nebo Log.aktuální cesta k souboru
Zobrazí cestu k vybranému databázovému souboru. Cestu je možné upravit ručně.zprávy
Zobrazí prázdnou zprávu nebo hypertextový odkazSoubor nebyl nalezen.
Použijte Transact-SQL
Před přesunem databáze
Pokud přesouváte databázi, před odpojením od stávající instance SQL Serveru zkontrolujte soubory přidružené k databázi a jejich aktuálním umístěním pomocí zobrazení katalogu systému sys.database_files
. Další informace naleznete v tématu sys.database_files (Transact-SQL).
V aplikaci SQL Server Management Studio vyberte New Query a otevřete Editor dotazů.
Zkopírujte následující Transact-SQL skript do Editoru dotazů a pak vyberte Spustit. Tento skript zobrazí umístění fyzických databázových souborů. Ujistěte se, že zohledníte všechny soubory, když přesouváte databázi pomocí odpojení nebo připojení.
USE [database_name] GO SELECT type_desc, name, physical_name from sys.database_files;
Před odpojením, přesunutím a připojením nezapomeňte počítat se všemi soubory přidruženými k databázi. Pak pokračujte kroky pro odpojení databáze, zkopírování souboru a připojení databáze v další části. Další informace naleznete v části Odpojení databáze.
Připojení databáze
Připojte se k databázovému stroji.
Na panelu Standard vyberte Nový dotaz.
Použijte příkaz CREATE DATABASE s klauzulí
FOR ATTACH
.Zkopírujte a vložte následující příklad do okna dotazu a vyberte Spustit. Tento příklad připojí všechny soubory databáze AdventureWorks2022 a přejmenuje databázi na
MyAdventureWorks
.CREATE DATABASE MyAdventureWorks ON (FILENAME = 'C:\MySQLServer\AdventureWorks_Data.mdf'), (FILENAME = 'C:\MySQLServer\AdventureWorks_Log.ldf') FOR ATTACH;
Databáze může obsahovat další datové soubory (obvykle .mdf nebo .ndf) a vyžadovat další soubory, které se mají zahrnout do příkazu
CREATE DATABASE ... FOR ATTACH
. Kromě toho musí být do příkazu zahrnuty také všechny skupiny souborů pro data FILESTREAM. Další informace o tom, jak připojit databázi s podporou FILESTREAM, naleznete v tématu Přesunutí FILESTREAM-Enabled Databáze.Poznámka
Případně můžete použít sp_attach_db nebo sp_attach_single_file_db uloženou proceduru. Tyto postupy se však odeberou v budoucí verzi Microsoft SQL Serveru. Nepoužívejte tuto funkci v nové vývojové práci a naplánujte úpravu aplikací, které tuto funkci aktuálně používají. Doporučujeme místo toho používat
CREATE DATABASE ... FOR ATTACH
.
Po upgradu databáze SQL Serveru
Úroveň kompatibility databáze
Po upgradu databáze pomocí metody attach bude databáze k dispozici. Databáze se automaticky upgraduje na interní úroveň verze nové instance. Pokud má databáze fulltextové indexy, proces upgradu je buď importuje, resetuje, nebo znovu sestaví podle nastavení vlastnosti serveru Full-Text Upgrade Option. Pokud je možnost upgradu nastavená na Import nebo Znovu sestavit, nebudou během upgradu k dispozici fulltextové indexy. V závislosti na množství indexovaných dat může import trvat několik hodin a opětovné sestavení může trvat až 10krát déle. Všimněte si také, že pokud je možnost upgradu nastavena na Import, pokud není k dispozici fulltextový katalog, přidružené fulltextové indexy se znovu sestaví.
Po upgradu zůstane úroveň kompatibility databáze na úrovni kompatibility před upgradem, pokud předchozí úroveň kompatibility není v nové verzi podporovaná. V takovém případě je upgradovaná úroveň kompatibility databáze nastavená na nejnižší podporovanou úroveň kompatibility. Pokud například připojíte databázi s úrovní kompatibility 90 před připojením k instanci SQL Serveru 2019 (15.x), po upgradu je úroveň kompatibility nastavená na 100, což je nejnižší podporovaná úroveň kompatibility v SQL Serveru 2019 (15.x). Další informace naleznete v tématu ALTER DATABASE úroveň kompatibility (Transact-SQL).
Zachycení změn dat (Change Data Capture)
Pokud připojujete databázi z instance SQL Serveru 2014 (12.x) nebo starší, která měla povolenou funkci Change Data Capture (CDC), je nutné spustit následující příkaz pro upgrade metadat Change Data Capture (CDC):
USE <database name>
EXEC sys.sp_cdc_vupgrade
Další informace najdete v tématu Chyba při připojení databáze s podporou CDC k instanci SQL Serveru 2016 nebo SQL Serveru 2017 ve Windows.
Viz také
- odpojení a připojení databáze (SQL Server)
- Odpojit databázi
- CREATE DATABASE (SQL Server Transact-SQL)
- konfigurace oprávnění systému souborů pro přístup k databázovému stroji
Další kroky
- Správa metadat při zpřístupnění databáze na jiném serveru
- úroveň kompatibility ALTER DATABASE (Transact-SQL)