各位好:我写了段程序访问数据库(sql2005),程序报错用户(sa)登陆失败,但通过SQL管理器,用sa连接是可以的,查了好久没没有解决,请各位大侠支招。在安全性中设置针对sa的用户映射时报错(默认映射的都是系统数据库,未包括用户数据库dbDocManager),勾选用户数据库dbDocManager,勾选DB_OWNER,点确定后报错:Transact-sql语句或批处理发生了异常,无法使用主题‘sa’。重新建立一个用户zzw,设置相关映射没有问题,改程序,用zzw访问,报错信息依旧。
排除以下原因:1、密码错误
2、服务没有启动(外围配置中的相关服务均启动了,连browser也启动了)。
3、登陆模式是混合的(windows+sql)。
4、外围配置中的引擎的远程连接属性设置了“本地连接和远程连接”,使用TCP/IP和NAME PIPE.
5、程序错误。

解决方案 »

  1.   

    问题一:
    已成功与服务器建立连接,但是在登录过程中发生错误。   (provider:   共享内存提供程序,   error:   0   -   管道的另一端上无任何进程。    
    用windows身份登录, 点站点属性,将安全选项 更改为:windows 和sql 混合身份登录,解决。
     
    问题二:
     sql2005使用sa登录错误解决 
    SQL2005企业管理器登录时选用windows身份验证一切顺利,然而使用sql server身份验证即sa用户名登录时,却出现以下错误提示“provider: 共享内存提供程序, error: 0 - 管道的另一端上无任何进程”。于是按以下步骤修改设置:既然windows身份验证能够通过,就以该身份先登录进管理器,然后在服务器属性中有一项服务器身份验证,设为sql server和windows身份验证模式。下一步,在安全--登录中设置sa用户的属性,在状态一栏中有“登录”一项,默认是禁用,改为启用。修改完成后,重启企业管理器以sa用户名进行登录,问题依旧。想了半天,原来在设置完“sql server和windows身份验证模式”后,要求重启服务。当时设置完成后只是重新开启了企业管理器,其服务并没重新启动。因此找到“SQL Server 外围应用配置器”,运行后,选择“服务和连接外围应用配置器”,先停止SQLEXPRESS一下,再启动一次。至此问题应该解决了。问题三:已成功与服务器建立连接,但是在登录过程中发生错误。 (provider: 共享内存提供程序, error: 0 - 管道的另一端上无任何进程。)  
    “/cs”应用程序中的服务器错误。 
    已成功与服务器建立连接,但是在登录过程中发生错误。 (provider: 共享内存提供程序, error: 0 - 管道的另一端上无任何进程.)
    出现这样的错误,到网上查了好多资料也没有好的解决办法,最后打开web.config把 
    <add key="SiteSqlServer" value="server=(local);uid=csuser;pwd=xxx;Trusted_Connection=yes;database=communityserver" />
    改成
    <add key="SiteSqlServer" value="Data Source=.;Initial Catalog=communityserver;Persist Security Info=True;User ID=csuser;Password=xxx"/>
    问题解决
      问题四:[原创] 已成功与服务器建立连接,但是在登录过程中发生错误 2007-03-15 12:05 已成功与服务器建立连接,但是在登录过程中发生错误。 (provider: 共享内存提供程序, error: 0 - 管道的另一端上无任何进程。) 上述为我在创建. net 平台下Web Application 时遇到的数据库连接问题。问题的出现是很突然的,因为产品就要交付客户体验了。按照平时的习惯(上网搜索)我们一直没有找到原因,网上出现这种情况的帖子太多了。有改程序中数据库ConnectionString 的,也有对数据库动刀的,可都不对症.后来,经过多方思考,才有了基本的应对方案. 原来这里存在一个数据库迁移的问题(不知道对不对,暂且这样叫吧),当初客户的需求是使用ASP.NET和SQL SERVER 2005 来开发他们的Intranet管理网站,可是我们的机器大都是512M内存的,性能上Visual Studio 2005还能过得去,可是Sql server 2005就不行了,我们只好使用了Studio自带的Sql server 2005 Express Edition.这样的结果是大家在一起工作,数据库很好统一,不用分离,直接复制就能得到一样的数据库版本供大家开发使用,可是我个人体会(以及遇到后来的问题的感想)以为,Studio 内嵌的数据库管理系统和Sql server 2005的还是有点区别的,尤其是在性能上,下面来说说我们遇到的那个数据库连接问题。当我们把整个应用程序配置到IIS时(Web服务器和数据库服务器在同一台机器上,数据库管理系统为Sql server 2005 而非Express Edition ),问题出现了,我们大家一对网站进行测试,几分钟后就会出现上述的Sql server 数据库连接错误,一开始都很迷茫,从没有过的问题啊?后来经过仔细的研究和分析,我们发现问题没有出现在数据库上,而且当且仅当访问带有树状目录结构的页面时,问题就发生了。再说说这个树状结构吧,它是我们手动从数据库中绑定根项目和子项目的无限级递归绑定树,带有树的页面是双框架的,点击左边的树节点,左边会相应显示相关项目的内容,当初我设计这个实现树的递归方法时是这样考虑的,将数据库只开一次,让后看树被初始化之后将数据库给关掉。后来才明白总的问题就出现在这里,递归的时候,调用创建子节点的方法,曾经n次打开数据库连接,可是最终只关闭了一次,所以当多次访问该页面的时候,就会出现“已成功与服务器建立连接,但是在登录过程中发生错误。 (provider: 共享内存提供程序, error: 0 - 管道的另一端上无任何进程。)”的错误。其实如果当时认真地话,单看字面意思也能想到点什么的:“已成功与服务器建立连接”--说明连接没有出错;“provider: 共享内存提供程序, error: 0 - 管道的另一端上无任何进程。”--这个也能想到啊,服务器端用于创建连接的共享内存用完了,自然就不响应后来的请求。假如仔细分析,也许会想到问题是发生在内存消耗上.后来重新把递归方法改了,就没有这样的问题发生了说这么多,我是有个迷惑的:为什么当初在Studio内嵌的Sql server 2005 Express Edition 中没有一次出现这样的问题?难道有个可以共享连接的连接池?性能那么好?  Tdking says: 2007-04-06 20:31 出现“已成功与服务器建立连接,但是在登录过程中发生错误。 (provider: 共享内存提供程序, error: 0 - 管道的另一端上无任何进程。) ”这种问题是因为修改了远程连接的外围设置以后没有能够重启服务,选中服务,点击停止,然后再启动以后,问题就迎刃而解了。
    Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1592604
      

  2.   

    如楼主已经设置了这么多依然有问题,不排除连接字串有问题,我之前也出过类似的状况。参考连接字串:Data Source =127.0.0.1;Initial Catalog = XXX;User ID =XXX;Password=×××区分大小写
      

  3.   

    看一下通讯协议中的TCP/IP是否开启。注意VIA协议是指Virtual Interface Adapter 
    在使用多个instance时,要注意观察Shared Memory协议是否开启。Shared Memory是用来保障在同一机器中,连接到多个实例 
    查看Aliases中连接情况是否符合你设定的值(尤其是端口号,及其协议) 
    查看SQL SERVER Surface Area Configuration中的Remote Connections是否开启tcp/ip协议 
      

  4.   


    确实如此,在服务器管理中可以链接,然后再看看链接字符串。就可以了,这个貌似和WEB中是不一样的。
     return @"Data Source=servername\SQLEXPRESS;Initial Catalog=dormmanage;Persist Security Info=True;User ID=sa;Password=****";