如何将 DB 引擎安全与数据库安全 MSSQL 2005 Express 结合起来?

如何将 DB 引擎安全与数据库安全 MSSQL 2005 Express 结合起来?

当我们恢复使用以下命令创建的备份时,我们会获得数据库级别的所有安全设置,但不会创建引擎级别的用户。

osql -s myserver -E -Q " BACKUP DATABASE MyDB TO DISK = 'C:\SQLBackups\MyDB.bak'"

该用户在引擎级别的主要用途是从外部进行连接(例如 IIS 应用程序)。

databaseName1 映射到用户 databaseUser1

我们想知道要对原始数据库引擎进行哪些备份才能获取连接用户及其所有密码和映射。有什么想法吗?

答案1

数据库用户与 SQL Server 登录名不同。数据库用户作为数据库的一部分进行恢复,但数据库服务器登录名则不是。您遇到的问题通常称为孤立用户。

您有 2 个选择:

  1. 使用更改用户登录使用“报告”查看哪些用户是孤立的,然后使用“auto_fix”在数据库服务器上创建登录名。每次恢复数据库时都需要执行此操作。

  2. 使用帮助仅将孤立的登录信息复制到您执行过恢复的数据库。这有点复杂,但如果它是您定期恢复的数据库,那么值得付出努力,因为您只需执行一次即可。

恢复主服务器不是一个真正的选择,除非您将所有数据库恢复到新服务器,否则可能会变得混乱!

答案2

要恢复登录名,您还必须备份和恢复主数据库。如果您不想这样做,您可以使用以下命令为数据库中的孤立用户创建新的登录名更改用户登录

答案3

在 SQL 2005 中,MS 引入了 sp_help_revlogin。结果集是登录名及其密码(散列)的脚本,非常适合移动登录名(尤其是 SQL 登录名),而无需移动主登录名。

相关内容