Ponieważ SMO jest warstwą wykorzystywaną także przez SQL Server Management Studio, to praktycznie wszystkie rzeczy jakie można zrobić korzystając z SSMS można też wykonać korzystając z SMO.
Poniższy przykład ilustruje jak utworzyć bazę danych zmieniając jej ustawienia domyślne. Zaczynamy od załadowania SMO i podłączenia się do określonej instancji SQL
Oto jeden z najważniejszych momentów. Tworzymy obiekt bazy. Właściwie kolejną instrukcją mogłoby być $db.Create(), ale wtedy baza przyjęłą by wszystkie wartości domyślne
Polecenia dostępne w module pssql pozwalają na administracji High Avaialbility, Azure, zarzadzanie backupami oraz na wykonywanie ogólnych zadań związanych po prostu z SQL. Na początku właśnie te dwie ostatnie grupy są najbardziej interesujące.
Chyba najbardziej uniwersalnym poleceniem jest Invoke-Sqlcmd. Polecenie pozwala uruchamiać zarówno polecenia przekazywane jako tekst ale również może uruchamiać skrypty znajdujące się w pliku. Polecenia mogą być uruchamiane na dowolnej instancji SQL ponieważ mamy do dyspozycji parametr ServerInstance. W poniższym przykładzie wyświetlone zostaną loginy SQL wraz z informacją czy mają włączoną opcję dotyczące zgodności z polityką haseł oraz opcję wygasania hasła:
Po załadowaniu modułu w systemie pojawił się nowy provider pozwalający na uzyskiwanie dostępu do obiektów bazodanowych tak jakby były one folderami i plikami w specjalnym systemie plików. Obecność providera oraz wirtualnego dysku można sprawdzić poleceniami Get-PSProvider oraz Get-PSDrive:
Po przejściu poleceniem cd na nowy dysk sqlserver:\ można wydawać normalne polecenia jak ls czy cd pozwalające przechodzić przez strukturę sqlserver: Czytaj dalej »
Moduł SQLPS to dedykowany moduł pozwalający na korzystanie z SQL z poziomu PowerShell. Składa się on z SQL Server Provider, który dalej udostępnia wirtualny napęd SQLPS: oraz z dedykowanych cmdletów.
Aby rozpocząć korzystanie z SQLPS skorzystaj z polecenia:
Import-Module SQLPS
Podczas ładowaniu modułu możesz zauważyć ostrzeżenie. Nie musisz się nim przejmować, bo komunikat mówi, że nazwy poleceń odbiegają od standardowych (Encode-SqlName i Decode-SQLName), co może powodować trudniejsze odnajdywanie tych poleceń przez użytkownika.
SQLPS zostanie automatycznie załadowany, jeżeli wywołasz go z menu kontekstowego SQL Server Manager. Jednak w tym przypadku ładowany jest bardzo minimalistyczny powershell z modułem SQLPS i wiele funkcjonalności Powershell jest tam niedostępne. Zdecydowanie odradzam używanie tego narzędzia (SQLPS.EXE). Nawet Microsoft zdecydował się już dalej nie rozwijać tego narzędzia. Dalej przedstawiam więc tylko informacje o pełnym środowisku powershell, w którym został załadowany moduł SQLPS. Czytaj dalej »
Bill Gates: „So, how’s heaven, Steve?”
Steve Jobs: „Great ! It just doesn’t have any walls or fences.”
Bill Gates: „So…?”
Steve Jobs: „So, we don’t need any Windows and Gates. I’m sorry, Bill, I didn’t mean to offend you.”
Bill Gates: „It’s ok Steve, but I heard a rumor.”
Steve Jobs: „Oh, what rumor?”
Bill Gates: „That nobody is allowed to touch Apples there, and there are no jobs in heaven.”
Steve Jobs : „Oh no, definitely there are, but only no-pay jobs. Therefore there’s definitely no Bill in heaven as everything will be provided free….”
Do poprawnego skojarzenia żądania użytkownika z WebSite potrzebne jest tzw. WebBinding. Jest to definicja przypisana do WebSite, która składa się z: adresu IP (może to być *), portu, protokołu (http lub https) oraz nazwy hosta (tzw. hostheader). Kiedy IIS podejmuje decyzję o przekazaniu żądania do określonej aplikacji, najpierw w oparciu o dane z żądania wyodrębnia informacje o adresie IP, nazwie hosta, protokole i porcie i następnie wyszukuje pasującej definicji WebBinding. Kiedy właściwe WebBinding zostanie odnalezione, żądanie zostaje przekazane do kodu aplikacji z danego WebSite.
Aktualnie zdefiniowane Binding mogą być wyświetlane poleceniem Get-WebBinding, zaś nowe mogą być dodawane za pomocą New-WebBinding.