多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 數據庫 > Sqlserver > SQL Server 2008新特性策略管理

SQL Server 2008新特性策略管理

來源:程序員人生   發布時間:2014-01-01 08:02:54 閱讀次數:2829次

策略管理是SQL Server 2008中的一個新特性,用于管理數據庫實例、數據庫以及數據庫對象的各種屬性。策略管理在SSMS的對象資源管理器數據庫實例下的“管理”節點下,如圖:

  

image

  從圖中可以看到,策略管理中包含三個節點:策略、條件、方面。

  方面就是策略要應用的對象,包括:服務器、表、觸發器、視圖、存儲過程……這些方面對象都是系統定義好了的,僅供瞻仰不可更改。雙擊具體的某一個方面可以查看該方面的屬性,在定義條件時即可對這些屬性進行判斷,如圖為存儲過程方面的屬性。

  

  條件就是一個布爾表達式判斷策略是否為真。

  策略就是在條件為假的情況下要執行的操作,即評估模式。策略中的評估模式有4種:按需、按計劃、更改時記錄和更改時禁止。對于這4種模式,官方給出如下定義:

  按需。當用戶直接指定這種模式時,它可對策略進行評估。

  更改時: 禁止。這種自動模式使用 DDL 觸發器來防止違反策略。

  更改時: 僅記錄。當發生相關更改并違反日志策略時,這種自動模式使用事件通知對策略進行評估。

  按計劃。這種自動模式使用 SQL Server 代理作業定期對策略進行評估。此模式記錄違反策略的情況。

  其中按需是手動操作的,其他三個則可以自動完成。按計劃是使用SQL Server代理來定時檢查策略,另外兩個是在更改時由DDL觸發器觸發。

  其他的概念我不用多說,大家可以看聯機叢書,這里就舉個例子來說明策略管理的使用。

  假設現在我們要開發個業務系統,其數據庫為TestDB1,使用ADO.NET 調用存儲過程來實現數據操作,現在項目中規定存儲過程的命名規范:以“usp_”開頭。這里我們可以使用策略管理來實現對該規范的檢查或強制實行。具體操作過程如下:

  (1)由于我們針對的對象是存儲過程,所以在“方面”節點下右擊“存儲過程”,選擇“新建條件”選項,系統將會彈出新建條件的窗口。

  (2)輸入“條件”的名稱:“存儲過程命名規范”,然后字段列表中選擇@Name,運算符為LIKE,值為'usp[_]%'。也就是判斷存儲過程的名字LIKE 'usp[_]%',也就是以“usp_”開頭的SQL表達。如圖:

  

image

  這里字段和值都可以使用變量和函數,如果允許“USP_”、“Usp_”等開頭的存儲過程,則可以將字段運用小寫函數,改寫為“Lower(@Name)”,然后單擊“確定”按鈕,創建“條件”完成。

  (3)右擊“策略”節點,在右鍵菜單中選“新建策略”選項,系統將打開新建策略窗口,輸入策略名“檢查存儲過程命名規范”,在檢查條件的下拉列表中選擇剛創建的條件“存儲過程命名規范”,系統將根據選擇的檢查條件列出針對目標,默認情況下是對每個數據庫的每個存儲過程進行檢查,由于這里我們只希望檢查TestDB1數據庫,所以需要新建數據庫的條件,如圖:

  

image

  (4)單擊“新建條件”后將出現與第(2)步新建條件相同的窗口,只是這里我們新建的條件方面是數據庫,新建條件TestDB1,如圖所示:

  

image

  (5)單擊“確定”按鈕回到新建策略窗口,針對目標變成了對TestDB1數據庫的每個存儲過程。這里若要強制實現這個策略,則選擇評估模式為“更改:禁止”并選中“已啟用”復選框表示啟用該策略。

  (6)單擊“說明”選擇頁,可以在其中選擇策略的類別、在違反策略時給出的友好說明。最后單擊“確定”按鈕即可完成策略的創建工作。

  (7)接下來就是測試該策略是否有效了,運行如下SQL語句創建一個存儲過程usp_GetDate:

  USE TestDB1

  GO

  CREATE PROC usp_GetDate

  AS

  SELECT GETDATE()

  GO

  一切正常,存儲過程被創建成功。那么再創建一個存儲過程db1_GetDate:

  USE TestDB1

  GO

  CREATE PROC db1_GetDate

  AS

  SELECT GETDATE()

  GO

  系統拋出異常了:

  “SQLSERVER:SQLMS-ZYDEFAULTDatabasesTestDB1StoredProceduresdbo.db1_GetDate”已違反策略“檢查存儲過程命名規范”。

  此事務將回滾。

  策略條件:“Lower(@Name) LIKE 'usp[_]%'”

  策略說明:“項目中統一了TestDB1數據庫中存儲過程的命名規范,所有存儲過程必須以usp_開頭”

  其他幫助:“存儲過程必須以usp_開頭”:“”

  語句:“CREATE PROC db1_GetDate

  AS

  SELECT GETDATE()

  ”。

  消息 3609,級別 16,狀態 1,過程 sp_syspolicy_dispatch_event,第 65 行

  事務在觸發器中結束。批處理已中止。

  再看看對象資源管理器中,該存儲過程確實沒有被創建。同樣可以在另外的數據庫中創建這兩個存儲過程,但是由于策略中針對的是TestDB1數據庫,所以在其他數據庫中這兩個存儲過程都將會被成功創建。

  現在有了這個策略,大家在命名存儲過程時都必須按照規范來了。

  如果策略被定義為“按需”評估模式的話,則用戶可以在其中創建違反策略的存儲過程。若要檢查現有的數據庫對象是否符合策略,只需要在對象資源管理器中右擊數據庫對象節點,然后選擇右鍵菜單中的“策略”下的“評估” 選項,如果要檢查具體某個數據庫對象的“方面”屬性值的話,則選擇右鍵菜單中的“方面”選項。

  選擇“評估”選項后系統彈出評估策略窗口,其中列出了所有存儲過程方面相關的策略,選擇需要驗證的策略,然后單擊“評估”按鈕即可查看當前數據庫對象是否符合策略。

  

  這里只是一個簡單的示例而已,策略管理的功能遠不止命名規范的檢查這么簡單,通過策略管理還可以檢查數據庫是否自動收縮、SQL Server的密碼策略、網絡數據表大小、最大并行度……

  微軟為我們提供了一個安裝包,其中包含了大量的策略示例,幫助大家學習和使用基于策略的管理,下載地址:

  http://go.microsoft.com/fwlink/?LinkId=123720&clcid=0x804

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 亚洲天堂2016 | 亚洲一区二区中文 | 2018av在线| 精品一区二区三 | 亚洲成人黄色网址 | 日韩在线专区 | 亚洲精国产一区二区三区 | 校园激情亚洲 | 欧美一级在线观看视频 | 国产精品亚洲精品久久成人 | 久久久久久毛片免费观看 | 77777亚洲午夜久久多喷 | 久久久久久久岛国免费播放 | 日本亚洲黄色 | 日韩精品一区二区三区视频网 | 中文字幕亚洲欧美日韩不卡 | 日韩国产欧美精品综合二区 | 日韩国产片 | 最新国产成人综合在线观看 | 福利国产在线 | 亚洲欧美日韩国产色另类 | 五月天婷婷在线视频国产在线 | 综合激情区视频一区视频二区 | 国产在线视频国产永久视频 | 亚洲性受 | 日本道在线 | vvvv99日韩精品亚洲 | 性猛交╳xxx乱大交 性猛交xxxxx按摩 | 国产精品嫩草免费视频 | 黄色免费在线网址 | 国产日韩欧美一区二区三区视频 | 日本在线高清 | 欧美成人天天综合在线视色 | 亚洲成人黄色在线 | 日韩精品久久不卡中文字幕 | 成人国产精品久久久免费 | 国产一国产一级毛片视频在线 | 欧美伦理片在线播放 | 欧美日本免费 | 精品一区二区三区中文字幕 | 亚洲伊人久久大香线蕉在观 |