SQL Server 2012: 用户'NT Service\MSSQLServerOLAPService'登录失败。; 28000

27
我正在使用Windows 7上的Microsoft SQL Server 2012中的分析服务。我尝试创建Mining模型并进行处理,但在处理过程中出现以下错误:
OLE DB错误:OLE DB或ODBC错误:
登录NT Service\MSSQLServerOLAPService用户失败;28000。
如何纠正此错误并成功处理模型?
8个回答

34

我最近遇到了类似的错误。

我的错误是通过在ssms中创建一个新的登录名并使用错误提示的名称来解决的。

在您的情况下,它将是“NT Service \ MSSQLServerOLAPService”。

然后,您需要在“用户映射”页面上检查该新登录的属性中的“db_datareader”和“db_datawriter”。在顶部检查您正在使用的数据库,然后在底部检查“db_datareader”和“db_datawriter”,其中写着“Database Role Membership For: Database_Name”。

希望这可以帮助你。


您可以尝试的另一种方法是: 转到“服务器管理器”,“配置”,“服务” 搜索您使用的“SQL Server Analysis Services(Instance_Name)”。 转到其属性,然后转到“登录”选项卡。 如果它使用“此帐户”选项,请确保在“模拟信息”中使用该帐户指定的数据源作为用户名和密码。

编辑

通常的原因是运行服务的帐户没有执行所请求操作的正确权限。

目前我知道有两种方法:

  1. 将运行服务的帐户更改为具有正确权限的帐户。
  2. 给运行服务的帐户授予正确的权限。

23

1-运行 "SQL Server 配置管理器"

2-选择 "SQL Server 服务"

3-右键单击 "SQL Server 分析服务" 并选择属性

4-在 "登录" 选项卡中,选择 "此帐户"。

5-点击 "浏览" 按钮,然后点击 "高级" 按钮。

6-点击 "查找" 按钮。现在在下面的表格中找到您的帐户并选择它。

7-当您选择适当的帐户(具有足够的权限)后,返回 "登录" 选项卡

并输入您的密码

8-重新启动服务,再次尝试您的任务...

我希望这可以帮助到你...


谢谢 - 目前我需要的是一个可以直接使用而不需要我理解的东西! - Andy Brown
哪个密码?我没有任何密码,我试图将其留空,但是我收到了一个错误... - Heitor Badotti

5

我找到了解决方案,使用了与Amir相反的逻辑。

  • 运行 "SQL Server Configuration Manager"
  • 选择 "SQL Server Services"
  • 右键点击 "SQL Server Analysis Services",然后选择属性。
  • 在 "登录" 选项卡上,选择 "内置帐户"。
  • 最后选择 "本地系统"。

虽然我只是在本地运行进行修改,稍后会将其推送到生产环境。因此,如果您正在本地运行,这个解决方案可能会有所帮助。


2
尝试以下步骤:
信用(JetBoy2k):https://social.msdn.microsoft.com/Forums/sqlserver/en-US/0a1ce033-29fb-49a9-944a-ee2ea55e69a8/errors-in-the-highlevel-relational-engine-a-connection-could-not-be-made-to-the-data-source-with?forum=sqlanalysisservices 将以下文本翻译成中文:
  1. 在 Visual Studio 中打开数据源配置窗口,并在身份验证信息窗口中选择“使用服务帐户”,将冒充模式设置为服务帐户。

  2. 进入服务 MMC 控制台(右键单击 Windows 主菜单按钮,选择“运行”,在运行对话框窗口中键入“services.msc”,然后单击“确定”)。

  3. 在右窗格的服务列表中向下滚动,直到找到 SQL Server Analysis Services 服务,并查看“登录为”列,以查找服务运行的帐户名称。复制完全限定的帐户名称(NT Service\SSASAccountName),然后关闭服务 MMC 窗口。

  4. 在 SSMS 中,单击需要访问的数据库。

  5. 使用以下 SQL 命令为 SSAS 服务帐户创建登录:

CREATE LOGIN [NT Service\MSOLAP$SSASSERVICEACCOUNTNAME] FROM WINDOWS

  1. 点击该数据库的安全文件夹。

  2. 在安全文件夹下,右键单击用户文件夹,然后在弹出菜单中单击“新建用户”。

  3. 在“数据库用户 - 新建”窗口中,从“用户类型”下拉列表中选择“Windows 用户”。

  4. 在“用户名”字段中输入AS帐户名称。

  5. 单击“登录名”字段旁边的省略号按钮。

  6. 在“选择登录名”窗口中,输入帐户名称,然后单击“确定”。

  7. 回到“数据库用户 - 新建”窗口,在“默认架构”值中输入dbo,然后单击“确定”。

  8. 现在您应该在用户文件夹中看到AS服务帐户。

  9. 双击用户文件夹下方的角色文件夹,然后再双击数据库角色文件夹。

  10. 双击DB-owner角色。这将打开“数据库角色属性 - db_owner”窗口。

  11. 在“数据库角色属性 - db_owner”窗口中,单击“此角色成员”的下方的添加按钮。

  12. 在“选择数据库用户或角色”窗口中,单击“浏览”按钮。

  13. AS服务帐户将在“浏览对象”窗口中列出。选择该帐户的复选框,然后单击“确定”。

  14. 回到“选择数据库用户或角色”窗口,单击“确定”。

  15. 现在您应该在“数据库角色属性 - db_owner”窗口的“此角色成员”窗格中看到AS服务帐户列为角色成员。

  16. 单击“确定”。


2

在我完成所有步骤后,仍然遇到权限错误,因此我需要按照Gayan Dasanayake在上面的答案中进行额外的操作。

在我的情况下,我还需要将用户“NT SERVICE\MSSQLServerOLAPService”添加到实际数据库中,并通过右键单击SMSS中用户属性中的“Securables”部分,在所有维度和事实表上授予“select”权限。


1
此外,在本答案中的所有内容之上,您可能需要将 NT SERVICE\MSSQLServerOLAPService 用户添加到整个服务器。 - Dragomok

1
我在下面分享了如何解决这个错误的方法。
打开 Sql Server Configuration Manager。

enter image description here

前往您想要运行的 SQL Server Analysis Services 实例的属性。

enter image description here

请提供您拥有正确凭据的适当账户名称。在我的情况下:

enter image description here

请从上面的图像中单击“浏览”按钮,以打开此窗口:

enter image description here

从上面的图像中单击“高级...”以打开此窗口:

enter image description here

从上面的图像中点击“立即查找”,找到您拥有适当凭据以登录的用户:

enter image description here

从上面的图像中点击“确定”。然后再从下一个窗口中点击“确定”:

enter image description here

提供您选择的用户的正确密码:

enter image description here

从上面的图像中点击“OK”。点击“是”重新启动服务:

enter image description here

确认服务正在运行并重新处理您的立方体:

enter image description here

这次数据立方体已经成功处理:

enter image description here


1
有帮助。谢谢! - undefined

0
运行 'Sql Server Configuration Manager' 并检查 SQL Server Analysis Services (...名称...) 的“登录为”帐户名。 复制此帐户名称(双击打开后复制)。 打开 'SQL Server Management Studio' 并登录到 'Database Engine'。 转到“安全性>登录”,单击“新登录...”并提供复制的名称。 重新启动服务器。 现在应该能够部署。

-1

我刚遇到了同样的问题,但其他人的答案并没有帮助到我。

在我的情况下,我是这样解决的:

  1. 打开SQL Server配置管理器
  2. 在SQL Services中,双击SQL Server并复制完整的用户(在我的情况下为NT Service\MSSQLSERVER)
  3. 双击SQL Server Analysis Services
  4. 粘贴该用户,不需要密码

您可能需要在Visual Studio项目中的数据源中设置“使用服务帐户”


步骤4失败,因为没有密码显然是错误的密码。 - micsthepick

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接