none
远程连接数据库的问题 RRS feed

  • 问题

  • 我用的是ASP.NET+SQL2005英文版
    我在我机子上试验,可以本地连接数据库的时候可以正常连接
    当我把网站和数据放在服务器上的时候,就出问题了,我的网站放在一个服务器上,数据库放在一个服务器上,两个服务器都用2003
    这个是我在WEB.config里的
    <add key="key" value="Data Source=192.168.2.18; database=water; Trusted_Connection=yes" />
    网的服务器是192.268.2.16
    当我打入192.168.2.16/huacheng/
    的时候提示我下面的错误
    login failed for user",The user is not associated with atrusted SQL Server connection.
    这是什么意思呀!
    怎么解决呀!
    2009年4月28日 9:26

答案

  • 你的数据库装在16上,IIS装在18上是吧,如果是这样把Sql的登陆模式改为混合登陆模式,启用SA登陆,或是新建一个SQL server 帐号登陆,帐号要受相应的权限
    知识改变命运,奋斗成就人生!
    2009年4月28日 11:30
  • 我用VS在那个192.168.2.16的机子上,调试,就可以访问,肯定有这个数据库!

    vs调试时使用的账户和IIS(假设你web服务器使用了iis)使用的账户是不同的,
    你要查看iis使用了什么账户。如果不是你要使用的帐号,你可以使用模拟帐户的功能

    查看webconfig中这个配置节的使用方法:
    <identity impersonate="true" userName="accountname" password="password" />
    SQL Engine Test
    2009年4月29日 2:21
    版主

全部回复

  • 从你给的信息来看,好像你想用WINDOWS验证去连接数据库,请确认你的WINDOWS用户有此权限。


    http://blog.csdn.net/cn_sql
    2009年4月28日 9:46
    版主
  • 怎么确认呀!

    2009年4月28日 10:02
  • 我用的Administrator 用户登陆的
    2009年4月28日 10:02
  • 你试试用你连接串中的信息在服务上用Management登陆试试,看看是不是实例名不对或者没有water这个数据库

    知识改变命运,奋斗成就人生!
    2009年4月28日 10:31
  • 我用VS在那个192.168.2.16的机子上,调试,就可以访问,肯定有这个数据库!
    2009年4月28日 10:37
  • 我信息在服务上用Management连接192.168.2.18能连上
    2009年4月28日 10:46
  • 你的数据库装在16上,IIS装在18上是吧,如果是这样把Sql的登陆模式改为混合登陆模式,启用SA登陆,或是新建一个SQL server 帐号登陆,帐号要受相应的权限
    知识改变命运,奋斗成就人生!
    2009年4月28日 11:30
  • 我信息在服务上用Management连接192.168.2.18能连上
    Only domain account can use windows authentication to connect to remote sql server in same or trusted domain.
    2009年4月28日 17:10
  • 我用VS在那个192.168.2.16的机子上,调试,就可以访问,肯定有这个数据库!

    vs调试时使用的账户和IIS(假设你web服务器使用了iis)使用的账户是不同的,
    你要查看iis使用了什么账户。如果不是你要使用的帐号,你可以使用模拟帐户的功能

    查看webconfig中这个配置节的使用方法:
    <identity impersonate="true" userName="accountname" password="password" />
    SQL Engine Test
    2009年4月29日 2:21
    版主
  • 我WEB服务器上的用户名是BAY3
    数据库服务器上的用户名是BAY1
    你说的那个模拟账户我没看明白!
    你按着我说的这两个名给我说一下吗?
    2009年4月29日 4:56
  • 我WEB服务器上的用户名是BAY3
    数据库服务器上的用户名是BAY1
    你说的那个模拟账户我没看明白!
    你按着我说的这两个名给我说一下吗?

    用户名BAY3,BAU1是什么用户?
    我假设这两个都是windows用户,并且是域用户。

    如果你想在web服务器上使用BAY3访问数据库,则需要BAY3在数据库上有相应的登录。
    执行以下语句查看一下:
    select * from sys.server_principals where name='domain\BAY3'--将这里的domain替换成你的域名称
    如果没有,你需要创建一个
    create login [domainName\BAY3] from windows
    go
    sp_addsrvrolemember 'domainName\BAY3','sysadmin'--将这个用户提升为sqlserver的管理员,我这里只是为了演示,实际上你只要赋予BAY3需要的权限,不一定是sysadmin
    go


    接下来就需要修改你的webconfig文件了.

    <identity impersonate="true" userName="domainName\BAY3" password="BAY3_password" />
    SQL SERVER Engine Test
    2009年4月29日 5:45
    版主
  • 我按你说的
    create login [domainName\BAY3] from windows
    go
    sp_addsrvrolemember '工作组\BAY3','sysadmin'
    在装有数据库上的服务器里运行你这个语句
    可是提示我错误
    MSG 15401,LEVEL 16,state 1,line 1
    windows NT user or group 'WORKGROUP\BAY3' not found.check the name again.
    msg 15007,level 16,State 1,Procedure sp_addsrvrolemember,line 68
     'WORKGROUP\BAY3'  is not a valid login or you do not have permission.
    这英文一句没看懂
    这是什么意思呀!
    怎么解决呀!
    BA1,BA3是我两个刀片的计算机名
    2009年4月29日 9:28
  • 我按你说的
    create login [domainName\BAY3] from windows
    go
    sp_addsrvrolemember '工作组\BAY3','sysadmin'
    在装有数据库上的服务器里运行你这个语句
    可是提示我错误
    MSG 15401,LEVEL 16,state 1,line 1
    windows NT user or group 'WORKGROUP\BAY3' not found.check the name again.
    msg 15007,level 16,State 1,Procedure sp_addsrvrolemember,line 68
     'WORKGROUP\BAY3'  is not a valid login or you do not have permission.
    这英文一句没看懂
    这是什么意思呀!
    怎么解决呀!
    BA1,BA3是我两个刀片的计算机名
    您需要把上面的语句改一下啊,改成你们的域名,和用户名。

    你的链接字符串决定了你要使用windows验证方式链接sqlserver:
    你要在BA3机器上使用windows验证方式去链接BA1机器的数据库。
    就需要一个域用户(找你门网管要一个.如果你没有,就是用sql验证方式吧)
    还有,你查看一下两种验证方式的相关知识吧,别自己试了
    SQL SERVER Engine Test
    2009年4月29日 9:37
    版主