i有许多SQL Server登录,这些SQL Server登录已在实例A上配置。这些SQL Server登录名是明确映射到特定数据库的。因此,这些数据库在其安全容器中将登录名称列为用户。当我将备份从实例A中恢复为B时,数据库级别用户将成为"无登录的用户"。用户在实例B中存在于服务器级别,这不是登录的情况。从字面上看,它变成了"没有登录的SQL用户",而不是"登录名的SQL用户"。有人对如何解决这个问题有任何想法吗?到目前为止,我已经用尽了所有选择。除了将用户放在数据库级别上并将其添加到该数据库的服务器级别上,似乎没有什么可用的了。但是,我无法继续这样做,因为它是自动过程的一部分。
问题是您在实例B中未正确创建登录名,因此它们的SID与实例A中的登录不同。数据库用户参考SID而不是登录名,因此登录名与数据库用户没有看到的SID登录名相同。
因此,您需要从本来应该与实例A的登录相同的实例B中删除登录名-to-transfer-logins and-passwords-betwords-bet-bet-bet-instances of-sql-server将这些登录复制到实例b。
您只需要创建sp_hexadecimal和sp_help_revlogin存储的过程,即您要从中复制登录,但在所有实例上拥有它并没有什么伤害。