2011-01-27 118 views
1

我已经创建了一个web部件,它在我开发它的虚拟机上工作得非常棒。Sharepoint Webpart

但是,当我尝试在物理机器上运行相同的Web部件时,无法打开SQL连接,因为网络上的SQL Server是“分离”框。

我的物理,虚拟和SQL框在同一网络上,但出于某种原因,这并不在我的物理机工作,

它拿出以下消息:登录失败,用户NT AUTHORITY \ ANONYMOUS LOGON'

是什么导致了这个问题?

+0

如果您的物理机上安装了sql,请尝试连接到位于虚拟机上的数据库。 – 2011-01-27 10:36:12

+0

con.ConnectionString =“Server =”+ _ipAddress +“; Database =”+ _Database +“; Persist Security Info = True; User Id = username; Password = password; Trusted_Connection = True”; – 2011-01-27 11:10:17

回答

1

您指定User IdPassword,然后设置Trusted_ConnectionTrue,所以我想这集成的身份验证使用 - 去除Trusted_Connection=True部分。

2

您正在使用集成安全性,这意味着当前用户用于对数据库服务进行身份验证。在生产服务器上,使用匿名用户执行Web部件代码。并且(当然)这个用户没有权利访问其他Web服务器文件的任何资源。

要避免此行为,请使用SQL-Server安全性的专用帐户。看到这个例子连接字符串:

connectionString="Data Source=SERVERHOSTNAME;Initial Catalog=YOURDATABASE;Persist Security Info=True;User ID=YOURUSER;Password=YOURPASSWORD"; 

一定要得到从生产数据库管理员有效的登录与适当的权限(如db_reader)数据库。