Re: [SQL ] 資料表開權限

看板Database作者 (TeemingVoid)時間14年前 (2012/02/18 15:35), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《testcrack (testcrack)》之銘言: : 在SQL Server 2008上,若有幾個資料表要開權限可供Select(不做增刪修) : 而且,也不讓他看到其他資料表 : 可以直接針對這些資料表來限定這個使用者嗎? : 而不是這個資料庫的所有資料表,將所有使用者全部設定授予、拒絕的設定.. 當一個user存取一個物件時,有效權限的判定原則是: 1. User 及其 Roles 角色權限的累計。 2. 比對及累計過程中,遇到 deny 就是沒有授權。 3. 如果比對沒有結果,就是沒有權限。 也就是說,採用的是先以正面表列說明可以做什麼,再以 deny 進行但書排除。 回到您的問題,僅針對那位設定他可讀取哪些表即可,不必設定他不能讀哪些 資料表。可是,這位使用者如果具備某些角色,他仍然可能因為那些角色而取 得權限,這時,就需要進一步針對他不能讀取的表特別以 deny 進行排除。 另外,上述的設定有兩個注意事項(或者該說是狀況): 1. 如果 View 與 Table 的 Owner 是同一人,使用者透過 View 存取 Table 時,SQL 只會檢查使用者在 View 的權限,通過了就放行了,不會進一步 比對資料表的權限。 2. 如果您有針對應用程式角色設定權限,當使用者以 sp_SetAppRole 啟用 該角色後,到結束連線前,該連線的權限均只以應用程式角色進行判斷。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.41.107.34
文章代碼(AID): #1FFrJSxD (Database)
文章代碼(AID): #1FFrJSxD (Database)