Home  >  Article  >  Database  >  SQL Server 错误:15023

SQL Server 错误:15023

PHPz
PHPzOriginal
2016-06-07 15:55:572211browse

sql server错误15023:当前数据库中已存在用户或角色 在把远程服务器上的数据库备份还原到本地机后, 给一个登录关联一个用户时(用户映射),发生错误: 错误15023:当前数据库中已存在用户或角色 原因: sql server中登录与用户的区别,登录用于用户身份验证,而

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

在把远程服务器上的数据库备份还原到本地机后, 给一个"登录"关联一个"用户"时(用户映射),发生错误:  “错误15023:当前数据库中已存在用户或角色”

原因:

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

解决:

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

Use Northwind

go

sp_change_users_login 'update_one', 'test', 'test'

其中Northwind为存在孤立用户的数据库,update_one是存储过程的参数,表示只处理一个用户,前一个test是“用户”,后一个test是“登录”,以上这个SQL表示将服务器登录“test”与  Northwind 数据库用户“test”重新连接起来。这样就可以正常使用数据库了。

更多相关教程请访问 MySQL视频教程

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn