用户“服务帐户名称”的SQL异常登录失败
我在创建的数据库上使用了serviceaccount util.sql.TestApp。用户“服务帐户名称”的SQL异常登录失败
当我到了command.Connection.Open();
我收到SQL异常登录失败,util.sql.TestApp
这是我在我的web.config
<add name="DBTest" connectionString="Server=Data.companyname.com; Database=TestApp; User Id=util.sql.TestApp; password=PWD" providerName=""/>
我打开数据库,并检查了serviceaccount 。它确实连接了previlages。我不知道什么是错的。
您是否已将用户映射到具有Connect权限的TestApp
数据库(不仅仅是SQL Server)?
要检查此操作,请在对象资源管理器中转到根目录中的Security
文件夹,然后展开Logins
。用鼠标右键单击用户帐户,然后单击Properties
。在User Mapping
下,确保用户映射到TestApp
。一旦用户被映射到TestApp
,您可以进入TestApp
的属性来配置数据库的权限。
其次,您是否尝试过提供帐户SELECT
,UPDATE
,INSERT
和DELETE
权限。
您是否将用户映射到相应的数据库角色?您应该尝试在数据库的安全性>用户下删除该用户,然后通过安全>登录将本地数据库用户重新映射到相关数据库。从那里你必须右键单击用户>属性>用户映射,然后使用顶部列表中的复选框选择您的数据库,然后在该窗口底部选择一个角色,然后单击保存。关键是要确保在用户映射屏幕底部给它适当的访问级别。这应该照顾任何权限问题。
是的,我将util.sql.testapp添加到我的.net文件夹中。它仍然没有工作。 – SmilingLily
好奇你使用IIS7和ASP.Net 4吗?尝试进入事件查看器并为Web事件拉ASP.Net“警告”。在常规选项卡中,您可以找到例外信息。一旦你有了这个,你可能能够指出堆栈跟踪的问题。如果你不介意在这里发布。
感谢,
迈克尔
我正在使用.net 4.0(我在本地开发它)。看到我的堆栈跟踪 – SmilingLily
在System.Data.SqlClient.SqlInternalConnection.OnError(SqlException异常,布尔breakConnection) – SmilingLily
在System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning() 在System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler,SqlDataReader dataStream,BulkCopySimpleResultSet bulkCopyHandler,TdsParserStateObject stateObj) – SmilingLily
以服务帐户的Windows帐户或SQL帐户?如果是前者,则需要使用不同的连接字符串 - Server=Data.companyname.com; Database=TestApp;Trusted_Connection=true
- 并且还要将应用程序池设置为以服务帐户的身份运行[可能已经完成,可能他们为什么要求您使用服务帐户] 。
这是一个服务帐户。 Util.sql.AppName – SmilingLily
当然,它是一个服务帐户 - 但用户是如何创建的?这是一个SQL服务器原则吗?还是Windows原则? –
对不起。为SQLserver – SmilingLily
服务帐户不需要CRUD访问权限即可登录到数据库。 –
是的,我曾尝试给予选择,更新,删除权限。它没有工作。将用户映射到testapp数据库意味着什么? 用户是我创建的用于访问特定数据库的服务帐户。 – SmilingLily