Sql Server數(shù)據(jù)庫的一大優(yōu)勢,就是具有富UI的管理和調(diào)試工具,這點,絕對是優(yōu)于ORACLE和其他的大中型數(shù)據(jù)庫的。
Sql Server的眾多工具中,對于開發(fā)人員和DBA來講,非常重要的一個,就是Sql Profiler (事件探查器) 了。
Sql Server中執(zhí)行的每個一個動作,都可以在Sql Profiler里看的一清二楚,這對于性能調(diào)優(yōu),后期維護等等是非常有幫助的。
但是,問題來了,在你的產(chǎn)品發(fā)布后,你可能不想讓客戶跟蹤到你的SQL執(zhí)行情況,便于對客戶保密。那么這個優(yōu)勢,就成了你的“眼中釘”
如何才能不被Sql Profiler跟蹤到呢?
下面,我們就來探討這個問題
假設(shè),你有一張表A,里面有個字段password,保存密碼,你執(zhí)行下面的SQL:
SELECT [password] FROM [A]
在Sql Profiler 事件探查器里,你會看到如下的內(nèi)容:
— 在該事件文本中找到“password”。 |
這樣,就看不到你執(zhí)行的SQL語句的內(nèi)容了。
但是,你可能要疑惑了,我的表中,不可能都存在password字段啊
確實如此,但是微軟做的更絕,只要在查詢的過程中,任意地方出現(xiàn)關(guān)鍵詞password,encryption,sp_setapprole之一,整個查詢過程都將被隱藏,任意地方,當然也包括 注釋 中。
例如,執(zhí)行下面的過程語句:
同樣,在Sql Profiler中,可以看到如下的提示:
這樣,事情就很清楚了,只要在所執(zhí)行的想保護的SQL語句中,添加一個含有關(guān)鍵詞的注釋,就可以被保護起來了!