Serwisanci dostępni teraz · czynne całą dobę, także w weekendy i świętaWarszawa i okolice · dojazd bezpłatny
Darmowa diagnoza laptopa
Darmowa diagnoza laptopa
Dojazd do klienta bezpłatnie
Dojazd do klienta bezpłatnie
Laptopy zastępcze bezpłatnie
Laptopy zastępcze bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie

SQL Server PowerShell

Termin Definicja
SQL Server PowerShell

SQL Server PowerShell to zestaw poleceń umożliwiających skryptowe zarządzanie instancją bazy danych.

Czym jest SQL Server PowerShell

SQL Server PowerShell to zestaw narzędzi firmy Microsoft przeznaczonych do skryptowego zarządzania Microsoft SQL Server. Funkcje te są udostępniane przede wszystkim przez moduł PowerShell SqlServer, który zawiera polecenia do pracy z instancjami, bazami danych, tabelami, użytkownikami, zadaniami SQL Server Agent oraz konfiguracją serwera. Moduł pozwala wykonywać operacje administracyjne bez konieczności ręcznego powtarzania tych samych czynności w SQL Server Management Studio.

Ważnym elementem tego środowiska jest SQL Server Management Objects, czyli SMO. Jest to biblioteka obiektowa platformy .NET, za pomocą której skrypty mogą odwoływać się do obiektów SQL Server, takich jak Server, Database, Table, Login czy Job. PowerShell udostępnia również dostawcę SQL Server PowerShell, dzięki któremu obiekty serwera można przeglądać w formie podobnej do systemu plików, używając ścieżek zawierających między innymi element SQLSERVER:.

Moduł SqlServer i podstawowe polecenia

Pracę zwykle rozpoczyna się od załadowania modułu poleceniem Import-Module SqlServer. Listę dostępnych poleceń można sprawdzić za pomocą Get-Command -Module SqlServer. Do nawiązania połączenia z instancją służy między innymi Get-SqlInstance, natomiast Get-SqlDatabase pobiera informacje o bazach danych dostępnych na wskazanym serwerze. Przykładowo, zapytanie do lokalnej instancji można wykonać poleceniem Invoke-Sqlcmd -ServerInstance "localhost" -Database "master" -Query "SELECT name FROM sys.databases".

Invoke-Sqlcmd umożliwia wykonywanie instrukcji T-SQL zapisanych bezpośrednio w skrypcie albo w pliku. Polecenie obsługuje także parametry związane z instancją, bazą danych, uwierzytelnianiem i obsługą błędów. W skryptach automatyzujących administrację warto jawnie ustawić reakcję na błędy, na przykład przez użycie -ErrorAction Stop, ponieważ domyślne kontynuowanie działania po niektórych błędach może prowadzić do częściowego wykonania procedury. Wynik zapytania może zostać przekazany do kolejnych poleceń PowerShell, zapisany do pliku CSV albo wykorzystany w warunku logicznym.

Automatyzacja administracji i diagnostyki

SQL Server PowerShell jest używany do powtarzalnych zadań wykonywanych na jednej lub wielu instancjach SQL Server. Skrypt może na przykład sprawdzić stan baz, rozmiar plików danych i dzienników, dostępne miejsce, konfigurację kopii zapasowych albo ostatnie wykonania zadań SQL Server Agent. Dzięki pętlom, funkcjom i potokowi PowerShell można zastosować tę samą kontrolę do listy instancji, a następnie zebrać wyniki w jednolitym raporcie.

Biblioteka SMO pozwala wykonywać operacje administracyjne na obiektach serwera, w tym tworzyć bazy danych, odczytywać właściwości tabel i indeksów oraz analizować konfigurację instancji. W praktyce skrypt powinien rozdzielać odczyt stanu od operacji zmieniających środowisko. Przed wykonaniem poleceń takich jak zmiana konfiguracji, usunięcie obiektu lub modyfikacja uprawnień należy zweryfikować nazwę instancji, bazę docelową i konto używane do połączenia. W przypadku połączeń zdalnych znaczenie mają poprawna nazwa instancji, dostępność portu oraz sposób uwierzytelniania skonfigurowany w SQL Server.

W starszych instalacjach można spotkać moduł lub środowisko SQLPS. Jest ono związane z wcześniejszym sposobem integracji narzędzi PowerShell z SQL Server, natomiast współczesne skrypty zazwyczaj korzystają z modułu SqlServer. Przy diagnozowaniu problemu warto sprawdzić zainstalowane moduły poleceniem Get-Module -ListAvailable SqlServer, SQLPS oraz upewnić się, że wersja modułu jest zgodna z używaną wersją PowerShell i wymaganiami konkretnej instalacji SQL Server.

Bezpieczne używanie skryptów SQL Server

Skrypt administracyjny powinien jednoznacznie wskazywać serwer i bazę, rejestrować wynik wykonanych czynności oraz kończyć działanie w przewidywalny sposób po błędzie krytycznym. Nie należy umieszczać haseł wprost w plikach PowerShell ani przekazywać ich jako zwykłego tekstu w parametrach widocznych w historii poleceń. Do uwierzytelniania można wykorzystać konto Windows, jeżeli konfiguracja SQL Server i środowisko na to pozwalają, albo bezpiecznie przekazany mechanizm uwierzytelniania SQL Server. Zakres uprawnień powinien odpowiadać wykonywanej operacji.

Przed uruchomieniem skryptu zmieniającego dane lub konfigurację należy przetestować go na kontrolowanej kopii środowiska i ograniczyć zakres działania przez jawne parametry. Warto również sprawdzać polecenia Get-Help, na przykład Get-Help Invoke-Sqlcmd -Full, ponieważ dostępne parametry i sposób instalacji modułu zależą od jego wersji. W przypadku problemów diagnostycznych przydatne są informacje o wersji PowerShell, wersji modułu SqlServer, nazwie instancji, komunikacie błędu oraz pełnym poleceniu po usunięciu danych uwierzytelniających.

+48 22 100 48 29Zadzwoń teraz · serwisant w 1 godzinę