Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Tento článek popisuje, jak můžete získat přístup k databázovému stroji SQL Serveru jako správce systému, pokud jste uzamčeni. Správce systému může ztratit přístup k instanci SQL Serveru z jednoho z následujících důvodů:
Všechna přihlášení, která jsou členy pevné serverové role systémového správce , byla omylem odstraněna.
Omylem byly odebrány všechny skupiny Windows, které jsou členy správce systému pevné role serveru.
Přihlášení, která jsou členy pevné role serveru sysadmin, patří jednotlivcům, kteří opustili společnost nebo nejsou k dispozici.
Účet
sa
je zakázaný nebo nikdo nezná heslo.
Usnesení
Pokud chcete problém s přístupem vyřešit, doporučujeme spustit instanci SQL Serveru v režimu jednoho uživatele. Tento režim zabraňuje výskytu jiných připojení při pokusu o opětovné získání přístupu. Odtud se můžete připojit ke své instanci SQL Serveru a přidat své přihlášení k roli správce systému serveru. Podrobné kroky pro toto řešení jsou uvedeny v části pokynů krok za krokem.
Instanci SQL Serveru můžete spustit v režimu jednoho uživatele pomocí -m
nebo -f
možností z příkazového řádku. Každý člen místní skupiny Administrators počítače se pak může připojit k instanci systému SQL Server jako člen sqladmin pevné role serveru.
Při spuštění instance v režimu jednoho uživatele zastavte službu agenta SQL Serveru. Jinak se může agent SQL Serveru připojit jako první, vzít jediné dostupné připojení k serveru a zablokovat vám přihlášení.
Je také možné, aby neznámá klientská aplikace převzala jediné dostupné připojení, než se budete moct přihlásit. Abyste tomu zabránili, můžete použít možnost -m
následovanou názvem aplikace, abyste omezili připojení k jednomu připojení ze zadané aplikace. Například spuštění SQL Serveru s -mSQLCMD
omezuje připojení k jednomu připojení, které se identifikuje jako sqlcmd klientský program. Pokud se chcete připojit prostřednictvím Editoru dotazů v sadě Management Studio, použijte -m"Microsoft SQL Server Management Studio - Query"
.
Důležitý
Nepoužívejte -m
s názvem aplikace jako funkcí zabezpečení. Klientské aplikace určují název aplikace prostřednictvím nastavení připojovacího řetězce, takže ho lze snadno falšovat s nesprávným názvem.
Následující tabulka shrnuje různé způsoby spuštění instance v režimu jednoho uživatele v příkazovém řádku.
Možnost | Popis | Kdy použít |
---|---|---|
-m |
Omezuje připojení na jedno. | K instanci se nepokoušají připojit žádní jiní uživatelé nebo si nejste jistí názvem aplikace, který používáte pro připojení k instanci. |
-mSQLCMD |
Omezuje připojení k jednomu připojení, které se musí identifikovat jako klientský program sqlcmd. | Plánujete se připojit k instanci pomocí sqlcmda chcete zabránit tomu, aby ostatní aplikace převzaly jediné dostupné připojení. |
-m"Microsoft SQL Server Management Studio - Query" |
Omezuje připojení na jediné připojení, které se musí identifikovat jako aplikace Microsoft SQL Server Management Studio - Dotaz. | Plánujete se připojit k instanci prostřednictvím Editoru dotazů v sadě Management Studio a chcete zabránit tomu, aby ostatní aplikace převzaly jediné dostupné připojení. |
-f |
Omezí připojení k jednomu připojení a spustí instanci v minimální konfiguraci. | Některé další konfigurace vám brání ve spuštění. |
Podrobné pokyny
Podrobné pokyny o tom, jak spustit SQL Server v režimu s jedním uživatelem, najdete v tématu Spuštění SQL Serveru v Single-User režimu.
Použití PowerShellu
Možnost 1: Spuštění kroků přímo ve spustitelném poznámkovém bloku pomocí nástroje Azure Data Studio
Poznámka
Než se pokusíte tento poznámkový blok otevřít, zkontrolujte, jestli je na místním počítači nainstalovaná sada Azure Data Studio. Informace o instalaci nástroje Azure Data Studio najdete v tématu Naučte se nainstalovatAzure Data Studio.
Možnost 2: Postupujte podle kroku ručně.
Otevřete příkazový řádek Windows PowerShellu se zvýšenými oprávněními.
Nastavte název služby a instanci SQL Serveru a přihlašovací proměnné systému Windows. Nahraďte tyto hodnoty hodnotami, které odpovídají vašemu prostředí.
Pokud máte výchozí instanci, použijte
MSSQLSERVER
bez názvu instance.$service_name = "MSSQL`$instancename" $sql_server_instance = "machine_name\instance" $login_to_be_granted_access = "[CONTOSO\PatK]"
Zastavte službu SQL Serveru, aby ji bylo možné restartovat v režimu jednoho uživatele pomocí následujícího příkazu:
Pokud máte výchozí instanci, použijte
MSSQLSERVER
bez názvu instance.net stop $service_name
Teď spusťte instanci SQL Serveru v režimu jednoho uživatele a povolte připojení pouze SQLCMD.exe (
/mSQLCMD
):Poznámka
Nezapomeňte použít formát velkých písmen
SQLCMD
Pokud máte výchozí instanci, použijte
MSSQLSERVER
bez názvu instance.net start $service_name /f /mSQLCMD
Pomocí sqlcmdspusťte příkaz
CREATE LOGIN
následovaný příkazemALTER SERVER ROLE
. Tento krok předpokládá, že jste se přihlásili k Windows pomocí účtu, který je členem místní skupiny Administrators. Tento krok předpokládá, že jste nahradili doménu a přihlašovací jména přihlašovacími údaji, kterým chcete udělit členství správce systému.Pokud máte výchozí instanci, použijte název serveru.
sqlcmd.exe -E -S $sql_server_instance -Q "CREATE LOGIN $login_to_be_granted_access FROM WINDOWS; ALTER SERVER ROLE sysadmin ADD MEMBER $login_to_be_granted_access; "
Pokud se zobrazí následující chyba, musíte zajistit, aby k SQL Serveru nebyl připojen žádný jiný sqlcmd:
Sqlcmd: Error: Microsoft ODBC Driver X for SQL Server : Login failed for user 'CONTOSO\BobD'. Reason: Server is in single user mode. Only one administrator can connect at this time.
smíšený režim (volitelné): Pokud je instance SQL Serveru spuštěná v režimu smíšeného ověřování, můžete také:
Udělte správce systému členství v roli pro přihlášení k SQL Serveru. Spusťte následující kód pro vytvoření nových přihlašovacích údajů pro ověřování SQL Serveru, které jsou členem pevné role serveru sysadmin. Nahraďte
<strong_password>
silným heslem podle vašeho výběru.Pokud máte výchozí instanci, použijte název serveru.
$strong_password = "<strong_password>" sqlcmd.exe -E -S $sql_server_instance -Q "CREATE LOGIN TempLogin WITH PASSWORD = '$strong_password'; ALTER SERVER ROLE sysadmin ADD MEMBER TempLogin; "
Pokud je vaše instance SQL Serveru spuštěná v režimu smíšeného ověřování a chcete resetovat heslo povoleného účtu
sa
. Změňte heslo účtu sa pomocí následující syntaxe. Nezapomeňte nahradit<strong_password>
silným heslem podle vašeho výběru:Pokud máte výchozí instanci, použijte název serveru.
$strong_password = "<strong_password>" sqlcmd.exe -E -S $sql_server_instance -Q "ALTER LOGIN sa WITH PASSWORD = $strong_password; "
Zastavení a restartování instance SQL Serveru v režimu více uživatelů
Pokud máte výchozí instanci, použijte
MSSQLSERVER
bez názvu instance.net stop $service_name net start $service_name
Použijte nástroj SQL Server Configuration Manager a Management Studio (SSMS)
Tyto pokyny předpokládají:
SQL Server běží ve Windows 8 nebo novějším. Tam, kde je to možné, jsou k dispozici drobné úpravy starších verzí SQL Serveru nebo Windows.
SQL Server Management Studio je nainstalován v počítači.
Při přihlášení k Systému Windows jako člena místní skupiny administrators proveďte tyto pokyny.
V nabídce Start systému Windows klikněte pravým tlačítkem myši na ikonu nástroje SQL Server Configuration Manager a zvolte Spustit jako správce, abyste předali své přihlašovací údaje správce do Configuration Manageru.
V nástroji SQL Server Configuration Manager, v levém podokně vyberte služby serveru SQL. V pravém podokně vyhledejte instanci SQL Serveru. (Výchozí instance SQL Serveru obsahuje (MSSQLSERVER) za názvem počítače. Pojmenované instance se zobrazují velkými písmeny se stejným názvem, který mají na registrovaných serverech.) Klikněte pravým tlačítkem myši na instanci SQL Serveru a vyberte Vlastnosti.
Na kartě Spouštěcí parametry zadejte do pole Spouštěcí parametr hodnotu
-m
a poté vyberte možnost Přidat. (To je pomlčka a pak malé písmeno m.)U některých starších verzí SQL Serveru není k dispozici karta Parametry spuštění. V takovém případě na kartě Upřesnit poklikejte na Parametry spuštění. Parametry se otevřou v malém okně. Dávejte pozor, abyste nezměnili žádný z existujících parametrů. Na konci přidejte nový parametr
;-m
a pak vyberte OK. (To je středník a potom pomlčka a malá písmena m.)Vyberte OKa po zobrazení zprávy o restartování klikněte pravým tlačítkem myši na název serveru a pak vyberte Restartovat.
Po restartování SQL Serveru bude váš server v režimu jednoho uživatele. Ujistěte se, že agent SQL Serveru není spuštěný. Pokud je to spuštěné, trvá to jenom vaše připojení.
V nabídce Start systému Windows klikněte pravým tlačítkem myši na ikonu aplikace Management Studio a vyberte Spustit jako správce. Tím se předá přihlašovací údaje správce do aplikace SSMS.
V dřívějších verzích Windows se jako podnabídka zobrazí možnost Spustit jako správce.
V některých konfiguracích se SSMS pokusí provést několik připojení. Více připojení selže, protože SQL Server je v režimu jednoho uživatele. Na základě vašeho scénáře proveďte jednu z následujících akcí.
Připojte se k Průzkumníku objektů pomocí ověřování systému Windows, které zahrnuje vaše přihlašovací údaje správce. Rozbalte Zabezpečení, rozbalte Přihlášenía dvojklikněte na své vlastní přihlášení. Na stránce Role serveru vyberte správce systému a pak vyberte OK.
Místo připojení pomocí Průzkumníka objektů se připojte k okně dotazu pomocí ověřování systému Windows (který zahrnuje přihlašovací údaje správce). (Tímto způsobem se můžete připojit pouze v případě, že jste se nepřipojili pomocí Object Explorer.) Proveďte následující kód pro přidání nového Windows Authentication login, který je členem sysadmin fixed server role. Následující příklad přidá uživatele domény s názvem
CONTOSO\PatK
.CREATE LOGIN [CONTOSO\PatK] FROM WINDOWS; ALTER SERVER ROLE sysadmin ADD MEMBER [CONTOSO\PatK];
Pokud sql Server běží v režimu smíšeného ověřování, připojte se k okně dotazu pomocí ověřování systému Windows (který zahrnuje přihlašovací údaje správce). Spusťte kód, jako je například následující, a vytvořte nové přihlášení k ověřování SQL Server, které je členem fixní role serveru správce systému.
CREATE LOGIN TempLogin WITH PASSWORD = '<strong_password>'; ALTER SERVER ROLE sysadmin ADD MEMBER TempLogin;
Varování
Nahraďte <strong_password> silným heslem.
Pokud sql Server běží v režimu smíšeného ověřování a chcete resetovat heslo účtu
sa
, připojte se k okně dotazu pomocí ověřování systému Windows (který zahrnuje přihlašovací údaje správce). Změňte heslo účtusa
následující syntaxí.ALTER LOGIN sa WITH PASSWORD = '<strong_password>';
Varování
Nahraďte <strong_password> silným heslem.
Zavřete Management Studio.
V následujících několika krocích se SQL Server změní zpět na režim s více uživateli. V nástroji SQL Server Configuration Manager v levém podokně vyberte služby SQL Server.
V pravém podokně klikněte pravým tlačítkem myši na instanci SQL Serveru a pak vyberte Vlastnosti.
Na kartě Spouštěcí parametry v poli Existující parametry vyberte
-m
a pak vyberte Odebrat.U některých starších verzí SQL Serveru není karta Parametry spuštění. V takovém případě na kartě Upřesnit poklikejte na spouštěcí parametry. Parametry se otevřou v malém okně. Odeberte
;-m
, které jste přidali dříve, a vyberte OK.Pravým tlačítkem myši klikněte na název serveru a vyberte Restart. Před spuštěním SQL Serveru v režimu jednoho uživatele nezapomeňte agenta SQL Serveru spustit znovu.
Teď byste měli být schopni se normálně připojit k jednomu z účtů, které jsou teď členem správce systému pevné role serveru.
Související obsah
- Konfigurace možností spuštění serveru
- Možnosti spuštění služby databázového stroje