我收到错误'无法作为数据库主体执行,因为当我尝试执行连接到SQL的Microsoft Web应用程序本地时,主体“kc”不存在... Server数据库。它应用程序在连接到远程服务器时工作正常。
我将远程服务器上的数据库复制到本地计算机进行更改。 这是连接到远程服务器时的连接字符串:
<add name="Database" connectionString="Server=KC-DEV2;Database=ICKC;User Id=kc;Password=kc" providerName="System.Data.SqlClient" />
数据库的所有者是'KC \ Administrator'。我使用SQL Server身份验证。
我在本地连接到数据库时的连接字符串如下:
<add name="Database" connectionString="Server=localhost;Database=ICKC;Trusted_Connection=Yes;" providerName="System.Data.SqlClient" />
我将远程数据库还原到本地计算机。 ICKC数据库的所有者是KC \ GSantin。 我使用Windows身份验证连接到数据库。
根据我在网络上发现的内容,此错误通常可能来自数据库中的所有者,但对我来说情况并非如此。在本地数据库中有一个'kc'的登录名。它是remoste的备份和恢复,所以一切都是一样的。
有人建议我如何解决这个问题吗?
谢谢, 格洛丽亚
答案 0 :(得分:0)
kc应该是基于远程服务器的SQL登录。将数据库从远程服务器还原到本地后,SQL用户就出现了。您必须手动创建kc SQL登录。 这里将要错过的是它们之间的映射。 你可以运行sp_change_users_logins&#39;报告&#39;并检查是否有任何孤儿用户。大多数你应该看到kc。 如果是的话 运行sp_change_users_logins&#39; update_one&#39;,&#39; kc&#39;,&#39; kc&#39; 否则您需要捕获探查器跟踪以找到确切的故障点。