`

mssql附加数据库后出现“对象名XXXX无效”

阅读更多

mssql数据库服务器进行硬件升级后,采用附加数据库的方式还原了数据库居然访问不了,出现“对像名XXXX无效的提示”
解决办法:
1、更改表的所有者为dbo,可以在查询分析器里边执行如下语句:
    exec sp_msforeachtable "sp_changeobjectowner '原所有者名称','dbo'"
注意这个只能更改表的所有者,存储过程可以这样修改:exec sp_changeobjectowner '所有者.存储过程名','dbo',还有视图等,差且只能一个表一个表的改。所说可以一下改,不过没试过(摘自互联网)

2、我自己的操作步骤。
  1、附加数据库。(在选择所有者(DBO)的时候选择SA)
  2、建立跟原账号相同的账号(例test),但不指定数据库访问。
  3、打开查询分析器(使用sa登陆 ),选择刚建的数据库存。执行以下语句。
   sp_change_users_login   'update_one', 'test', 'test'   
      F5执行该语句即可。

  网络上详细解释:

  使登录用户和数据库的孤立用户对应起来 
  其实我们建立了同样名称的数据库登录用户后,数据库中的表我们照样不能使用时因为sid的不同,就是系统登录表和数据库用户表中的用户名相同,单是sid字段,数据库中的还是以前旧系统的sid值,所以我们就要把它对应成我们新建的,数据库靠sid来识别用户。 
  这里可以使用存储过程sp_change_users_login。它有三种动作,分别是report,update_one和uto_fix。 
  运行sp_change_users_login   'report ',系统会列出当前数据库的孤立用户数。 
  我们只需要选择当前数据库为testdb,然后运行 
        sp_change_users_login   'update_one ', 'test ', 'test ' 
    系统就会提示修复了一个孤立用户。 
  如果没有建立test的登录用户,还可以用 
  sp_change_users_login   'Auto_Fix ',   'test ',   NULL,   'testpassword ' 
    来创建一个登录用户名为test,密码为testpassword的用户与之对应。 
              
        好了,到这里通常情况下,数据库对象得到访问问题已经解决了。如果有多个数据库中有同一个用户的数据表,只需要选择不同的数据库,执行update_one的那个就行了。 

  还有一种情况:

        对象名   ‘xxxx’   无效的问题 

        这 里可能会有人遇到对象名   ‘xxxx’无效的问题。系统表却不会产生这个问题,而用户表还要加上用户名,然后是表明才能访问,比如 select   *   from   author,会说对象名   author   无效,而用 select   *   from   test.author就可以访问,这个是用户首选身份的问题。 

        解决很简单,就是察看 test登录用户是否具有dba的权限或者系统管理的权限,有的话去掉就行了。 
        因为如果用户有dba身份,那么它登陆后的默认表空间是dbo的系统表空间,所以去掉了之后,就会以正常的test表空间访问数据表了。

分享到:
评论

相关推荐

    MySQL数据库附加

    ### MySQL数据库附加详解 在日常的数据库管理工作中,经常需要进行数据库的备份、恢复或迁移等操作。本文将详细介绍如何在MySQL中附加数据库,并分享一些实用的技巧。 #### 一、MySQL附加数据库概述 在MySQL中,...

    实验2 MySQL数据库对象管理.docx

    MySQL 数据库对象管理 MySQL 数据库对象管理是数据库管理系统中的一部分,涉及到数据库对象的创建、管理和维护。数据库对象包括数据字典、表、索引、视图等。以下是 MySQL 数据库对象管理的知识点: 1. 数据字典...

    实验2 MySQL数据库对象管理.pdf

    MySQL数据库对象管理实验知识点: 一、MySQL数据字典的作用与操作 数据字典是数据库系统中关于数据库的描述信息,它可以看作数据库中所有对象的元数据存储。在MySQL中,INFORMATION_SCHEMA数据库提供了访问数据库...

    国家开放大学 数据库运维 形考2 MySQL数据库对象管理

    MySQL 数据库对象管理 本节实验旨在帮助学生理解数据字典、表、索引、视图的作用,掌握数据字典的操纵方式,掌握库、表、索引、视图的操作方法。通过对 INFORMATION_SCHEMA 中各个表的查看、创建、修改和删除操作,...

    国家开放大学 MySQL数据库应用 实验训练1 在MySQL中创建数据库和表

    "国家开放大学 MySQL数据库应用实验训练1 在MySQL中创建数据库和表" 本实验训练旨在让学生掌握 MySQL 中的数据库和表的创建过程。 MySQL 是一种关系型数据库管理系统,广泛应用于各种领域。为提高学生的实践能力,...

    h2数据导入mysql数据库(看评论酌情下载)

    如果 h2 数据库中的数据类型与 MySQL 数据库中的数据类型不兼容,可能会出现数据导入失败的情况。 h2 数据库导入 MySQL 数据库需要通过将 h2 数据库下的表结构和数据分别导入到 MySQL 数据库中,并确保数据的一致性...

    Informatica连接Mysql数据库案例

    3. 配置 ODBC 驱动:安装完成后,需要配置 ODBC 驱动,以便 Informatica 识别 Mysql 数据库。 Informatica 连接 Mysql 数据库的步骤 下面是 Informatica 连接 Mysql 数据库的详细步骤: 步骤 1:创建 Mysql ...

    sql.rar_mysql批量附加数据库说明_sql

    本教程将详细讲解如何使用MySQL进行批量附加数据库,并结合提供的"批量附加数据库.sql"文件来阐述相关知识。 首先,我们需要理解什么是数据库附加。在MySQL中,"附加"通常指的是恢复一个数据库的二进制日志文件(....

    腾讯云数据库mysql产品认证答案

    作为一名IT行业大师,我将详细解释腾讯云数据库mysql产品认证答案,涵盖标题、描述、标签和部分内容中提到的知识点。 腾讯云数据库mysql产品认证答案 腾讯云数据库mysql产品认证答案是指腾讯云提供的mysql数据库...

    C#操作Mysql创建数据库,数据表,增、删、改数据

    在IT行业中,C#是一种广泛使用的面向对象的编程语言,尤其在开发Windows应用程序和Web应用程序时。Mysql则是一款流行的开源关系型数据库管理系统,因其高效、稳定和易于管理的特性而受到开发者们的青睐。本教程将...

    VB6.0连接MySQL数据库

    操作完成后,应当关闭Recordset对象和Connection对象,以释放数据库资源。 ```vb rs.Close Set rs = Nothing conn.Close Set conn = Nothing ``` VB6.0作为一种已经较为老旧的开发工具,在与现代数据库如MySQL的...

    MySQL数据库基础-数据库对象

    MySQL数据库的基础知识,帮助你初步认识MySQL数据库的对象

    MySQL数据库巡检手册 MySQL DBA必备

    MySQL数据库巡检手册是MySQL数据库管理员(DBA)在进行数据库管理和维护工作中非常重要的参考资料。巡检手册包含了数据库性能、安全、运行状况等方面的检查项,以确保数据库能够正常稳定运行,及时发现并解决潜在问题...

    MYSQL数据库大进级,是非常全面的MYSQL数据库进阶学习资料!

    MYSQL数据库大进级,是非常全面的MYSQL数据库进阶学习资料!

    最简洁的delphi连接mysql数据库

    2. **Database**: 输入MySQL服务器上的数据库名。 3. **Host**: 输入MySQL服务器的地址,可能是IP地址或者域名。 4. **Port**: MySQL服务的端口号,默认是3306。 5. **User**: 连接数据库的用户名。 6. **Password**...

    安卓进行照片在mysql云数据库端读取

    在Android平台上,将照片存储到MySQL云数据库并从其中读取是一个常见的需求,尤其是在构建具有云存储功能的应用程序时。本项目实现了一个功能,允许用户将相册中的照片上传到MySQL云数据库,然后可以从数据库中下载...

    matlab访问mysql数据库教程及代码

    MATLAB 访问 MySQL 数据库教程及代码 MATLAB 是一个功能强大的数学计算软件,而 MySQL 是一个流行的关系数据库管理系统。在本教程中,我们将学习如何使用 MATLAB 访问 MySQL 数据库,并提供详细的代码示例。 一步...

    MySQL数据库应用形考实验1-4全答案.zip

    MySQL数据库是一种广泛应用于Web开发和企业级数据存储的开源关系型数据库管理系统。在这个"MySQL数据库应用形考实验1-4全答案.zip"压缩包中,包含了四个关于MySQL基础操作的实验训练,涵盖了从数据库和表的创建,到...

    MySQL数据库基础与实例教程所有资源

    MySQL数据库是一种广泛使用的开源关系型数据库管理系统,以其高效、可靠和易于学习的特性深受开发者喜爱。本教程将全面介绍MySQL的基础知识,并通过实例帮助你掌握其核心操作。 首先,我们来了解一下MySQL的基本...

    C#实现Mysql数据库操作实例(含源码)

    使用`MySqlConnection`类创建数据库连接对象,并通过`Open()`方法打开连接。 ```csharp MySqlConnection connection = new MySqlConnection(connectionString); connection.Open(); ``` 4. **执行SQL语句**: ...

Global site tag (gtag.js) - Google Analytics