扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者: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领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者