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. 课程五(Sequence Models),第一 周(Recurrent Neural Networks) —— 3.Programming assignments:Jazz improvisation with LSTM

    Improvise a Jazz Solo with an LSTM Network Welcome to your final programming assignment of this week ...

  2. android 中的Http请求类HttpUrlConnection和HttpClient类

    Android系统提供了两种HTTP通信类,HttpURLConnection和HttpClient. 如何选择这两个类的使用:android-developers.blogspot.com/2011 ...

  3. LearnOpenGL学习笔记(三)——VBO,VAO,EBO理解

    在opengl中所有的数据都要放在显存中,我们通过一定的手段去管理它,既要提供地方存放它,还要提供方法去正确地提取它们,去使用它们,opengl通过VAO,VBO,EBO这些手段来解决这些问题. (一 ...

  4. spring-session-data-redis解决session共享的问题

    分布式系统要做到用户友好,需要对用户的session进行存储,存储的方式有以下几种: 本地缓存 数据库 文件 缓存服务器 可以看一些不同方案的优缺点 1.本地机器或者本地缓存.优点:速度快  缺点:服 ...

  5. JavaWeb学习 (十一)————Session

    一.Session简单介绍 在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下).因此,在需要保存用户数据时,服务 ...

  6. ThreadPoolExecutor代码解析

    派生体系 java.util.concurrent ThreadPoolExecutor AbstractExecutorService ExecutorService Executor   这个类是 ...

  7. PHP与MySQL的关系?

    1).mysqli和PDO 属于MySQL的拓展包extension 2)my.ini开启拓展命令 extension=php_mysqli.dll extension=php_pdo_mysql.d ...

  8. 简要描述 JavaScript 中定义函数的几种方式

    JavaScript 中,有三种定义函数的方式: 1.函数语句:即使用 function 关键字显式定义函数.如: function f(x){ return x+1; }  2.函数定义表达式:也称 ...

  9. C#操作IIS站点 Microsoft.Web.Administration.dll

    利用IIS7自带类库管理IIS现在变的更强大更方便,而完全可以不需要用DirecotryEntry这个类了(网上很多.net管理iis6.0的文章都用到了DirecotryEntry这个类 ),Mic ...

  10. 同源策略与CORS

    同源策略 同源策略是浏览器保护用户安全上网的重要措施,协议.域名.端口号三者相同即为同源. 不同源下,浏览器不允许js操作Cookie.LocalStorage.DOM等数据或页面元素,也不允许发送a ...