LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

SQL数据库迁移完后,原来帐号无法访问数据库,我遇到孤立用户了?

admin
2026年1月18日 20:45 本文热度 38
帮客户做完SQL数据库从2012升级迁移到2016后,发现原来应用连接数据的账号却无法登录连接数据库,导致应用无法正常运行。

连接数据库的时候错误提示如下:

当我用sa账号登录数据库后,查看迁移过来的数据库中是有这个帐号的,但是整个SQL实例中没有这个帐号。

经过分析:原来SQL Server的用户管理有两层,SQL实例有一层,即在整个实例的“安全性”中,也是登陆账户;另一层在数据库中,即数据库中的“安全性”,也是数据库账户。
这两种账户的关系:就好比你在一橦写字楼上班的时候,进公司所在的大楼时要刷一次脸,这是登陆帐户;然后公司在20层,你进公司的时候还要再刷一次脸,这是数据库账户。你进了写字楼,不能随便跑别的公司去上班,别人公司也识别不了你人脸信息;如果你连大楼都进不了,更别说进公司的门了,那你便成了“孤立账户”。
我们可以通过如下SQL查看孤立帐户信息:
    Use adventureworks2016exec sp_change_users_login 'report'

    上面的问题,既然知道是因为在新的数据库只有数据库帐户而没有登陆账户导致的孤立帐户问题,那直接创建这个丢失的登陆帐户了?
    当我在新的数据库上创建这个用户的时候,又出现了如下报错:

    此处不能直接通过重建登陆帐户解决,而是需要建立一个“登陆账户”,并关联“登陆账户”和“数据库账户”。
    建一个数据库帐户一样的登陆帐户test,先不设置该“登陆账户”的数据库访问和数据角色,登陆账户密码一般也与孤立账户相同,然后通过如下SQL语句连接“登陆账户”和“数据库账户”。
      Use adventureworks2016exec sp_change_users_login 'update_one''test''test'
       这样在执行“exec sp_change_users_login 'report'”就不会看到孤立账户“test”了。

      至此,数据库的应用账号也可以正常登陆使用数据库了。

      注意:在数据库迁移的时候,大多时候我们不迁移系统数据库:Master,msdb等,但是登陆帐号默认都是放在master数据库中,所以涉及到迁移后,帐号相关的问题,大多和master数据相关。本文中的孤立账户问题,实际也是没有迁移master数据库所导致。


      阅读原文:原文链接


      该文章在 2026/1/19 10:50:29 编辑过
      关键字查询
      相关文章
      正在查询...
      点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
      点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
      点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
      点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
      Copyright 2010-2026 ClickSun All Rights Reserved