我有一个应用程序,将部署在具有SQL Server的生产型PC上。 我希望能够在我的数据库中存储和检索架构的一个版本。 我感兴趣的最佳实践,能够做到这一点,有以下主要目标:在SQL Server中存储数据库模式版本的最佳实践?
- 能够存储和方便地检索数据库的版本号。
- 被客户隐藏或更难找到和操纵。
- 能够在我们创建新版本时进行编辑/更改。
- 备份数据库或删除数据库将保留用于取证的版本#。
我希望有一种方法可以在元数据中存储“版本”,或者不是可以通过系统存储过程访问/设置的普通表。
任何想法或最佳实践?
编辑:我发现可能有前途的一个选项是使用SQL Server扩展属性,将键值分配给数据库的“Schema_Version”和版本号。它没有加密(但值可能),并没有隐藏,但至少从我们的一些用户和现场工作人员浏览的实际DB结构中删除(对我的沮丧!:))
为什么你会在意,如果客户端可以访问的领域?如果他们直接编辑它,是不是只会弄乱应用程序,然后这将是他们自己的错误? – mellamokb 2012-04-17 18:32:02
@mellamokb - 伟大的标注,但我们需要这特别是因为在现场人们正在做的是:与数据库搞混。我们希望这是用于法医调查,因此隐藏它(例如在SQL元数据中)只会降低更改的可能性。 – pearcewg 2013-01-31 21:46:07
@pearcewg如果你想取证,那么你步入安全领域,然后你就错过与你的需求点。你不应该试图保护那些拥有它的人的数据库 - 这就是所谓的“过度保护设计”。如果你觉得真的很深,你会发现绝对没有办法让你知道一个有SA密码的人是否搞乱了数据库。这就是整个问题。让解决方案“更难以找到和操纵”只会让你在没有时感到受到保护。 – 2013-05-14 12:30:57