有一个带有混合模式身份验证的SQL Server 2005数据库。
问题如下:良好用户和坏用户都具有完全相同的AD组成员身份。他们都是我们的域\ developers-group-1和我们的域\ developers-group-2的成员。好用户能够访问所有数据库,而坏用户则不能访问。坏用户可以登录,但他无法访问任何数据库。顺便说一下,我是好用户。
我如何找到原因?
这是我到目前为止所尝试的内容:
print current_user
时,我会dbo
print system_user
时,我会my-domain\good-user
当我select * from fn_my_permissions(NULL, 'SERVER')
时,我会看到权限。
但如果execute as user='my-domain\good-user'; select * from fn_my_permissions(NULL, 'SERVER')
,我看不到任何看守。
当我这样做的时候,execute as user='my-domain\bad-user'; select * from fn_my_permissions(NULL, 'SERVER')
,我看不到任何看法。
另外,我想知道是否有一个sql命令告诉我,“嘿!当前数据库用户能够访问这个数据库,因为他是一个这样的广告组成员,这是一个登录在这个数据库中映射到这样的用户“。
答案 0 :(得分:0)
如果您在Management Studio中拥有相关权限,则不需要花费太长时间才能解决问题。听起来坏用户AD组在SQL Server中具有有限的权限。
您需要检查GUI中的安全性设置,并检查每个AD组的映射 - 单击数据库以查看它们对每个数据库的权限。
答案 1 :(得分:0)
您是否可能只是拥有隐式权限作为对象的创建者/所有者,但是AD组/角色或您的用户没有明确的权限?