Bezpieczene środowiska są często podzielone na mniejsze strefy rozdzielone firewallem. Za takim podniesieniem bezpieczeństwa idą jednak też pewne niemiłe konsekwencje. Aplikacje wymagają łączności, a przy zbyt restrykcyjnie skonfigurowanym firewallu, ta komunikacja może przestać działać. Tym razem problem był następujący. SQL serwer był skonfigurowany do nasłuchiwania na porcie XXX. Powstał pomysł przejścia na port YYY. Przed […]
Archiwum dla kategorii ‘Powershell i SQL’
Powershell: nasłuchiwanie na porcie. Sprawdzanie czy port jest otwarty
SQL: Uzyskiwanie nazwy instancji SQL w job SQL Agent
Największą trudnością w automatyzowaniu administracji jest takie napisanie skryptu, które pozwoli uruchamiać dany skrypt w dowolnym środowisku bez modyfikacji. Tym razem napisałem skrypt w powershellu, który można uruchamiać w jobie SQL Agent. Jedno z zadań tego skryptu było podłączenie się do BIEŻĄCEJ instancji SQL i wykonanie update na tabeli. Po cichu założyłem sobie, że kiedy […]
PowerShell i SQL 20 – modyfikacja danych
Oczywiście po to jest baza danych aby przechowywać w niej rekordy. Oto jak można dodawać, wyświetlać, modyfikować i usuwać rekordy: Dodawanie rekordów Zaczynamy od zwykłego polecenia SQL – INSERT. Treść tego polecenia umieszczamy w zmiennej tekstowej. Następnie jak zwykle tworzymy obiekt serwera i bazy danych. Obiekt bazy danych posiada metodę ExecuteNonQuery, która takie polecenie INSERT […]
PowerShell i SQL 19 – tworzenie tabeli i indeksów
Jak zwykle do dyspozycji masz dwie metody (nie licząc innych pośredich… ale to normalne w powerhhell że jedną rzecz można zrobić na wiele sposobów. Metoda sqlps: Ta metoda jest moim zdaniem bardzo prosta. Wystarczy znać SQL i otworzyć sobie furtkę ze świata Powershell do świata SQL. Zaczynamy od zaimportowania modułu sqlps, następnie odszukujemy bazę, w której ma być […]
PowerShell i SQL 18 – ładowanie bibliotek SMO
To będzie krótki wpis… Jeśli planujesz wykorzystywać SMO , to swój skrypt zawsze musisz rozpocząć od załadowania odpowiednich bibliotek .NET. Pamiętanie nazw tych bibliotek jest… uciążliwe, więc jeśli już decydujesz się używać SMO to prawdopodobnie swoje skrypty rozpoczniesz od kilku instrukcji LoadAssembly np.: [Reflection.Assembly]::LoadWithPartialName(„Microsoft.SqlServer.SMO”) [System.Reflection.Assembly]::LoadWithPartialName(„Microsoft.SqlServer.SMO”) [System.Reflection.Assembly]::LoadWithPartialName(„Microsoft.SqlServer.SmoExtended”) [System.Reflection.Assembly]::LoadWithPartialName(„Microsoft.SqlServer.ConnectionInfo”) [System.Reflection.Assembly]::LoadWithPartialName(„Microsoft.SqlServer.SmoEnum”) Ale można prościej. Pod adresem https://github.com/rbellamy/WindowsPowerShell/blob/master/Scripts/pssql-smo.ps1 znajduje […]
Powershell i SQL 17 – to samo na 2 sposoby
Backup z SMO [Reflection.Assembly]::LoadWithPartialName(„Microsoft.SqlServer.SMO”) [System.Reflection.Assembly]::LoadWithPartialName(„Microsoft.SqlServer.SMO”) [System.Reflection.Assembly]::LoadWithPartialName(„Microsoft.SqlServer.SmoExtended”) [System.Reflection.Assembly]::LoadWithPartialName(„Microsoft.SqlServer.ConnectionInfo”) [System.Reflection.Assembly]::LoadWithPartialName(„Microsoft.SqlServer.SmoEnum”) $SqlServer = New-Object Microsoft.SqlServer.Management.Smo.Server 'localhost’ $backup = New-Object Microsoft.SQLServer.Management.Smo.Backup $backup.Database = „master” $backup.Devices.AddDevice(’c:\temp\master.bak’,[Microsoft.SqlServer.Management.Smo.DeviceType]::File) $backup.Action = [Microsoft.SqlServer.Management.Smo.BackupActionType]::Database $backup.SqlBackup($SqlServer) Backup z cmdlet Backup-SqlDatabase Dalej zakładam, że odpowiedznie biblioteki są już załadowane Import-Module sqlps Backup-SqlDatabase -ServerInstance localhost -Database „master” ` -BackupAction Database -BackupFile c:\temp\master.bak
Powershell i SQL 16 – wykrywanie instancji w sieci
Teraz pora na funkcję, która nie należy do SMO ale do .NET! Funkcja ta ma najczęściej za zadanie pomóc użytkownikowi odnaleźć SQL server znajdujący się gdzieś w sieci, kiedy użytkownik nie zna jego nazwy, ale raczej wolałby wybrać serwer z listy dostępnych w danej chwili instancji SQL. Ta funkcja to: ([System.Data.Sql.SqlDataSourceEnumerator]::Instance).GetDataSources() Świetnie! Mając taką informację […]