获取错误:'无法作为数据库主体执行,因为主体不存在...'

时间:2014-12-10 22:05:01

标签: sql-server database visual-studio

我收到错误'无法作为数据库主体执行,因为当我尝试执行连接到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的备份和恢复,所以一切都是一样的。

有人建议我如何解决这个问题吗?

谢谢, 格洛丽亚

1 个答案:

答案 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; 否则您需要捕获探查器跟踪以找到确切的故障点。