【问题标题】:Master Data Services: Unauthorized主数据服务:未经授权
【发布时间】:2015-07-06 15:05:19
【问题描述】:

我在新的 SQL Server(Windows 2012 Standard 和 SQL Server 2014,企业版)上安装了 Master Data Services。最初我在安装过程中使用了非个人 AD 帐户(数据库和 Web 应用程序相同),但是当我尝试导航到 localhost/mds 时,我最终会进入“未经授权”的页面。

我卸载了 MDS,删除了 web 应用程序和数据库,然后使用我自己的凭据重新安装。没有骰子。

搜索显示我需要确保为服务器和 MDS 应用程序启用了 Windows 身份验证。我还禁用了匿名身份验证。

服务器:

MDS 应用:

我还确保 NTLM 是第一个在服务器和应用程序级别可用的提供商:

我什至为 MDS 应用程序运行的路径(C:\Program Files\Microsoft SQL Server\120\Master Data Services\WebApplication)以及该文件夹中的 config.web 文件分配了我的用户权限.

显然 IIS 安装了 Windows 身份验证:

我已经有点不知道该做什么了。我不是 IIS 专家,唯一的错误信息实际上是“未经授权”。 IIS 日志也不是很有帮助:

2015-07-06 14:19:33 ::1 GET /MDS/ - 80 - ::1 Mozilla/5.0+(Windows+NT+6.3;+WOW64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/43.0.2357.130+Safari/537.36 - 401 2 5 304
2015-07-06 14:19:33 ::1 GET /MDS/ - 80 <account_name> ::1 Mozilla/5.0+(Windows+NT+6.3;+WOW64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/43.0.2357.130+Safari/537.36 - 302 0 0 927
2015-07-06 14:19:33 ::1 GET /MDS/Unauthorized.aspx - 80 <account_name> ::1 Mozilla/5.0+(Windows+NT+6.3;+WOW64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/43.0.2357.130+Safari/537.36 - 200 0 0 10
2015-07-06 14:21:03 ::1 GET /MDS/ - 80 <account_name> ::1 Mozilla/5.0+(Windows+NT+6.3;+WOW64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/43.0.2357.130+Safari/537.36 - 302 0 0 173
2015-07-06 14:21:03 ::1 GET /MDS/Unauthorized.aspx - 80 <account_name> ::1 Mozilla/5.0+(Windows+NT+6.3;+WOW64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/43.0.2357.130+Safari/537.36 - 200 0 0 2

我还确保this list 中的每个角色和功能都已配置和安装。

有什么方法可以让我以某种方式获得更多信息吗? “访问被拒绝”并没有给我太多的工作,而且 IIS 日志也不是很有帮助。

我不是 IIS 专家,我猜这就是问题所在,我只是不知道去哪里找。

我们将不胜感激。

谢谢!

【问题讨论】:

    标签: sql-server iis master-data-services


    【解决方案1】:

    事实证明,MDS 在我的 AD 用户名后面附加了一个“$”。所以 SchmitzIT 不知何故变成了 SchmitzIT$

    我们在深入研究mdm.tbluser 表时发现了这个问题。其中包含的 sid 与 sys.syslogins 中的 SID 不同。

    如果要验证用户是否正确,使用以下代码sn -p:

    SELECT 'S-1-5-21-' 
    +CAST(CAST(CAST(REVERSE(CONVERT(binary(4),'0x'+sys.fn_varbintohexsubstring(0,sid,13,4),1)) as varbinary(4)) as bigint) as varchar(10)) 
    +'-'+CAST(CAST(CAST(REVERSE(CONVERT(binary(4),'0x'+sys.fn_varbintohexsubstring(0,sid,17,4),1)) as varbinary(4)) as bigint) as varchar(10)) 
    +'-'+CAST(CAST(CAST(REVERSE(CONVERT(binary(4),'0x'+sys.fn_varbintohexsubstring(0,sid,21,4),1)) as varbinary(4)) as bigint) as varchar(10)) 
    +'-'+CAST(CAST(CAST(REVERSE(CONVERT(binary(4),'0x'+sys.fn_varbintohexsubstring(0,sid,25,4),1)) as varbinary(4)) as bigint) as varchar(10)) 
    , *
    FROM sys.syslogins
    

    然后,我们从 sys.syslogins 中为我的用户帐户获取正确的值,并手动更改 mdm.tblUser 表以反映正确的 sid 和用户名。

    【讨论】:

      猜你喜欢
      • 2020-03-13
      • 1970-01-01
      • 1970-01-01
      • 2011-07-07
      • 1970-01-01
      • 1970-01-01
      • 2018-06-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多