如何将数据库引擎安全与数据库安全MSSQL 2005 Express一起使用?

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

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

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

databaseName1映射到用户databaseUser1

我们想知道我们必须做什么备份到原来的数据库引擎,以使连接用户,所有的密码和映射。 有任何想法吗?

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

你有2个选项:

  1. 使用sp_change_users_login'Report '查看哪些用户是孤立的,然后使用'auto_fix'在数据库服务器上创buildlogin名。 每次恢复数据库时都需要执行此操作。

  2. 使用sp_help_revlogin将孤立的login名复制到您执行恢复的数据库。 这是多一点涉及,但如果它的数据库,你经常恢复,那么值得的努力,因为你只需要这样做一次。

恢复主服务器不是一个真正的select,除非你将所有的数据库恢复到新的服务器,它可以变得凌乱!

要恢复login,您还必须备份和恢复主数据库。 如果您不想这样做,则可以使用sp_change_users_login为数据库中的孤立用户创build新的login名。

在SQL 2005中,MS引入了sp_help_revlogin。 结果集是login脚本和密码(哈希),非常适合移动login(特别是SQLlogin),而无需移动主机。