科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道运行SQL Server的计算机间移动数据库(3)

运行SQL Server的计算机间移动数据库(3)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文分步介绍了如何在运行 SQL Server 的计算机之间移动 Microsoft SQL Server 用户数据库和大多数常见的 SQL Server 组件。

作者:support.microsoft.com 来源:support.microsoft.com 2007年9月2日

关键字: 移动 数据库 SQL Server SQL Server 各版本

  • 评论
  • 分享微博
  • 分享邮件
 

第 2 步:如何传输登录和密码

如果您不将源服务器中的登录传输到目标服务器,当前的 SQL Server 用户就无法登录到目标服务器。目标服务器上的登录的默认数据库可能与源服务器上的登录的默认数据库不同。您可以使用 sp_defaultdb 存储过程来更改登录的默认数据库。

第 3 步:如何解决孤立用户

在您向目标服务器传输登录和密码后,用户可能还无法访问数据库。登录与用户是靠安全识别符 (SID) 关联在一起的;在您移动数据库后,如果 SID 不一致,SQL Server 可能会拒绝用户访问数据库。此问题称为孤立用户。如果您使用 SQL Server 2000 DTS 传输登录功能来传输登录和密码,就可能会产生孤立用户。此外,被允许访问与源服务器处于不同域中的目标服务器的集成登录帐户,也会导致出现孤立用户。1. 查找孤立用户。在目标服务器上打开查询分析器,然后在您移动的用户数据库中运行以下代码:

exec sp_change_users_login 'Report'

此过程将列出任何未链接到一个登录帐户的孤立用户。如果没有列出用户,请跳过第 2 步和第 3 步,直接进行第 4 步。

2. 解决孤立用户问题。如果一个用户是孤立用户,数据库用户可以成功登录到服务器,但却无权访问数据库。如果您尝试向数据库授予登录访问权,则会因该用户已经存在而出现下列错误消息:

Microsoft SQL-DMO (ODBC SQLState:42000)

错误 15023:当前数据库中已存在用户或角色 '%s'。上面介绍了如何使用 sp_change_users_login 存储过程来逐个纠正孤立用户。sp_change_users_login 存储过程仅能解决标准的 SQL Server 登录帐户的孤立用户问题。

3. 如果数据库所有者 (dbo) 被当作孤立用户列出,请在用户数据库中运行下面的代码:exec sp_changedbowner 'sa'此存储过程会将数据库所有者更改为 dbo 并解决这个问题。要将数据库所有者更改为另一用户,请使用您想使用的用户再次运行 sp_changedbowner。

4. 如果您的目标服务器运行的是 SQL Server 2000 Service Pack 1,则在您执行附加操作或还原操作(或两种操作都执行)后,企业管理器的用户文件夹中的列表中可能没有数据库所有者用户。

5. 如果目标服务器上不存在映射到源服务器上的 dbo 的登录,您在尝试通过企业管理器更改系统管理员 (sa) 密码时,可能会收到以下错误消息:

错误 21776:[SQL-DMO] 名称 'dbo' 在 Users 集合中没有找到。如果该名称是合法名称,则使用 [] 来分隔名称的不同部分,然后重试。

警告:如果您再次还原或附加数据库,则数据库用户可能会再次被孤立,这样您就必须重复第 3 步操作。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章