使用PowerShell的優點
與使用標準的T-SQL和SSIS進行自動化的方法相比,PowerShell指令碼為DBA們帶來了更多優點。這些優點包括:
1、對多伺服器進行自動化處理更為簡單,我們可以在多台SQL Server執行個體上執行任何特定任務。
2、更容易訪問Windows資源,例如檔案和檔案夾、Windows服務及印表機。
3、較之SSIS,資料載入更快更簡單。
4、擷取伺服器上的對象和進程的屬性更為快捷方便。
SQLPSX中的函數調用和指令碼
SQLPSX中的PowerShell指令碼可以執行100多個SQL Server的管理工作,其中許多函數調用和指令碼都集中在安全設定上,包括logins users roles以及permissions。在SQLSPX項目的Readme.Txt中完整的介紹了每個函數。
常見SQL Server任務的函數:
Get-SqlServer,調用Microsoft.SqlServer.Management.SMO.Server對象,擷取所有可用的SQL Server系統的列表。
Get-SQLUser,可以擷取SMO使用者物件,這個對象擁有額外的屬性,列出這個使用者擁有的所有對象。
Get-SQLData,擷取SQL Server結果集。
Get-SQLDatabase,擷取一個或多個資料庫的屬性。
Get-SQLUser,擷取一個或多個使用者的資訊,包括這個使用者擁有的所有對象。
除此之外,我們可以把運行指令碼的輸出儲存在資料庫中,然後通過SQL Server報表格服務的報表和查詢來查看這些資料,也可以通過BID(Business Intelligence Development Studio)或Visual Studio來分析安全資訊。
SQLPSX的系統要求
安裝SQL Server2005及以上版本的SSMS。注意將PowerShell的執行原則設定為remotesigned,可能還需要解鎖SQLPSX PowerShell指令碼,以便他們可以無限制地運行。
相關資源
http://www.codeplex.com/SQLPSX
作者Blog: http://chadwickmiller.spaces.live.com