每一个网站背后都有一个故事!  会员中心 会员登录   设为首页 设为首页   加入收藏 收藏百万站   百万学院 百万学院  
 
 
»点此完善

百万站官网资料-服务器间移动SQL Server数据库产生的问题分析

㊦1㊧φJ 囵 圈 B 囶囷 囸

㊦1㊧φJ 囵 圈 B 囶囷 囸

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

如何传输登录和密码

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

如何解决孤立用户

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

孤立用户

通过以下方式可以解决该问题:
步骤1:
exec sp_change_users_login 'REPORT'
列出当前数据库的孤立用户

步骤2:
exec sp_change_users_login 'AUTO_FIX','用户名'
可以自动将用户名所对应的同名登录添加到syslogins中

步骤3:
exec sp_change_users_login 'UPDATE_ONE','用户名','登录名'
将用户名映射为指定的登录名。

百万站官网资料:http://www.baiwanzhan.com/site/t123241/

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 步操作。

第 4 步:如何移动作业、警报和运算符

第 4 步是可选操作。您可以为源服务器上的所有作业、警报和运算符生成脚本,然后在目标服务器上运行脚本。? 要移动作业、警报和运算符,请按照下列步骤操作:

1. 打开 SQL Server 企业管理器,然后展开管理文件夹。
2. 展开 SQL Server 代理,然后右键单击警报、作业或运算符。
3. 单击所有任务,然后单击生成 SQL 脚本。对于 SQL Server 7.0,请单击为所有作业生成脚本、警报或运算符。

您可以用右键单击选择为所有警报、所有作业或所有运算符生成脚本。

? 您可以将作业、警报和运算符从 SQL Server 7.0 移到 SQL Server 2000,也可以在运行 SQL Server 7.0 和运行 SQL Server 2000 计算机之间移动。
? 如果在源服务器上为运算符设置了 SQLMail 通知,则目标服务器上也必须设置 SQLMail,才能具有相同的功能。

第 5 步:如何移动 DTS 包

第 5 步是可选操作。如果 DTS 包在源服务器上存储在 SQL Server 中或存储库中,您可以在需要时移动这些包。要在服务器之间移动 DTS 包,请使用下列方法之一。

方法 1

1. 在源服务器上将 DTS 包保存到一个文件中,然后在目标服务器上打开 DTS 包文件。
2. 将目标服务器上的包保存到 SQL Server 或存储库中。

注意:您必须用单独的文件逐个地移动这些包。

方法 2

1. 在 DTS 设计器中打开每个 DTS 包。
2. 在包菜单上,单击另存为。
3. 指定目标 SQL Server。

注意:在新服务器上,包可能无法正常运行。您可能必须对包进行更改,更改包中任何对旧的源服务器上的连接、文件、数据源、配置文件和其他信息的引用,以便引用新的目标服务器。您必须根据每个包的设计逐个包进行这些更改。

本文中介绍的步骤不移动数据库关系图以及备份与还原历史记录。如果您必须移动这些信息,请移动 msdb 系统数据库。如果您移动 msdb 数据库,则不必执行“第 4 步:如何移动作业、警报和运算符”或“第 5 步:如何移动 DTS 包”。


请您关注:百万优秀网站的大本营
上一站:  十个步骤打造安全的Win2003 Server Web服务器
当前推荐网站:  服务器间移动SQL Server数据库产生的问题分析
下一站:  服务器防御:对sethc.exe后门的解决办法


申明:本资料由百万站会员提供,转载请注明出处,资料来源百万站网站知识库:http://www.baiwanzhan.com/site/t123426/.
服务器间移动SQL Server数据库产生的问题分析 感谢您的支持!

»如果您觉得'服务器间移动SQL Server数据库产生的问题分析'相关资料不全,请点此协作更新!
复制本页网址,与您QQ/MSN上的好友分享,就是您对百万站最大的支持!
踩踩此网站0
支持此网站0
(提示:顶到百万站首页,分享给更多网友!)  
现在有0人对'本文'发表评论 »查看全部评论

您的姓名: * 可选项,留空即为匿名发表
评论内容:
剩余字数:  * 按 Ctrl + Enter 发送.
           
百万站温馨提示:资料由百万站会员自行发布,请大家自辩真伪;评论只需提交一次,请耐心等候审核通过,方可显示.
»网友留言

服务器间移动SQL Server数据库产生的问题分析

贡献者:brookwang点击数: 累积有5596人浏览
所属类别:服务器知识主页标签:移动数据库 
参考网址:http://www.baiwanzhan.com/site/t123426/
导航目录:乐园 > 百万学院 > 服务器知识
内容简介:在您向目标服务器传输登录和密码后,用户可能还无法访问数据库。登录与用户是靠安全识别符 (SID) 关联在一起的;在您移动数据库后,如果 SID 不一致,SQL Server 可能会拒绝用户访问数据库。此问题称为孤立用户。
2019,与百万网友携手打造百万站!
百万站-百万优秀网站的大本营!我们深信:每一个优秀网站的背后都有一个值得我们解读的故事。
合 作 伙 伴