| Termin | Definicja |
|---|---|
| PowerShell dla SQL Server | PowerShell dla SQL Server automatyzuje zadania administracyjne, np. backupy, wdrożenia i kontrolę stanu instancji. PowerShell i moduł SqlServer w środowisku SQL ServerPowerShell dla SQL Server służy do automatyzowania czynności wykonywanych wobec instancji, baz danych i obiektów zarządzanych przez ten silnik. Współczesne skrypty korzystają przede wszystkim z modułu Jednym z podstawowych poleceń jest Wykonywanie zapytań i obsługa obiektów SMO
SMO udostępnia obiektowy model administracji SQL Server. Po utworzeniu obiektu Backupy, wdrożenia i kontrola stanu instancjiAutomatyzacja kopii zapasowych SQL Server wymaga rozróżnienia kopii pełnej, różnicowej oraz kopii dziennika transakcji. PowerShell może uruchamiać odpowiednie instrukcje PowerShell może również porównywać stan instancji z oczekiwanym opisem wdrożenia. Dotyczy to między innymi obecności baz, schematów, tabel, indeksów, użytkowników bazodanowych i uprawnień. Bezpieczny skrypt powinien działać możliwie idempotentnie, czyli po ponownym uruchomieniu nie powodować niezamierzonych zmian, jeżeli stan docelowy został już osiągnięty. Przed zmianą należy sprawdzić wersję obiektu lub zawartość katalogu systemowego, a operacje zależne od siebie wykonywać w kontrolowanej kolejności. Przy migracjach schematu istotne jest rejestrowanie wykonanych kroków, ponieważ częściowo zastosowany skrypt może pozostawić bazę w stanie pośrednim i wymagać osobnej procedury wznowienia albo wycofania. Uprawnienia, diagnostyka i bezpieczne uruchamianie skryptówSkrypt PowerShell wykonujący operacje w SQL Server działa w kontekście określonego konta i dziedziczy jego uprawnienia. Zakres dostępu powinien odpowiadać wykonywanej czynności: odczyt metadanych wymaga innych praw niż tworzenie kopii, zmiana schematu lub modyfikacja konfiguracji instancji. Nie należy umieszczać haseł bezpośrednio w pliku skryptowym ani przekazywać ich jako zwykłego tekstu w parametrach. W zależności od środowiska można użyć uwierzytelniania Windows, bezpiecznie przechowywanych poświadczeń PowerShell albo mechanizmów uwierzytelniania obsługiwanych przez konkretną wersję sterownika i modułu. Przed uruchomieniem automatyzacji warto ustalić, czy polityka wykonywania skryptów, profil użytkownika i wersja PowerShell nie zmieniają jej zachowania. Diagnostyka problemów powinna obejmować zarówno PowerShell, jak i SQL Server. Należy odróżnić błąd rozwiązywania nazwy serwera, odrzucenie połączenia, brak uprawnień, błąd składni Transact-SQL, timeout oraz problem z miejscem docelowym kopii. Pomocne są jawne logi zawierające czas rozpoczęcia i zakończenia operacji, nazwę instancji, nazwę bazy, typ czynności oraz komunikat błędu, bez zapisywania haseł i innych sekretów. W przypadku opóźnień trzeba sprawdzić wartości timeoutów, blokady i obciążenie instancji, a nie tylko ponawiać polecenie. Tak przygotowana automatyzacja może wykonywać powtarzalne zadania administracyjne w sposób przewidywalny, pod warunkiem że jej zakres, uprawnienia, warunki przerwania i procedura weryfikacji są opisane przed wdrożeniem. |