积极答复者
远程连接数据库的问题

问题
-
我用的是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日 10:47
答案
-
你的数据库装在16上,IIS装在18上是吧,如果是这样把Sql的登陆模式改为混合登陆模式,启用SA登陆,或是新建一个SQL server 帐号登陆,帐号要受相应的权限
知识改变命运,奋斗成就人生!- 已建议为答案 KeFang Chen 2009年4月30日 6:18
- 已标记为答案 KeFang Chen 2009年5月4日 3:53
-
我用VS在那个192.168.2.16的机子上,调试,就可以访问,肯定有这个数据库!
vs调试时使用的账户和IIS(假设你web服务器使用了iis)使用的账户是不同的,
你要查看iis使用了什么账户。如果不是你要使用的帐号,你可以使用模拟帐户的功能
查看webconfig中这个配置节的使用方法:
<identity impersonate="true" userName="accountname" password="password" />
SQL Engine Test- 已建议为答案 KeFang Chen 2009年4月30日 6:18
- 已标记为答案 KeFang Chen 2009年5月4日 3:53
全部回复
-
你的数据库装在16上,IIS装在18上是吧,如果是这样把Sql的登陆模式改为混合登陆模式,启用SA登陆,或是新建一个SQL server 帐号登陆,帐号要受相应的权限
知识改变命运,奋斗成就人生!- 已建议为答案 KeFang Chen 2009年4月30日 6:18
- 已标记为答案 KeFang Chen 2009年5月4日 3:53
-
我用VS在那个192.168.2.16的机子上,调试,就可以访问,肯定有这个数据库!
vs调试时使用的账户和IIS(假设你web服务器使用了iis)使用的账户是不同的,
你要查看iis使用了什么账户。如果不是你要使用的帐号,你可以使用模拟帐户的功能
查看webconfig中这个配置节的使用方法:
<identity impersonate="true" userName="accountname" password="password" />
SQL Engine Test- 已建议为答案 KeFang Chen 2009年4月30日 6:18
- 已标记为答案 KeFang Chen 2009年5月4日 3:53
-
我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 -
我按你说的
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是我两个刀片的计算机名 -
我按你说的
您需要把上面的语句改一下啊,改成你们的域名,和用户名。
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