MS SQL Server 镜像

MS SQL Server 镜像

由于应用程序开发方式独特,我们正在考虑镜像 MS SQL 数据库(用于 Web 应用程序),每个用户都有一个 SQL 服务器登录用户帐户,该帐户对我们的 Web 应用程序数据库有权限。

我们无法找出或使 MS SQL 数据库将用户帐户从一台服务器镜像到另一台服务器。

是否可以这样做,或者 MS SQL 镜像仅限于数据库表/数据。

答案1

数据库镜像仅限于数据库,不包括实例级别的任何信息,例如登录名和作业。这些将需要使用脚本或手动过程进行迁移。微软提供了一个名为帮助这将导出登录名(以及与您的 SQL 用户关联的 SID),并且此脚本的输出可以在 DR 服务器上运行。这将创建具有相同密码的登录名,并且由于数据库用户(不是登录名,它们是分开的)使用 SID 映射到实例登录名,并且 SID 仍然相同,这应该可以解决您的问题。您必须单独编写 SQL 作业脚本,但我认为 Bill Graziano 有一个脚本实用程序可以执行这两个功能并且可以安排,但我现在找不到它的链接。

找到链接

答案2

它仅限于数据库。

答案3

微软SQL数据库镜像不会更新相互的安全或登录设置。

但是,您可以使用 Windows 集成安全性并将新用户添加到“webapp”安全组。

答案4

SQL Server 2012 引入了包含数据库(http://msdn.microsoft.com/en-us/library/ff929071.aspx)——本质上这些数据库是有些与 SQL Server 实例的其余部分隔离。

通过将数据库设置为部分包含,您可以创建包含用户 - 凭据和权限存储在实际数据库中,而不是主数据库中,因此包含用户针对该数据库而不是 SQL Server 实例进行身份验证。因此,如果您使用数据库镜像,则登录名和权限将自动传输到镜像。

要创建包含的用户,您还需要在主体和镜像上将 sp_configure 选项“包含数据库身份验证”设置为 1(http://msdn.microsoft.com/en-us/library/ff929237.aspx

为确保数据库的安全,请遵循一些安全最佳实践 - 请参阅http://msdn.microsoft.com/en-us/library/ff929055.aspx了解更多信息。

如果您没有使用 SQL 2012,那么我意识到这没什么用,但也许这是一个升级的好理由!

相关内容