登录失败,用户域\计算机名$'
-
25-09-2019 - |
题
我知道这几乎是重复: 错误"的登录失败,用户NT权力机构\IUSR'"在ASP.NET 和SQL服务器2008年 和 登录失败,用户'username'-系统。数据。SqlClient.SqlException与皇宫中的外部项目/类库 但有些东西对不上相对于其他应用进展关于我的服务器和我不知道为什么。
箱被用于:
网箱
SQL箱
SQL测试盒
我应用程序:
我有一个ASP.NET 网络应用程序,其中引用的一类图书馆使用皇宫-对-SQL。连串设立了适当的类图书馆。为每 登录失败,用户'username'-系统。数据。SqlClient.SqlException与皇宫中的外部项目/类库 我也加入这一连串的网络应用程序。
连接字符串中使用SQL凭证为如此(在这两个网络应用程序和类库):
<add name="Namespace.My.MySettings.ConnectionStringProduction"
connectionString="Data Source=(SQL Test Box);Initial Catalog=(db name);Persist Security Info=True;User ID=ID;Password=Password"
providerName="System.Data.SqlClient" />
这种连接确认为工作通过将它添加到服务器。这是一连串的我的.申请文件使用。
问题:
我得到的以下错误:
System.Data.SqlClient.SqlException: Login failed for user 'DOMAIN\MACHINENAME$'.
现在引用这个 错误"的登录失败,用户NT权力机构\IUSR'"在ASP.NET 和SQL服务器2008年 它说,这是真正的本地网络服务和使用任何其他非域名称不会的工作。
但我很困惑因为我已经检查了这两个SQL箱和SQL测试框SQL管理工作室,两者都有 NT AUTHORITY/NETWORK SERVICE
根据安全->登录,在该数据库的水平,这不是列在安全>用户使用,但在数据库级别的安全>用户我已经在用户显示在连串。
在NTFS水平的上网服务器上,该权限有网络服务具有完全的控制。
因为我很困惑因为我有很多其他网络应用程序在我的网服务器,参考数据库的两SQL箱和SQL测试盒,以及他们的所有工作。但是我找不到它们之间的区别和我的当前应用程序,其他比我使用一个类图书馆。将这个问题?检查统相关参数。、设置的安全登录在服务器和数据库的水平,连接和串连接的方法(SQL服务器证书),并IIS应用程序池和其他文件夹的选择,都是一样的。
为什么做这些应用程序的工作没有加入计算机名美元的权限,无论我SQL盒子?但是,这是我的一个链接是告诉我要做些什么来解决这个问题。
解决方案
网络服务和本地系统将总是本地认证自己为correpsonding帐户(内置\网络服务和内置\系统),但两者都将作为计算机帐户远程验证。
如果你看到的故障等Login failed for user 'DOMAIN\MACHINENAME$'
它意味着作为网络服务运行或作为本地系统的处理已经访问的远程资源,已经本身认证为机器帐户和被拒绝授权。
典型的例子是在一个应用程序池设置为使用网络服务的凭证并连接到远程SQL Server运行ASP应用程序:所述应用程序池将作为认证机运行的应用程序池,和是本机帐户需要被授予访问权。
当访问被拒绝的机器帐户,然后访问必须被授予的计算机帐户。如果服务器拒绝登录“DOMAIN \ MACHINE $”,那么你必须权出让登录域\ MACHINE $'不为网络服务。授权访问网络服务将允许本地进程作为网络服务运行进行连接,而不是远程之一,因为远程人会因身份验证,你猜,DOMAIN \ MACHINE $。
如果您希望在ASP应用程序连接到远程SQL Server的SQL登录,你会得到关于DOMAIN \ MACHINE $异常就意味着你在连接字符串中使用集成安全性。如果这是意外,这意味着你搞砸了,你使用的连接字符串。
其他提示
当你已经配置了IIS应用程序会出现此错误,并且IIS转到SQL Server和尝试登录与不具备适当的权限凭证。当复制或镜像设置,也会出现此错误。 我会去在那工作一直是非常简单的解决方案。 去到SQL Server >>安全>>登录和NT AUTHORITY \ NETWORK SERVICE点击右键,选择属性。
在登录属性的新开的屏幕,转到“用户映射”标签。于是,“用户映射”标签,选择所需的数据库 - 特别是显示此错误消息的数据库。在屏幕下方,检查角色db_owner。单击确定。
在我的情况下我有Identity="ApplicationPoolIdentity"
为我的IIS应用程序池。
在我加入IIS APPPOOL\ApplicationName
用户到SQL Server它的工作原理。
一个同事有同样的错误,它是由于在IIS一点配置错误。结果 错误的应用程序池被分配为所述web应用。
事实上,我们使用自定义的应用程序池与特定的身份,以满足我们的需求。
在他的本地IIS管理器 - >网站 - >默认网站 - >我们的Web应用程序名称 - >基本设置... 应用程序池是“默认应用”,而不是我们的自定义应用程序池。
设置正确的应用程序池解决了这个问题。
这是为我工作的诀窍是从我的连接字符串删除Integrated Security
并在libruary力量的User ID=userName; Password=password
添加一个正App.config
连接字符串不使用集成的安全性,但在Web.config
创建的是!
我添加<identity impersonate="true" />
到我的web.config它工作得很好。
基本上来解决此,我们需要有一些设想
- 网络应用程序下运行的ApplicationPoolIdentity
- 网络应用程序连接的数据库通过ADO.Net 使用Windows认证的连字符串
连字符串中使用的Windows的认证包括无论是 Trusted_Connection=Yes
属性或相当于属性 Integrated Security=SSPI
在 Web.config
文件
我的数据库连接是在窗户身份验证的模式。因此,我解决它通过简单改变 应用程序池 身份 ApplicationPoolIdentity 我的域记录中的凭据 DomainName\MyloginId
步骤:
- 点击 应用程序池
选择姓名的应用程序
去 先进的设定
- 扩大 过程型 并且点击 身份.点击三个 点上右结束。
- 点击 设置... 按钮和提供 你的域记录中的凭据
对我来说,这是得到解决。
注: 在生产或环境,则可能具有服务的帐户在同一领域应用游泳池的身份。如果是这样,使用服务的帐户,而不是您的登录。
有关我,当我取代默认内置帐户“ApplicationPoolIdentity”与被允许对数据库的访问网络帐户的问题已得到解决。
设置可以在因特网信息服务器(IIS 7+)>应用程序池> Advanded设置>由过程模型>身份
我们已收到类似的错误消息在处理Analysis Services数据库。原来的用户名,这是用来运行Analysis Services实例,还没有被添加到SQL Server的安全登录。
在SQL Server 2012中,在SQL Server分析服务配置为不同的用户在默认情况下运行。如果你已经使用了默认,始终确保AS用户拥有您的数据源访问!
检查您是否有
User Instance=true
在连接字符串。尝试删除它,这将解决您的问题。
我也有这个错误与SQL Server认证的用户
我尝试了一些修正,但他们没有工作。
在我的情况的解决方案是配置其“服务器身份验证模式”,让SQL Server身份验证,下Management Studio中:属性/安全性
这是每个人似乎都忽略了唯一的一点是,你可能要集成安全=真。您可能有下池帐户运行网站。这是所有精做,它仍然可能与原来的用户凭据,而不是池的命中SQL服务器。这就是所谓的约束委派。如果启用它,并建立与用户的请求将最终服务的SPN窗口将转化池的凭据(SQL就是一个这样的服务)。你必须注册独一无二的SQL服务器SQL服务在Web服务器上的请求。设置这一切了太多,我要尽量准确地描述在这里。我花了相当长的一段工作通过它自己。
我花了几个小时试图解决这个问题,我终于明白了 - SQL Server浏览器被“停止”。解决方法是将其改变为“自动”模式:
如果它被禁用,进入控制面板 - >管理 工具 - >服务,并寻找SQL Server代理。单击鼠标右键,并 选择“属性”。从“启动类型”下拉列表中,从变化 “禁用” 为 “自动”。
我有同样的问题早,从我的ConnectionString去除工作Persist Security Info=True
。
我碰到这个问题跑,当客户端重命名一个SQL Server。 SQL报告服务配置为连接到旧的服务器名称,他们也创造了该重定向到新的服务器名称的IP别名。
他们的旧IIS应用程序的所有工作均通过别名重定向到新的服务器名称。在一种预感,我检查,如果他们运行SSRS。在尝试连接到,产生错误的SSRS站点:
“服务没有available.Contact您的系统管理员来解决问题系统管理员:报表服务器无法连接到它的数据库确保数据库正在运行并访问您还可以检查。报表服务器跟踪日志的详细信息。“的
这是在服务器上运行,但失败,因为它使用的别名旧服务器名称进行连接。重新配置SSRS以使用新的服务器名称而不是旧的/别名的固定它。
- 改变程序池标识到当地的系统
- 在SQL管理>安全>登录名
- 找到NT权力机构\系统的双击
- 用户映射>检查你的数据库,并给予它的作用如下。
- 还记得要创建的用户数据的基础o安全登录与一个正确的密码。