AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 60056
Accepted
Matt Rogish
Matt Rogish
Asked: 2009-08-29 07:53:36 +0800 CST2009-08-29 07:53:36 +0800 CST 2009-08-29 07:53:36 +0800 CST

SQL Server 2005 在恢复时从数据库中删除对象?

  • 772

在我们从简单的 Windows 更新导致的机器重启中恢复后,SQL Server 2005 从我们的一个镜像数据库中删除了一个用户。

我检查并登录不在镜像服务器中(它在主服务器中)。如果系统经历了故障转移,这是否可以解释为什么用户在恢复到主数据库时会从用户数据库中删除?我在文档中找不到任何表明 SQL Server 会丢弃孤立用户的内容(http://msdn.microsoft.com/en-us/library/ms175475%28SQL.90%29.aspx)。我应该在日志中寻找什么吗?

编辑:失败前的设置:PRIMARY - 登录确定。数据库中的用户正常。MIRROR - 登录不存在。用户在数据库中不存在。

失败后:PRIMARY - 登录 OK。用户在数据库中不存在。MIRROR - 登录不存在。用户在数据库中不存在。

编辑:在上周 WINDOWS UPDATES 重新启动后恢复数据库系统后,我们注意到我们的一个表中缺少一个触发器,另一个用户也是如此。我 100% 确信这不是我们做的(我们只有两个 sa,我就是其中之一)。到底他妈发生了什么?这一定是 SQL Server 2005 镜像的错误。

sql-server-2005 database-mirroring
  • 5 5 个回答
  • 284 Views

5 个回答

  • Voted
  1. mrdenny
    2009-08-29T14:58:12+08:002009-08-29T14:58:12+08:00

    镜像服务器是否曾经创建过登录?如果不是,您需要从主系统编写登录脚本,以便 SID 匹配。

    • 1
  2. Steve Jones
    2009-09-29T07:54:21+08:002009-09-29T07:54:21+08:00

    用户可能在镜像数据库中,只是没有同步到登录。如果设置镜像时用户在那里,即使登录不存在,SQL Server 也不会删除它。在那里。

    如果您稍后添加它,它将穿过镜子。不是登录名,而是 CREATE USER 将被转移。

    • 1
  3. Best Answer
    Nick Kavadias
    2009-12-03T07:53:49+08:002009-12-03T07:53:49+08:00

    这就是我认为发生的事情,这是基于您对孤儿用户的问题标签中的预感,所以我可能是错的。

    1. 您的数据库从主体故障转移到镜像。
    2. 镜像上的数据库服务器(现在是主体)没有从主服务器脚本化登录,而是将其创建为新登录。这意味着 sid 不匹配,因此故障转移后用户登录时出现问题。
    3. 运行修复登录问题 sp_change_users_login 'Update_One' 以修复登录问题。这将更改数据库中的用户 sid 以匹配数据库服务器上登录的 sid。
    4. 数据库再次故障转移。现在,数据库服务器上的登录 sid 不再匹配。该怎么办?再次使用 sp_change_users_login来解决问题。

    应该发生的情况:
    参与镜像的数据库中使用的主体登录被脚本化(如 denny 先生建议的那样)到镜像。最简单的方法是使用sp_help_rev_login 您也可以使用SSIS 传输登录任务。

    数据库服务器登录的 sid 在 sys.server_principals 中可见。数据库用户的 sid 在 sys.database_principals 中。检查这些以确保没有错配。

    • 1
  4. Matt Rogish
    2009-12-31T12:53:32+08:002009-12-31T12:53:32+08:00

    这是我们的第 3 方供应商的应用程序将触发器作为其应用程序的一部分丢弃。疯狂的。

    • 0
  5. Remus Rusanu
    2009-12-04T11:40:46+08:002009-12-04T11:40:46+08:00

    触发器是错误的,因为有人放弃了它。时期。无意冒犯,但如果您是管理员之一,并且您不知道服务器主体驻留在哪里以及为什么数据库主体在故障转移后会成为孤立对象,那么我无法相信您知道触发器消失的原因。

    使用默认管理跟踪来找出谁删除了触发器以及何时删除。如果幸运的话,跟踪文件还没有被回收。设置审计以跟踪从现在开始在您的服务器上发生的更改。对于管理员来说,当触发器消失时,这不应该是一个“惊喜”。不,你不能责怪产品。

    • -1

相关问题

  • 为什么当我尝试删除数据库时 SQL Server 2005 挂起?

  • SQL 洗衣清单

  • 如何提高 SQL Server 镜像性能

  • 聚集索引与非聚集索引?

  • 安全地授予对 SQL 2005 复制监视器的访问权限以创建快照

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve