Udostępnij za pośrednictwem


Tryb pojedynczego użytkownika dla programu SQL Server

Dotyczy:programu SQL Server

Ten artykuł zawiera informacje i kroki uruchamiania wystąpienia programu SQL Server w trybie pojedynczego użytkownika, co pozwala tylko jednemu użytkownikowi na łączenie się z wystąpieniem.

Uruchamianie wystąpienia w trybie pojedynczego użytkownika

Uruchomienie programu SQL Server w trybie pojedynczego użytkownika umożliwia każdemu członkowi lokalnej grupy administratorów komputera połączenie się z instancją SQL Server jako członek stałej roli serwera sysadmin. Aby uzyskać więcej informacji, zobacz Połącz z SQL Serverem, gdy administratorzy systemu są zablokowani.

W pewnych okolicznościach może być konieczne uruchomienie wystąpienia programu SQL Server w trybie pojedynczego użytkownika przy użyciu opcji uruchamiania -m. Na przykład możesz zmienić opcje konfiguracji serwera lub odzyskać uszkodzoną bazę danych master lub inną systemową bazę danych. Obie akcje wymagają uruchomienia wystąpienia programu SQL Server w trybie pojedynczego użytkownika.

Poniższy przykład uruchamia wystąpienie programu SQL Server w trybie pojedynczego użytkownika i zezwala na połączenie tylko za pośrednictwem edytora zapytań programu SQL Server Management Studio.

net start "SQL Server (MSSQLSERVER)" /m"Microsoft SQL Server Management Studio - Query"

Aby przywrócić bazę danych master w systemie Linux w trybie pojedynczego użytkownika, zobacz Przywracanie bazy danych master w systemie Linux w trybie pojedynczego użytkownika.

Zagadnienia ogólne

Po uruchomieniu wystąpienia programu SQL Server w trybie pojedynczego użytkownika zwróć uwagę na następujące kwestie:

  • Tylko jeden użytkownik może nawiązać połączenie z serwerem.

  • Proces CHECKPOINT nie jest wykonywany. Domyślnie jest on wykonywany automatycznie podczas uruchamiania.

Notatka

Zatrzymaj usługę SQL Server Agent przed nawiązaniem połączenia z wystąpieniem programu SQL Server w trybie pojedynczego użytkownika; w przeciwnym razie usługa SQL Server Agent używa połączenia, blokując go.

Po uruchomieniu wystąpienia programu SQL Server w trybie pojedynczego użytkownika program SQL Server Management Studio może nawiązać połączenie z programem SQL Server. Eksplorator obiektów w programie Management Studio może zakończyć się niepowodzeniem, ponieważ wymaga więcej niż jednego połączenia dla niektórych operacji. Aby zarządzać programem SQL Server w trybie pojedynczego użytkownika, wykonaj instrukcje Transact-SQL, łącząc się za pośrednictwem Edytora zapytań w programie Management Studio lub Azure Data Studio albo użyj narzędzia sqlcmd.

Jeśli używasz opcji -m z programem SQLCMD lub Management Studio, możesz ograniczyć połączenia z określoną aplikacją kliencką.

Notatka

W systemie Linux SQLCMD musi być napisane wielkimi literami, jak pokazano.

Na przykład -m"SQLCMD" ogranicza połączenia do jednego, a to połączenie musi przedstawiać się jako program kliencki sqlcmd. Użyj tej opcji, gdy uruchamiasz program SQL Server w trybie pojedynczego użytkownika, a nieznana aplikacja kliencka przyjmuje jedyne dostępne połączenie. Aby nawiązać połączenie za pośrednictwem Edytora zapytań w programie Management Studio, użyj -m"Microsoft SQL Server Management Studio - Query".

Ważny

Nie używaj tej opcji jako funkcji zabezpieczeń. Aplikacja kliencka udostępnia nazwę aplikacji klienckiej i może podać fałszywą nazwę w ramach ciągu połączenia.

Aspekty trybu zawsze włączonego

W przypadku korzystania z trybu pojedynczego serwera dla wystąpień programu SQL Server skonfigurowanych jako wystąpienie klastra Always On failover (FCI) lub gdy bazy danych są częścią grupy dostępności Always On (AG), istnieją dodatkowe zagadnienia.

Grupy dostępności

Uruchamianie grupy dostępności Always On i baz danych w grupie jest pomijane, gdy SQL Server jest uruchomiony w trybie pojedynczego użytkownika. Jeśli musisz rozwiązać problemy z bazą danych, która wymaga uruchomienia programu SQL Server w trybie pojedynczego użytkownika, a baza danych jest również częścią grupy dostępności, musisz usunąć bazę danych z grupy dostępności przed uruchomieniem programu SQL Server w trybie pojedynczego użytkownika, aby baza danych jest w trybie online.

Wystąpienia klastra trybu failover

W przypadku instalacji programu SQL Server w środowisku klastra, gdy program SQL Server jest uruchamiany w trybie pojedynczego użytkownika, biblioteka dll zasobów klastra używa dostępnego połączenia, blokując w ten sposób wszelkie inne połączenia z serwerem. Kiedy program SQL Server jest w tym stanie, próba udostępnienia zasobu Agenta SQL Server online może spowodować przełączenie awaryjne zasobu SQL do innego węzła, jeśli zasób jest skonfigurowany tak, aby wpływał na grupę.

Aby obejść problem, wykonaj następującą procedurę:

  1. Usuń parametr uruchamiania -m z właściwości zaawansowanych programu SQL Server.

  2. Przełącz zasób programu SQL Server w tryb offline.

  3. Z aktualnego węzła właściciela grupy wydaj następujące polecenie przez wiersz polecenia:

    net start MSSQLSERVER /m
    
  4. Sprawdź z poziomu konsoli zarządzania klastra lub klastra trybu failover, czy zasób programu SQL Server jest nadal w trybie offline.

  5. Połącz się teraz z programem SQL Server przy użyciu następującego polecenia i wykonaj niezbędną operację: SQLCMD -E -S<servername>.

  6. Po zakończeniu operacji zamknij wiersz polecenia i wróć do bazy danych SQL i innych zasobów w trybie online za pośrednictwem administratora klastra.