奇宝库 > SQL服务无法启动17051(sql错误15128)

SQL服务无法启动17051(sql错误15128)

Sql server错误15023:用户或角色已经存在于当前数据库中

将远程服务器上的数据库备份恢复到本地计算机后,如果“用户”与“登录”(用户映射)相关联,则会出现错误:“错误15023:用户或角色已存在于当前数据库中”

SQL  Server  错误:15023(创建对于用户失败)

原因:

sql server中“登录”和“用户”的区别。登录用于用户认证,而数据库“用户”帐户用于数据库访问和权限认证。通过登录安全标识符(SID)与用户相关联。当数据库恢复到另一个服务器时,数据库包含一组用户和权限,但是可能没有相应的登录,或者与登录相关联的用户可能不是相同的用户。这种情况被称为“孤立用户”的存在。此时,您无法通过创建新的登录名或将相应数据库的“用户”权限授予同名登录名来解决登录问题,因为SQL Server会报告“错误15023:用户或角色已存在于当前数据库中”

解决:

要解决这个问题,需要调用系统存储过程sp_change_users_login。具体用法如下:

使用Northwind gosp _ change _ users _ log in ' update_one '' test '' test '其中north wind是包含孤立用户的数据库,update _ one是存储过程的参数,表示只处理一个用户。前面的测试是“用户”,后面的测试是“登录”。上面的SQL表明服务器将登录到“test”和northwind数据库。这样数据库才能正常使用。

本文来自网络,不代表本站立场,转载请注明出处: