用于备份的 SQL Server 证书:到期日期重要吗?

Jon*_*ica 5 sql-server backup certificate

如果我在 SQL Server 中有一个证书,用于备份:

  1. 证书过期后还可以创建备份吗?
  2. 证书过期后还可以恢复吗?

让这些证书过期有什么意义?(除了让我暴露于由于过期的证书而导致备份失败......)

Sol*_*zky 8

我已经在 SQL Server 2016(开发人员版,尽管这无关紧要)上对此进行了测试,并且可以确认:

  1. 不行,证书过期后,用它来加密备份会导致以下错误:

    消息 3096,级别 16,状态 1,第 xx 行
    为备份加密指定的证书已过期。
    消息 3013,级别 16,状态 1,行 xx
    BACKUP DATABASE 异常终止。

  2. 是的,证书过期后,仍可以恢复从该证书加密的备份。但是,您仍然需要将证书加载到其中master才能执行RESTORE.

只需创建一个新证书,并确保指定EXPIRY_DATE = 'utc_date'子句,否则过期日期将默认为从创建之日起 1 年。

至于为什么证书有过期日期,这可能是为了更好地控制安全机制,类似于您如何为登录设置过期密码策略。证书可以备份并在多个地方使用,因此它可以帮助确保您不会在某处、某处、永远存在可用于危害您的系统的信息。

  • 这必须经过测试 - 在 TDE 中很确定这无关紧要,但对于镜像和备份,它[可能很重要并会导致失败](https://ask.sqlservercentral.com/questions/134642/change-certificate-expiration .html) (2认同)