本站域名:http://goxia.maytide.net or http://sufan.maytide.net
移动设备请访问:http://goxia.maytide.net/m
转载文章,请务必保留出处与作者信息,未经许可严禁用于商业用途!
[MDT] 解决因加域客户端 Windows 登录身份引发的"无法打开登录所请求的数据库"故障
解决因加域客户端 Windows 登录身份引发的“无法打开登录所请求的数据库”故障
一台 MDT(Microsoft Deployment Toolkit)服务器,因为 MDT 默认的部署点共享使用的是隐藏方式(DeployPoint$)。为了便于使用,在一个普通共享目录内创建了一个 Litetouch.vbs 的快捷方式,指向到 DeployPoint 共享对应的文件。该部署点还启用了数据库功能,连接方式为 DBNMPHTW(命名管道)。
一台 Windows 7 客户端,使用隶属于本机 Administrators 组的域账号(Domain Users)登录,执行 MDT 的 Litetouch 进行应用程序的安装,虽然应用程序能完成安装,但是在最后的结果页面却提示了错误警告“无法打开登录所请求的数据库”,如下图所示:
对该问题进行了线性分析!首先,用户以域账号权限访问文件共享,权限通过,访问正常;接下来,域账号因为在本机拥有管理员权限,所以可直接执行 Litetouch.vbs;然后,开始加载 CS.ini 并根据配置去连接要访问的数据库。检查数据库安全性配置,默认 Domain Users 对 MDT 数据是没有访问权限的,而使用命名管道连接时会使用当前登录到 Windows 的身份进行验证,所以才会出现前面所提到的故障。
那么解决办法很简单,只需要为 MDT 数据库添加 Everyone 有读取权限即可。为此打开 SQL Server Management Studio 添加用户,用户类型选择 Windows 用户,用户名为 Everyone,登录名为 BUILTIN\Users,成员身份只选择 db_datareader。
重新测试,故障消失!对于 TCP/IP 方式的数据库连接,我们可以在 CS.ini 下配置 DBID 和 DBPWD 属性用于定义数据库的访问权限。