主数据服务:未经授权
Master Data Services: Unauthorized
我在新的 SQL 服务器上安装了 Master Data Services(Windows 2012 Standard with SQL Server 2014, Enterprise Edition)。最初我在安装期间使用了一个非个人 AD 帐户(数据库和 Web 应用程序也是如此),但是当我尝试导航到 localhost/mds
时,我最终会进入 "unauthorized" 页面.
我卸载了 MDS,删除了 Web 应用程序和数据库,然后使用我自己的凭据重新安装。没有骰子。
搜索显示我需要确保为服务器和 MDS 应用程序启用 Windows 身份验证。我还禁用了匿名身份验证。
服务器:
MDS 应用程序:
我还确保 NTLM 是第一个在服务器和应用程序级别可用的提供程序:
我什至将我的用户权限分配给了 MDS 应用所在的路径 运行 (C:\Program Files\Microsoft SQL Server0\Master Data Services\WebApplication ),以及该文件夹中的 config.web 文件。
显然 IIS 已安装 Windows 身份验证:
我有点不知所措了。我不是 IIS 专家,唯一的错误信息就是 "Unauthorized"。 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 中的每个角色和功能都已配置和安装。
有什么办法让我以某种方式获得更多信息吗? "Access is denied" 没有太多用处,IIS 日志也不是很有帮助。
我不是 IIS 专家,我猜这才是真正的问题所在,我只是不知道去哪里找。
将不胜感激。
谢谢!
事实证明,MDS 以某种方式在我的 AD 用户名后附加了一个“$”。所以 SchmitzIT 不知何故变成了 SchmitzIT$。
我们在深入研究 mdm.tbluser
table 时发现这是问题所在。那里包含的 sid 与 sys.syslogins.
中的 SID 不同
如果要验证用户是否正确,请使用以下代码段:
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 table 以反映正确的 sid 和用户名。
我在新的 SQL 服务器上安装了 Master Data Services(Windows 2012 Standard with SQL Server 2014, Enterprise Edition)。最初我在安装期间使用了一个非个人 AD 帐户(数据库和 Web 应用程序也是如此),但是当我尝试导航到 localhost/mds
时,我最终会进入 "unauthorized" 页面.
我卸载了 MDS,删除了 Web 应用程序和数据库,然后使用我自己的凭据重新安装。没有骰子。
搜索显示我需要确保为服务器和 MDS 应用程序启用 Windows 身份验证。我还禁用了匿名身份验证。
服务器:
MDS 应用程序:
我还确保 NTLM 是第一个在服务器和应用程序级别可用的提供程序:
我什至将我的用户权限分配给了 MDS 应用所在的路径 运行 (C:\Program Files\Microsoft SQL Server0\Master Data Services\WebApplication ),以及该文件夹中的 config.web 文件。
显然 IIS 已安装 Windows 身份验证:
我有点不知所措了。我不是 IIS 专家,唯一的错误信息就是 "Unauthorized"。 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 中的每个角色和功能都已配置和安装。
有什么办法让我以某种方式获得更多信息吗? "Access is denied" 没有太多用处,IIS 日志也不是很有帮助。
我不是 IIS 专家,我猜这才是真正的问题所在,我只是不知道去哪里找。
将不胜感激。
谢谢!
事实证明,MDS 以某种方式在我的 AD 用户名后附加了一个“$”。所以 SchmitzIT 不知何故变成了 SchmitzIT$。
我们在深入研究 mdm.tbluser
table 时发现这是问题所在。那里包含的 sid 与 sys.syslogins.
如果要验证用户是否正确,请使用以下代码段:
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 table 以反映正确的 sid 和用户名。