zoukankan      html  css  js  c++  java
  • 用户、组或角色 在当前数据库中已存在

    SQL Server把一台服务器上的数据库转移到另外一台服务器上。而转移完成后,需要给一个"登录"关联一个"用户"时,发生错误:“错误15023:当前数据库中已存在用户或角色”或“用户、组或角色 在当前数据库中已存在”

    原因及解决办法:

      1. sql server中登录用户名与数据库用户用户名的区别。登录用户名用于用户身份验证,而数据库用户用户名用于数据库访问和权限验证。
      2. 登录通过安全识别符 (SID) 与用户关联。将数据库恢复到其他服务器时,数据库中包含一组用户和权限,但可能没有相应的登录或者登录所关联的用户可能不是相同的用户。这种情况被称为存在“孤立用户”。
      3. 此时是不能通过新建登录或者是对同名登录授予对应数据库的“用户”权限来解决登录问题,因为SQL Server会报出“错误15023:当前数据库中已存在用户或角色”,为了解决这个问题,需要调用系统存储过程sp_change_users_login,具体用法如下:
        Use 数据库名
        go
        sp_change_users_login 'update_one', '用户名', '用户名'
        其中数据库名为存在孤立用户的数据库,update_one是存储过程的参数,表示只处理一个用户,前一个用户名是数据库用户,后一个用户名是用来数据库登录,以上这个SQL命令表示将数据库用户用户名与服务器登录用户名重新连接起来。这样就可以正常使用数据库了。
  • 相关阅读:
    bzoj1415 NOI2005聪聪和可可
    Tyvj1952 Easy
    poj2096 Collecting Bugs
    COGS 1489玩纸牌
    COGS1487 麻球繁衍
    cf 261B.Maxim and Restaurant
    cf 223B.Two Strings
    cf 609E.Minimum spanning tree for each edge
    cf 187B.AlgoRace
    cf 760B.Frodo and pillows
  • 原文地址:https://www.cnblogs.com/94YY/p/4872117.html
Copyright © 2011-2022 走看看