对域进行更改后,不再有权访问管理记者

本文提供对域进行更改后发生的权限问题的解决方法。

适用于: Microsoft Management Reporter 2012、Microsoft Dynamics GP、Microsoft Dynamics AX 2009、Microsoft Dynamics SL 2015、Microsoft Dynamics SL 2011
原始 KB 数: 3163587

现象

更改域后,用户无法访问管理记者。

原因

Windows SID 已为用户更改,不再有效。

解决方法

更新管理记者中具有管理员角色的用户的 Windows SID。

  1. 以在管理记者中具有管理员角色的用户之一登录到 SQL Server。

  2. 选择“开始>运行”并输入 CMD。

    1. 在 Dos 命令类型中:

      Whoami /user

    2. 在 DOS 窗口中,右键单击,选择“全选”,然后按 Enter。

    3. 将信息粘贴到记事本中。

  3. 打开 SQL Server Management Studio 并针对 Management Reporter 数据库运行以下 SQL 语句。

    1. 管理记者 2012 CU13 及更高版本

      SELECT A.UserName, 
      B.Name, 
      CASE A.ROLETYPE 
      WHEN 2 THEN 'VIEWER' 
      WHEN 3 THEN 'GENERATOR' 
      WHEN 4 THEN 'DESIGNER' 
      WHEN 5 THEN 'ADMINISTRATOR' 
      END AS SecurityRole, 
      A.WindowsSecurityIdentifier, 
      A.UserID, 
      CASE A. AccountDisabled 
      When 0 Then 'Enabled' 
      When 1 Then 'Disabled'
      End AS AccountStatus 
      FROM Reporting.SecurityUser A 
      JOIN Reporting.SecurityPrincipal B 
      ON A.USERID = B.ID 
      ORDER BY A.UserName
      
    2. 管理记者 CU12 或更早。

      SELECT A.UserName, 
      B.Name, 
      CASE A.ROLETYPE 
      WHEN 2 THEN 'VIEWER' 
      WHEN 3 THEN 'GENERATOR' 
      WHEN 4 THEN 'DESIGNER' 
      WHEN 5 THEN 'ADMINISTRATOR' 
      END AS SecurityRole, 
      A.WindowsSecurityIdentifier, 
      A.UserID, 
      CASE A. AccountDisabled 
      When 0 Then 'Enabled' 
      When 1 Then 'Disabled'
      End AS AccountStatus 
      FROM SECURITYUSER A 
      JOIN SECURITYPRINCIPAL B 
      ON A.USERID = B.ID 
      ORDER BY A.UserName
      
  4. 记下 UserID。

  5. 备份 Management Reporter 数据库,然后运行以下 SQL 语句。 必须修改该语句,以包含新用户的 Windows SID 及其现有 UserID。

    1. 管理记者 CU13 或更高版本

      UPDATE Reporting.SecurityUser 
      SET WindowsSecurityIdentifier = '<copy/paste new Windows SID>' 
      WHERE UserID = '<paste UserId from step4>'
      
    2. 管理记者 CU12 或更早版本

      UPDATE SecurityUser 
      SET WindowsSecurityIdentifier = '<copy/paste new Windows SID>' 
      WHERE UserID = '<paste UserId from step4>'
      
  6. 运行以下 SQL 语句,修改该语句以包含新用户的域\别名。

    1. 管理记者 2012 CU13 或更高版本。

      UPDATE Reporting.SecurityPrincipal 
      SET Name = '<enter new domain\alias>' 
      WHERE ID = '<paste UserId from step4>'
      
    2. 管理记者 2012 CU12 或更早版本

      UPDATE SecurityPrincipal 
      SET Name = '<enter new domain\alias>' 
      WHERE ID = '<paste UserId from step4>'
      
  7. 用户现在应该能够登录到 Management Reporter。 若要更新其他用户,请选择“ 安全性”。 选择“用户,然后删除无法访问管理记者的用户。 然后,可以使用新域名将用户添加回去。