我有一个SQL Server Analysis Services Server 2014.我通过进入SSAS服务器实例的属性窗口的安全选项卡然后执行删除操作来撤销用户的访问权。
然后,我在上下文菜单中使用Run as different user
选项删除的用户上下文中启动了SQL Server Management Studio(SSMS)。
令我惊讶的是,我仍然能够通过Windows集成安全性连接到SSAS服务器,尽管该用户(无法访问SSAS服务器)。怎么可能呢?是否需要从其他地方删除用户以撤消用户对SSAS服务器的访问权限?
我还从services.msc
控制台重新启动了SQL Server以及SSAS服务,结果没有变化。
答案 0 :(得分:0)
TL; DR; 我最初假设从SSAS服务器实例的安全选项卡中删除用户也会撤销他通过SSMS连接到SSAS服务器的能力不正确。
完整故事:好的。所以这就是我最终发现的。主要的混淆是因为SQL Server Management Studio(SSMS)在数据库引擎和分析服务(SSAS)的情况下对用户登录的行为方式不同。
如果是数据库引擎,如果您尝试使用SSMS登录的用户不在Security -> Logins
节点内,那么您无法在登录屏幕之外继续前进。它给出了下面提到的错误:
无法连接..
------------------------------附加信息:
用户' yourMachineName \ jayceeka'登录失败。 (Microsoft SQL Server, 错误:18456)
即使用户出现在Security -> Logins
节点中并且其登录被禁用,或者在登录的属性页面中将连接到数据库引擎的权限设置为Deny
,您也可以&#39向前走您将一直卡在登录屏幕上。
连接到SSAS服务器时SSMS的行为有所不同。用户是否添加到SSAS服务器属性的Security
选项卡中(在我的问题帖子中显示)并不重要,但只要用户可以在运行SSAS服务器的计算机上登录然后,他将能够通过SSMS连接SSAS服务器,并使用Windows Integrated Security通过登录屏幕。
SSAS服务器属性窗口中的“安全”选项卡不能控制用户通过SSMS连接到SSAS服务器的能力,但它确实控制了其他所有内容,例如连接到任何数据库的能力,多维数据集和SSAS服务器实例中的其他内容。
因此,如果用户不在SSAS服务器属性窗口的Security
选项卡中,那么即使他能够通过登录,他也无法在SSAS服务器中看到数据库,Cubes等使用Windows集成身份验证在SSMS中进行屏幕显示,如下所示:
从SSAS服务器中删除用户Jayceeka
后,当{1}}节点或Databases
节点实际存在一个数据库时,她无法看到任何内容,如下所示:
即使在ADOMD.Net代码中 - Assemblies
调用对Jayceeka用户成功,但由于她没有SSAS服务器的权限而无法执行查询:
Open()