问题原因:

把数据库备份还原到另一个服务器时,可能会产生孤立用户的问题;

解决办法:

步骤:1.把备份的数据库还原到新的数据库服务器中(

1.1企业管理器-->1.2数据库(右键)-->1.3所有任务-->1.4还原数据库-->1.5常规/还原为数据库/写上你要的数据库名字xxxx/选中从设备/选择设备/添加(浏览找到你的数据库备份文件)/确定/确定/确定-->1.6选项-->1.7将数据库还原为f:/usr/xxxx.mdf一般存放在你sql安装的目录下如:d:/Program Files/Microsoft SQL Server/MSSQL/Data/xxxx.mdf-->1.8确定就ok了!!

2. 查看你刚刚还原的数据库中的用户如:abc;

3. 查看安全性下面的登陆用户中是否有:abc如果没有此时的abc就是一个孤立用户;

4.打开查询分析器运行脚本

use  数据库名

go

DECLARE   @sid   BINARY(16)   
       SELECT    @sid=sid FROM sysusers WHERE name='abc' and   islogin=1
       exec      sp_addlogin  @loginame = 'abc',@sid = @sid

5.注意,应该是先还原,如果事先在sql的安全性--登录中已经

创建abc这个登录,则先删除它,再执行上面的语句.同过上面的就能解决问题了!

======================================================================

总结:孤立用户疑难解答   
  把数据库备份还原到另一个服务器时,可能会遇到孤立用户的问题。下面的方案显示解决了这个问题:    
  通过执行sp_addlogin,把登录   janetl   改名为   dbo。  
  sp_addlogin  'janetl', 'dbo'      
  备份数据库。在本例中,备份  Northwind。   
  BACKUP  DATABASE   Northwind   
  TO  DISK = 'c:/mssql/backup/northwnd'      
  除去刚刚备份的数据库。     
  DROP   DATABASE   Northwind      
  除去登录。     
  sp_droplogin   'janetl'      
  还原备份的数据库。     
  RESTORE   DATABASE   Northwind   
  FROM   DISK   =   'c:/mssql/backup/northwnd'      
  janetl  登录不能访问  Northwind  数据库,除非允许 guest   登录。尽管   janetl   登录已经删除,
它仍然(作为一个孤立行)显示在   sysusers   表中:     
  USE   Northwind   
  SELECT   *   
  FROM   sysusers   
  WHERE   name   =   'janetl'     
  解决孤立用户问题        
  用   sp_addlogin 添加一个临时登录。为孤立用户指定安全标识符(SID)(从   sysusers)。     
  sp_addlogin @loginame = 'nancyd',@sid   =   0x32C864A70427D211B4DD00104B9E8A00       
  用   sp_dropalias   除去属于别名   SID   的临时别名。     
  sp_dropalias   'nancyd'       
  用   sp_dropuser   除去原始用户(即现在的孤立用户)。     
  sp_dropuser   'janetl'      
  用   sp_dropuser   除去原始登录。     
  sp_droplogin   'nancyd'

========================================

--孤立用户的产生演示       
  --创建一个测试的数据库   
  CREATE   DATABASE   DB_test   
  go       
  --创建一个登录   
  EXEC   sp_addlogin   'aa'       
  --设置登录   aa   的默认数据库为测试数据库   DB_test   
  EXEC   sp_defaultdb   'aa','DB_test'   
  go       
  --切换到测试数据库   
  USE   DB_test   
  go     
  --为登录   aa   在当前测试数据库中添加用户   
  EXEC   sp_grantdbaccess   'aa'   
  go     
  --至此,用户   aa   登录后,其默认的当前数据库就是   DB_test   
  --我们可以在查询分析器,使用用户   aa   登录一下,来验证我们的测试环境   
    
  --备份测试数据库,为下面的测试做准备   
  BACKUP   DATABASE   DB_test   TO   DISK='c:/DB_test.bak'   WITH   INIT   
  go       
  /*===================   产生孤立用户   ======================*/       
  --切换到   master   数据库   
  USE   master   
  go
    
  --删除测试数据库   
  DROP   DATABASE   DB_test   
  go      
  --删除登录   aa   
  EXEC   sp_droplogin   'aa'   
  go     
  /*===================   孤立用户表现形式1   ======================*/     
  --还原测试数据库   
  RESTORE   DATABASE   DB_test   FROM   DISK='c:/DB_test.bak'   
  go    
  --切换到测试数据库   
  USE   DB_test   
  go     
  --查看用户信息   
  select   name   from   sysusers   where   islogin=1     
  --我们会发现,虽然我们已经将登录   aa   删除了,但用户   aa   仍然存在于数据库中   
  --尝试一下,用   aa   登录,被告知登录失败   
  go     
  --再把删除的登录添加回去   
  EXEC   sp_addlogin   'aa'     
  --设置登录   aa   的默认数据库为测试数据库   DB_test   
  EXEC   sp_defaultdb   'aa','DB_test'     
  --再次登录,被告知无法打开默认数据库,登录失败   
  go      
  --于是把默认数据库改为   master   
  EXEC   sp_defaultdb   'aa','master'      
  --这次再登录,就可以登录了   
  go     
  --尝试切换到测试数据库   DB_test   
  USE   DB_test    
  --得到错误信息:   服务器用户   'aa'   不是数据库   'DB_test'   中的有效用户。   
  --看来用户   aa   与登录   aa   失去了联系   
  go      
  --尝试重新为登录   aa   添加用户   aa   
  EXEC   sp_grantdbaccess   'aa'      
  --得到错误信息:当前数据库中已存在用户或角色   'aa'。    
  --这次我们换个顺序,先建立登录,再恢复数据库,看能否使登录与用户自动建立回联系       
  --做这个测试之前,先清理测试环境,即做前面的<产生孤立用户>步骤,然后再开始测试     
  --先添加登录   
  EXEC   sp_addlogin   'aa'   
  go       
  --还原测试数据库   
  RESTORE   DATABASE   DB_test   FROM   DISK='c:/DB_test.bak'   
  go       
  --切换到测试数据库   
  USE   DB_test   
  go      
  --查看用户信息   
  select   name   from   sysusers   where   islogin=1       
  --我们会发现,用户   aa   存在于数据库中   
  --尝试一下,用   aa   登录,并切换到   DB_test   
  --结果是登录成功,访问   DB_test   出现和测试1一样的错误

for SQL Server 错误 '80040e37'

对象名 'Dv_User' 无效。

/***.asp,行 *

先查看了一下数据库表,确实有这个表存在,而且程序中调用语句也没错.
重写了一下代码,结果还是一样.
怀疑不是程序的问题,于是看其他页面,发现所有的页面都有类似的问题,只要有调用到数据库的地方,都会出现错误.

判断是数据库出现了问题.数据库链接没错.
导入也没错.

go了一把,就解决了.

--把所有表的所有者改为DBO就不会了。
--执行下面语句,更改所有表的所有者为DBO
exec sp_msforeachtable "sp_changeobjectowner '?','dbo'"

转贴:Microsoft OLE DB Provider for SQL Server错误80040e37相关推荐

  1. Microsoft OLE DB Provider for SQL Server 错误 '80040e37'

    问题原因: 把数据库备份还原到另一个服务器时,可能会产生孤立用户的问题: 解决办法: 步骤:1.把备份的数据库还原到新的数据库服务器中( 1.1企业管理器-->1.2数据库(右键)-->1 ...

  2. Microsoft OLE DB Provider for SQL Server 错误 ‘80004005‘错误原因和解决方案

    Microsoft OLE DB Provider for SQL Server 错误 '80004005'错误原因和解决方案 方法步骤: 1.在WINSOWS/TEMP目录的安全选项中,添加帐号ev ...

  3. Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'

    数据库用的是access,症状是 首页,列表页可以显示,但是内容页无显示 错误如下: Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005' ...

  4. win7——win server 2012 iis中使用asp程序出现Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'

    当使用win7--win server 2012系统,使用 iis配置web服务器时出现Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005' ...

  5. 关于windows2008r2下access数据库网站报Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'

    今天配置站点时报: "Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005' [Microsoft][ODBC 驱动程序管理器] 未 ...

  6. Microsoft OLE DB Provider for ODBC Drivers 错误 ‘80004005‘ 兼容

    Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005' [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动 ...

  7. Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'解决方案

    错误提示:Microsoft OLE DB Provider for ODBC Drivers (0x80004005) [Microsoft][ODBC Microsoft Access Drive ...

  8. Microsoft OLE DB Provider for ODBC Drivers 错误 ‘80004005‘[Microsoft][ODBC SQL Server Driver]登录超时已过期

    解决办法:重启小旋风AspWeb服务器 或者重启电脑

  9. 【本地ASP网站】Microsoft OLE DB Provider for ODBC Drivers

    错误提示: Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005' [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未 ...

最新文章

  1. ISA SERVER日志存放SQL SERVER中
  2. 通俗易懂!《图机器学习导论》(附链接)
  3. 洪小文: 今天的AI只是一个黑盒,仍需与HI密切配合
  4. 基于C++中常见内存错误的总结
  5. mysql怎么加固_mysql安装及加固
  6. python获取交易软件数据_几行Python代码,轻松获取美股阿里巴巴的交易数据
  7. CentOS安装之后的系统安全配置
  8. bzoj 1669: [Usaco2006 Oct]Hungry Cows饥饿的奶牛
  9. Kinect 开发 —— 面部追踪
  10. 一、图解Java中String不可变性
  11. 计算机分区格式转换,硬盘GPT分区与MBR分区如何转换
  12. 电脑装服务器系统没有网卡驱动,安装win10系统后没有网卡驱动的解决方法
  13. java画图板_java画图板工具下载
  14. 在OpenWrt系统的路由器NETGEAR WNDR4300上安装KMS服务器vlmcsd
  15. 微擎支付返回商户单号_扫码枪轻轻一扫,瞬间扣款,支付背后的原理原来这么简单...
  16. efishell无法开机shell_efi shell 添加启动项 修复启动
  17. 对前端工程化、模块化、组件化开发的理解
  18. mybatisSql编写小结
  19. hibernate 乐观锁
  20. 第六章函数,编写一个判断水仙花数的函数,从主函数输入正整数n,在主函数中调用判断水仙花数的函数,找出n以内所有的水仙花数。(水仙花数指3位数的各个数字的立方和等于这个三位数本身)。

热门文章

  1. 备战2018|春招or跳槽?大学生和职场新人最后的机会!
  2. 普通程序员如何走出困境?
  3. Unity 3D做2D坦克大战--敌人自动攻击AI编写
  4. sigmoid函数温习【函数曲线可视化与导函数曲线可视化】
  5. kali19.4安装中文输入法
  6. 蚂蚁金服旗下网商银行招聘了
  7. 如何利用会员积分体系提高用户活跃留存
  8. peU盘ud区和efi区如何共用wim文件
  9. python实现真正的多线程
  10. ffmpeg命令行使用