SQL Server如何在不明確的情況下處理登錄,例如,Windows用戶帳戶和包含此用戶的AD組都存在登錄名?具有爲用戶和包含AD組的用戶創建的登錄Windows用戶的數據庫級權限?
我們在Active Directory和來自該AD的組中有Windows用戶的SQL Server 2008權限問題。我會試着用一個例子來解釋。
想象一下,屬於AD羣組的Windows域用戶DOMAIN\myUser
DOMAIN\SomeGroup
。
在SQL Server中,我有2個數據庫SomeAppDb
和PublicDb
。
目標是成爲DOMAIN\SomeGroup
成員的所有用戶都應該能夠訪問PublicDb
,但只有DOMAIN\myUser
應該能夠訪問SomeAppDb
。
最初,在SQL Server中的Windows登錄DOMAIN\SomeGroup
(映射到AD組)上的實例創建,一個用戶在數據庫中PublicDb
適當角色成員創建的,而且效果很好,從組SomeGroup
用戶可以訪問他們需要的數據PublicDb
。
針對新應用程序的需求,我們希望爲數據庫SomeAppDb顯式訪問用戶DOMAIN\myUser
,同時仍允許訪問PublicDb
。因此,我們在SQL Server中創建一個Windows登錄爲DOMAIN\myUser
,並且用戶在數據庫中創建SomeAppDb
,與2
之間的映射從那一刻開始,預期MYUSER可以訪問SomeAppDb
,但不能再訪問PublicDb
和我們有一樣的錯誤:
Cannot open database "PublicDb" requested by the login. The login failed.
Login failed for user 'DOMAIN\myUser'
我的直覺告訴我,當用戶訪問SQL Server實例,SQL Server將看到一個登錄比賽的Windows用戶,而忽略現有的一組用戶的登錄屬於。
一種方法是在用戶myUser的db PublicDb上明確添加訪問權限,但我寧願避免使用該解決方案,因爲每次我們想要訪問新用戶時都會強制更新PublicDb,這正是我們試圖避免的最初......(我們做了臨時修復,希望找到更好的選擇)。
有其他人遇到過這個問題嗎?有更好的方法嗎?
在此先感謝
我的問題也許應該移到http://dba.stackexchange.com? – tsimbalar 2014-12-03 21:22:45
只是好奇,如果你有機會測試任何建議的測試和驗證組的成員等事情? – 2014-12-10 04:26:39
本週事情變得很瘋狂,但我希望在本週結束之前我會深入一點。謝謝 – tsimbalar 2014-12-10 18:34:04