計劃任務通過命令行腳本進行地理編碼,因此需要訪問存儲在Microsoft SQL Server中的一些數據(地址到地址解析)。正確安全地從SQL Server中選擇數據子集
此數據屬於模式A並且由來自多個表格的數據組成。
我考慮
- 創建SQL服務器登錄,模式和用戶乙
- 創建視圖A.VIEW1選擇從A.TABLE_X和A.TABLE_Y
- 授予選擇權限A.VIEW1 TO 乙
由於視圖的引用其他表,從A.VIEW1與乙選擇拋出一個權限錯誤:
是否有任何替代GRANT SELECT上甲.TABLE_X,A.TABLE_Y,... TO B? 因爲如果我這樣做,B可以讀取所有數據從這些表中,不是嗎?
我不想乙才能夠做到這一點,因爲對於乙在SQL Server證書將被存儲在明文上的文件系統或在任務調度。 (什麼替代?)
A.TABLE_X和A.TABLE_Y包含客戶相關的數據,如銀行賬戶號碼等 我可能會限制授予特定的列,但我還是不喜歡這個主意。
另一種方法是用一個存儲過程A.PROC_FILL之前填寫一個臨時表,但授予EXEC到乙也將是不夠的,不是嗎?
這對我不起作用。 ** A **可以從_a.TABLE_X_中選擇。而** A **可以執行_reportproc_。但** B **(reportuser)在授予後無法執行。 – Mike
我需要補充的是,還有另一個底層表** C.TABLE_Z **,** A **可以從中選擇。 – Mike
@Mike當你嘗試用戶B時,它說什麼? – podiluska