2014-04-22 83 views
0

我不得不从SQL Server身份验证更改为Windows身份验证:从SQL Server更改连接字符串的Windows身份验证

我的SQL Server身份验证字符串是:

<add name="GCDataContext" 
     connectionString="Data Source=111.78.152.64;Initial Catalog=GC;User Id=sa;Password=xxxx;Trusted_Connection=False;Persist Security Info=True;MultipleActiveResultSets=True" 
     providerName="System.Data.SqlClient" /> 

改为(非工作)

<add name="GCDataContext" 
     connectionString="Data Source=111.78.152.64;Initial Catalog=GC;Persist Security Info=True;Integrated Security=True;" 
     providerName="System.Data.SqlClient" /> 

任何人都可以帮助我吗?

Integrated Security=True用于Windows身份验证,但连接未建立。

+0

做一个测试UDL文件,以获得参考windows身份验证连接字符串。 – Hassan

+1

SQL服务器是否启用了Windows验证?应用程序运行在哪个帐户? (提示:对于asp.net,它可能不是一个有用的) - 该帐户是否有权访问服务器?和数据库?最重要的是:究竟是什么**是错误信息? –

+0

一方与sa连接,另一方与当前连接的windows用户连接。该用户是否具有访问数据库的适当权限? –

回答

1

ASP.NET应用程序默认情况下不冒充。因此,当他们使用Windows身份验证连接到SQL Server时,他们使用Web应用程序的进程标识。通过这种方法,您的前端Web应用程序会对其用户进行身份验证和授权,然后使用可信身份来访问数据库。数据库信任应用程序的身份并信任应用程序以正确认证和授权呼叫者。

步骤1.配置一个连接字符串:

要使用Windows身份验证,请执行以下步骤连接到SQL Server。 使用Windows验证的连接字符串必须包含在Trusted_Connection =是属性,或等效的属性集成安全性= SSPI,

步骤2.配置SQL Server安全性: 您需要为应用程序创建的SQL Server登录服务帐户,并授予访问数据库的受限权限。 您应用程序的服务帐户通常是网络服务帐户,该帐户是用于在Windows Server 2003和IIS 6.0上运行ASP.NET应用程序池的默认帐户或自定义服务帐户。

对于此作出以下

    a).Create a SQL Server login for your application's account. 
       b).Map the login to a database user in the required database. 
       c). Provide appropriate permissions 
0

< add name =“GCDataContext”connectionString =“Data Source = 111.78.152.64; Initial Catalog = GC; Integrated Security = True;” providerName =“System.Data.SqlClient”/ >

Remove:Persist Security Info = True; 如果无法连接验证DB权限和特权。

+0

@ sachin-crac:我试过了。没用。 – user1282609

1
<add name="GCDataContext" 
     connectionString="Data Source=111.78.152.64;Initial Catalog=GC;Integrated Security=True" 
     providerName="System.Data.SqlClient" /> 

这应该有效。

你只需要删除Persist Security Info=True
你也可以复制我上面的代码

相关问题