Step1:查询

Use KSHR_F23
Go
exec sp_change_users_login @Action='Report'
Go

Step2:处理

Use KSHR_F23
Go
exec sp_change_users_login @Action='update_one',@UserNamePattern='TEKS_HR_Admin',@LoginName='TEKS_HR_Admin';
Go

Sql Server 孤立用户 是我们经常遇到的事情,今天详细的梳理了下,希望能帮到你当把用户数据库从一台 Sql Server 使用备份和恢复的方式迁移到另一台服务器。数据库恢复以后,原先用户定义的一些其他数据库用户,就无法在新服务器上继续使用了。尤其对一些Sql Ser 帐号,这些就是孤立用户。
      Sql Server 的用户安全管理分两层,整个 Sql Server
服务器一层,每个数据库一层。一个用户,在每一层上都有帐号,在两个层面上都会分配不同的权利。在服务器层的帐号,交登录帐号(Login),可以设置它
管理整个 Sql Server 服务器,开启跟踪,修改 Sql Server
安全配置,备份所有数据库等。在数据库一层,叫数据库用户(DataBase
User),可以设置它对这个特定的数据库有读写、修改表结构、存储过程定义等权限。
      服务器层面的安全,是设置在服务器的登陆账号上的。所有登录帐号的信息,可以查询 master 数据库里面的 sys.server_principals 这张视图。
数据库层面有“数据库用户”这个概念。每个数据库内部对象的安全性,例如表格的读写,是否讷讷感运行或修改存储过程等,都赋予在数据库用户上,保存在这个数据库内部。可以通过查询 sys.database_principals 了解用户信息。
      Sql Server 登录帐号必须要和某个数据库用户相对应后,才能被数据库接纳。这个对应,就是要使得用户数据库 
sys.database_principals 里面 SID 和 master 数据库 sys.server_principals 里的 SID
匹配起来。一个登录账户和数据库用户的名字可以不一样,但是 SID 必须一样。
       当用户数据库恢复到新的服务器上后,master 数据库 sys.server_principals 里并没有这个帐号。但是用户数据库里还有 这个数据库用户。于是这个用户被“孤立”了。
解决办法:
1. 备份时,要把系统数据库一并备份了,再恢复的时间,也把数据库恢复了
2. 通过 sp_change_users_login 来更改用户
如要检测孤立用户:

User<Database_Name>;
Go;
sp_change_users_login @Action='Report';
Go;

恢复孤立用户:

User<Database_Name>;
Go;
sp_change_users_login @Action='update_one',@UserNamePattern='<database_user>',@LoginName='<login_name>';
Go;

需要说明的是,sp_change_users_login 只能重新链接 Sql 登录帐号。对于数据库用户所对应的是 Windows 登录帐号,如果SID 不同,说明域也发生了变化,是不能通过这种方式连接在一起的。通过 "孤立用户" 的处理可以看出来:
1. Sql Server 的安全分两层,分别为:Server 和 DataBase
2. 备份和恢复数据库是很重要的

http://blog.csdn.net/chengweipeng123/article/details/6846482

SQL SERVER孤立帐号的处理的更多相关文章

  1. 解决 SQL Server 所有帐号无 sysadmin 权限,且未启用 SQL Server 身份验证,sa 帐号也未启用的问题

    解决 未启用 SQL Server 身份验证 的问题: 1. 运行 regedit,进入注册表编辑器 2. 打开:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Micro ...

  2. sql server 只读帐号设置能读取存储过程,view等内容。

    如果设定了某个帐号是只读权限,是无法查看存储过程的,比如你用 sp_helptext '存储过程名' ,这样子会提示权限不足或者存储过程不存在,其实就是没权限, 要再给这个只读帐号用 sa 赋予它查看 ...

  3. Sql Server 孤立用户解决办法

    Sql Server 孤立用户 是我们经常遇到的事情,今天详细的梳理了下,希望能帮到你 当把用户数据库从一台 Sql Server 使用备份和恢复的方式迁移到另一台服务器.数据库恢复以后,原先用户定义 ...

  4. Microsoft SQL Server 数据库 错误号大全

    panchzh :Microsoft SQL Server 数据库 错误号大全0 操作成功完成. 1 功能错误. 2 系统找不到指定的文件. 3 系统找不到指定的路径. 4 系统无法打开文件. 5 拒 ...

  5. SQL Server孤立用戶

    如何解决孤立用户问题 http://blog.csdn.net/zzl1120/article/details/7394468 SQL SERVER孤立用户问题解决方法 http://www.2cto ...

  6. sql server 全部错误号详释

    0 操作成功完成. 1 功能错误. 2 系统找不到指定的文件. 3 系统找不到指定的路径. 4 系统无法打开文件. 5 拒绝访问. 6 句柄无效. 7 存储控制块被损坏. 8 存储空间不足,无法处理此 ...

  7. sql server 根据身份证号计算出生日期和年龄的存储过程

    我这边有一个业务,需要客户填写身份证号,自动计算他的出生日期和年龄 在sql中,具体的存储过程实现是这样的: /******************************************** ...

  8. SQL Server 错误行号

    https://msdn.microsoft.com/zh-cn/library/ms178600.aspx 返回发生错误的行号,该错误导致运行 TRY…CATCH 构造的 CATCH 块. 语法 E ...

  9. sql server显示行号

    --    工具-> --    选项-> --    文本编辑器-> --    所有语言-> --    常规-> --    显示-> --    行号

随机推荐

  1. HTTP请求代码整理

    HTTP请求代码整理 类别 代码 注释 1xx – 信息提示 100 继续 101 切换协议 2xx - 成功 200 确定.客户端请求已成功 201 已创建 202 已接受 203 非权威性信息 2 ...

  2. 逆向知识之CS辅助/外挂专题.2.实现CS1.6无限夜视仪.无限闪光烟雾高爆弹.

    逆向知识之CS辅助/外挂专题.2.实现CS1.6无限夜视仪.无限闪光烟雾高爆弹. 关于人物子弹无限可以观看上一篇博客. 一丶无限夜视仪. 无限夜视仪找法. 1.CE附加游戏. 2.搜索0或者1. 3. ...

  3. PHP常用的正则表达式(有些需要调整)

    平时做网站经常要用正则表达式,下面是一些讲解和例子,仅供大家参考和修改使用: "^\d+$" //非负整数(正整数 + 0) 顺平注: 验证输入id数值,不能为0 $reg1='/ ...

  4. 如何编写package.json配置NodeJS项目的模块声明

    在NodeJS项目中,用package.json文件来声明项目中使用的模块,这样在新的环境部署时,只要在package.json文件所在的目录执行 npm install 命令即可安装所需要的模块. ...

  5. MySQL实验准备(二)--Python模拟数据(MySQL数据库)

    Python模拟数据(MySQL数据库) 数据模拟 目的:模拟多个表的插入和查询数据的模拟,再通过基准测试脚本测试服务器性能和收集数据,仿真模拟. 备注: 如果需要基础的python环境,可以查看&l ...

  6. 无法打开锁文件 /var/lib/dpkg/lock - open (13: 权限不够)

    比如输入apt-get install eclipse,或者apt-get update 会提示 无法打开锁文件 /var/lib/dpkg/lock - open (13: 权限不够)  无法对状态 ...

  7. T-SQL:Varchar和Nvarchar区别(八)

    常规数据类型:CHAR 和 VARCHAR   Unicode 数据类型 NCHAR NVARCHAR 常规数据类型 会限制除英语之外语言    Unicode 会支持多种语言 VAR 区别 : 1. ...

  8. Java基础——正则表达式

    一.什么是正则表达式 正则表达式,又称规则表达式.(英语:Regular Expression,在代码中常简写为regex.regexp或RE),计算机科学的一个概念.正则表通常被用来检索.替换那些符 ...

  9. potplayer打开多个视频文件

    选项-基本-多重处理方式-新开一个播放进程播放

  10. 设计模式之状态模式(State )

    状态模式是根据其状态变化来改变对象的行为,允许对象根据内部状态来实现不同的行为.内容类可以具有大量的内部状态,每当调用实现时,就委托给状态类进行处理. 作用 当一个对象的内在状态改变时允许改变其行为, ...