为什么在本地电脑上连不上服务器上面的sql server?(送分)

时间:2022-09-23 18:06:42
我用vb,程序里面用dim adoconnection as new adodb.connection
adoconnection.Open "Provider=SQLOLEDB;initial catalog=pattern;Data Source=kingkong;UID=sa;PWD=aaa"
可是连不上服务器的sql server.
出错信息为[DBNMPNTW]connectionopen(createfile()).
可是假如我通过访问共享文件夹的方式访问了KINGKONG一次之后,或者把KINGKONG的GUEST打开,不设置密码,就可以用上面那两句话连上SQL SERVER.
为什么会这样呢?

18 个解决方案

#1


adoconnection.open "Provider=SQLOLEDB.1;Password=aaa;Persist Security
                                                     ^^^^^^^^^^^^^^^^
 Info=True;User Id=sa;Initial Catalog=pattern;Data Source=kingkong" 
 ^^^^^^^^^有密码,这儿必须为True 

#2


不会呀,我不用这个也行,不过要先访问一次服务器的共享才行,很奇怪!

#3


你把sqlserver的安全模式改为不与nt集成的应该就好了

#4


你的SQL SERVER用户认证方式选用的是操作系统认证吧?

#5


to signboy(横) 怎么改为不与nt集成呢?我的sqlserver用的是混合登陆模式

#6


同意若水三千的话,把它改成混合认证模式!

#7


是不是在sql server的企业管理器里面,服务器的属性中“安全”那一项"身份验证“选sql server和windows?我已经选了,还是不行。

#8


在服务器上建立一个用户,你以后登陆本机时就用这个用户登陆就行了

#9


最好不要用administrator身份登录。

#10


选择混合后,可以用ODBC进行连接,建立一个.dsn文件,(当然要在服务器上建一个账号),
如果还不行的话,还要修改建完这个.dsn文件,把密码加上去pwd=*************
应该可以了

#11


你看看你的网络通吗?

#12


我是用sa来登陆的呀。请问怎样建立一个.dsn文件?
现在很奇怪的一点是:我只要在程序中在adoconnecion.open那一句的上面加上一句WNetAddConnection2的代码建立本地机到服务器的映射后就可以了登陆sqlserver了
为什么会这样呢?

#13


是要你建一个服务器(如2000的)的用户(不是数据库的用户),登陆自己机器时用这个用户登陆

#14


to xzou(缺齿小狼):你说的是什么意思?在服务器上面建的win2000用户,怎么可以用来登陆本地机?

#15


比如200里建立用户test 密码 pass,你登陆本机也有个用户,如果是98,现在你就用test用户登陆,如果是nt/2000,建立同样的用户登陆,这个属于使用windows登陆用户的问题,当然你也可以建立域用户登陆,等等

#16


建议你看看服务器的DNS。

#17


这不是一个域,只是几台在一个局域网里面的计算机而已,都是装了2000,而且其中一台作为服务器装了sqlserver。我要编一个vb的程序,现在就是在程序里面登陆不了sqlserver.
假如我在程序外用服务器那台机的用户名和密码登陆服务器一次后,就可以在程序里面连上服务器的sqlserver了。什么原因呢?

#18


你没有访问那台机器的权限时,就不能访问倒他的数据库,所以你登陆本机时需要用
“服务器那台机的用户名和密码登陆”(当然,你本身也要建立这个用户和相同的密码)

#1


adoconnection.open "Provider=SQLOLEDB.1;Password=aaa;Persist Security
                                                     ^^^^^^^^^^^^^^^^
 Info=True;User Id=sa;Initial Catalog=pattern;Data Source=kingkong" 
 ^^^^^^^^^有密码,这儿必须为True 

#2


不会呀,我不用这个也行,不过要先访问一次服务器的共享才行,很奇怪!

#3


你把sqlserver的安全模式改为不与nt集成的应该就好了

#4


你的SQL SERVER用户认证方式选用的是操作系统认证吧?

#5


to signboy(横) 怎么改为不与nt集成呢?我的sqlserver用的是混合登陆模式

#6


同意若水三千的话,把它改成混合认证模式!

#7


是不是在sql server的企业管理器里面,服务器的属性中“安全”那一项"身份验证“选sql server和windows?我已经选了,还是不行。

#8


在服务器上建立一个用户,你以后登陆本机时就用这个用户登陆就行了

#9


最好不要用administrator身份登录。

#10


选择混合后,可以用ODBC进行连接,建立一个.dsn文件,(当然要在服务器上建一个账号),
如果还不行的话,还要修改建完这个.dsn文件,把密码加上去pwd=*************
应该可以了

#11


你看看你的网络通吗?

#12


我是用sa来登陆的呀。请问怎样建立一个.dsn文件?
现在很奇怪的一点是:我只要在程序中在adoconnecion.open那一句的上面加上一句WNetAddConnection2的代码建立本地机到服务器的映射后就可以了登陆sqlserver了
为什么会这样呢?

#13


是要你建一个服务器(如2000的)的用户(不是数据库的用户),登陆自己机器时用这个用户登陆

#14


to xzou(缺齿小狼):你说的是什么意思?在服务器上面建的win2000用户,怎么可以用来登陆本地机?

#15


比如200里建立用户test 密码 pass,你登陆本机也有个用户,如果是98,现在你就用test用户登陆,如果是nt/2000,建立同样的用户登陆,这个属于使用windows登陆用户的问题,当然你也可以建立域用户登陆,等等

#16


建议你看看服务器的DNS。

#17


这不是一个域,只是几台在一个局域网里面的计算机而已,都是装了2000,而且其中一台作为服务器装了sqlserver。我要编一个vb的程序,现在就是在程序里面登陆不了sqlserver.
假如我在程序外用服务器那台机的用户名和密码登陆服务器一次后,就可以在程序里面连上服务器的sqlserver了。什么原因呢?

#18


你没有访问那台机器的权限时,就不能访问倒他的数据库,所以你登陆本机时需要用
“服务器那台机的用户名和密码登陆”(当然,你本身也要建立这个用户和相同的密码)