我有一個SQL Server 2005數據庫,我試圖使用Windows身份驗證作爲有限的用戶帳戶訪問。我已經將BUILTIN \ Users添加爲數據庫用戶(在我這樣做之前,我甚至無法打開數據庫)。我正在假設每個人都應該擁有適用於他們的「公共」角色的權限,所以我沒有對角色分配做任何事情。在tblFoo下,我可以使用SSMS Properties對話框(Permissions頁面)添加「public」,然後設置顯式權限。其中有SELECT的「Grant」。但運行SQL Server 2005「公共」數據庫角色似乎不適用?
SELECT * from tblFoo;
爲有限(BUILTIN \用戶)帳戶給我一個錯誤「的對象tblFoo'數據庫‘酒吧’,架構‘DBO’拒絕選擇權限」。在屬性對話框中,有一個「有效權限」按鈕,但它是灰色的。
此外,我嘗試創建一個名爲「UserTest」的非專用帳戶,在服務器級別添加,然後將其映射到「 bar「數據庫,這讓我可以將UserTest添加到」Users or Roles「列表中,該列表允許我爲該帳戶運行」Effective Permissions「,根本沒有列出任何權限 - 這看起來不正確。公共和公共津貼(除其他外)在tblFoo上選擇,爲什麼UserTest帳戶不顯示有效的權限?我覺得我在這裏有點瘋狂。人們不喜歡使用「公共」角色來設置權限,這只是我的修補時間;在最終設計中,我確信我們會擁有幾個靈活的(自定義)數據庫角色。我只是想弄清楚我看到的行爲,所以請不要「不要那樣做!」答案。
更新:顯然我知道剛剛夠SQL Server對自己和其他人是危險的。在設置權限時(正如我所說的,「等等」),我擁有了DENY CONTROL。當我設置這個權限時,我想我試圖查看它做了什麼,有一個模糊的想法,並決定使用DENY。我目前不記得爲什麼這似乎是要做的事情,但似乎這是我獲得許可失敗的原因。所以我更新了我的問題:任何人都可以解釋「CONTROL」權限,因爲它與表相關?
確定所有 定義的權限,所以僅僅是明確的: *如果我授權控制,他們可以與表 *如果我否認做任何事控制,他們被禁止與表 *因此,如果我想選擇性地授予或拒絕其他權限(更新,插入等),我應該REVOKE控制 是嗎? – Coderer 2008-12-16 17:39:48