當使用SqlCommand通過RPC調用存儲過程時,看起來可以調用除當前數據庫之外的數據庫中的存儲過程。SqlCommand - 防止其他數據庫中的存儲過程調用
例如:
string storedProcName = "SomeOtherDatabase.dbo.SomeStoredProc";
SqlCommand cmd = new SqlCommand(storedProcName);
cmd.CommandType = CommandType.StoredProcedure;
我想通過禁止對另一個數據庫的潛在調用來限制我的DAL代碼。一種方法可能是檢查上面storedProcName中是否有兩個句點(點),如果是,則拋出異常。任何其他想法/方法?
謝謝。
爲什麼不限制它數據庫服務器端? – hallie 2010-03-30 06:21:41
是一個好主意,我們可能會做到這一點(由於存在許多數據庫,在我們的案例中設置這項工作會有點麻煩)。但我也喜歡將支票放入DAL的想法,因爲我認爲它應該相對容易檢查。 – 2010-03-30 06:30:27