Uzyskanie wyłączności dostępu do bazy danych MS SQL

Zdarza się, że administrator SQL potrzebuje uzyskać wyłączny dostęp do bazy w MS SQL. Opcja ta jest przydatna szczególnie gdy robi się backup lub restore.

Wyłączność do bazy danych można uzyskać poprzez zakończenie w SQL Enterprise Manager wszystkich procesów użytkowników używających danej bazy, widocznych w Process Info.

Nie odbierze im to jednak możliwości ponownego podłączenia się do bazy. Więc jak można zablokować dostęp do danej bazy użytkownikom?

Najprostszy i najbardziej niezawodny sposób to przełączenie bazy w tryb jednego użytkownika używając komendy ALTER DATABASE uruchamianą z poziomu SQL Query Analyzer. Polecenie ALTER DATABASE daje możliwość wyboru jednej z trzech opcji zakończenia wykonywanych właśnie operacji:

  • Natychmiastowy rollback otwartych transakcji bez czekania na ich zakończenie

ALTER DATABASE [nazwa_bazy] SET SINGLE_USER WITH ROLLBACK IMMEDIATE

  • Zakończenie i rollback otwartych transakcji po czasie XX wyrażonym w sekundach

ALTER DATABASE [nazwa_bazy] SET SINGLE_USER WITH ROLLBACK AFTER XX

  • Przełączenie bazy danych w tryb pojedynczego użytkownika po tym jak wszystkie transakcje się wykonają. Jeśli po upływie określonego czasu transakcje dalej trwają polecenie zwróci błąd i nie przełączy bazy w tryb wyłączności.

ALTER DATABASE [nazwa_bazy] SET SINGLE_USER WITH NO_WAIT

Opcja ostatnia jest najbezpieczniejsza z punktu systemu lecz nie powiedzie się dopóki wszystkie operacje się nie zakończą.

Należy tez zwrócić uwagę, że w przypadku długo trwających transakcji rollback może zająć odpowiednio dużo czasu.

Zamiast używania SINGLE_USER można też użyć przełącznika RESTRICTED_USER. Spowoduje to, że tylko użytkownicy zdefiniowani w bazie jako db_owner, dbcreator i sysadmin będą mogli uzyskać do niej dostęp.

Po wykonaniu czynności wymagających trybu wyłączności (np. backupu) bazę można przełączyć w tryb wielu użytkowników poleceniem:

ALTER DATABASE [nazwa_bazy] SET MULTI_USER

Share this post

Nie ma jeszcze żadnych komentarzy.

O mnie

Dobromir Chodkowski

Jestem informatykiem z zawodu oraz z zamiłowania, pasjonatem fotografii.

Nieraz udaje mi się znaleźć czas w i wtedy dzielę się z Wami swoją wiedzą informatyczną.

aVaria - codzienność informatyka

2014 r., Amstelveen,Netherlands

O aVarii

Znajdziesz tu porady komputerowe, sztuczki oraz rozwiązania z dziedziny IT i tematów pokrewnych.

Jeśli interesuje Cie jakiś temat, skontaktuj się ze mną, a postaram się znaleźć czas, aby interesujące Cię kwestie opisać i wytłumaczyć.