开发者社区> leshami> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

SQL server数据库用户映射到登陆用户

简介:     最近有朋友的SQL server数据库意外中枪,几经周折,数据将数据库恢复到新环境。恢复后在数据库级别有用户名而实例级别则无相应的登陆用户。这在SQL server数据库中是一个比较普遍的情形。
+关注继续查看

    最近有朋友的SQL server数据库意外中枪,几经周折,数据将数据库恢复到新环境。恢复后在数据库级别有用户名而实例级别则无相应的登陆用户。这在SQL server数据库中是一个比较普遍的情形。本文描述的是即是对这些孤立的账户通过系统过程sp_change_users_login来建立其映射关系。


1、sp_change_users_login的功能及其限制
  使用 sp_change_users_login 将当前数据库中的数据库用户链接到 SQL Server 登录名。
  如果用户登录名已更改,则使用 sp_change_users_login 将用户链接到新的登录,而不会丢失用户的权限。
  新的 login 不能为 sa,而 user 不能为 dbo、guest 或 INFORMATION_SCHEMA 用户。
  sp_change_users_login 不能用于将数据库用户映射到 Windows 级主体、证书或非对称密钥。
  sp_change_users_login 不能与通过 Windows 主体创建的 SQL Server 登录名一起使用,也不能与使用 CREATE USER WITHOUT LOGIN 创建的用户一起使用。
  不能在用户定义的事务中执行 sp_change_users_login。
  sp_change_users_login在后续的版本将会被ALTER USER取代。


2、sp_change_users_login语法参考

  sp_change_users_login [ @Action = ] 'action'
      [ , [ @UserNamePattern = ] 'user' ]
      [ , [ @LoginName = ] 'login' ]
      [ , [ @Password = ] 'password' ]
  [;]


3、参数说明
  [ @Action = ] 'action'
  说明过程要执行的操作。action 的数据类型为 varchar(10)。action 可具有下列值之一。

    值:Auto_Fix
      将当前数据库的 sys.database_principals 系统目录视图中的用户项链接到同名的 SQL Server 登录名。如果不存在同名的登录名,将会创建一个。
      检查 Auto_Fix 语句的结果,确认实际链接是否正确。在对安全性较为敏感的情况下,要避免使用 Auto_Fix。
      如果使用 Auto_Fix 时登录名尚不存在,则必须指定 user 和 password,否则必须指定 user,但 password 将被忽略。login 必须为 NULL。
      user 必须是当前数据库中的有效用户。不能将另一个用户映射到该登录名。
    
    值:Report
      列出当前数据库中未链接到任何登录名的用户以及相应的安全标识符 (SID)。user、login 和 password 必须为 NULL 或不指定。
    
    Update_One
      将当前数据库中的指定 user 链接到现有 SQL Server login。必须指定 user 和 login。password 必须为 NULL 或不指定。
 
  [ @UserNamePattern = ] 'user'
    当前数据库中的用户名。user 的数据类型为 sysname,默认值为 NULL。
  
  [ @LoginName = ] 'login'
    SQL Server 登录的名称。login 的数据类型为 sysname,默认值为 NULL。
  
  [ @Password = ] 'password'
    通过指定 Auto_Fix 创建的新 SQL Server 登录名分配的密码。如果已存在匹配的登录名,则映射该用户名与登录名且忽略 password。
    如果不存在匹配的登录名,则 sp_change_users_login 创建新的 SQL Server 登录名并分配 password 作为新登录名的密码。
    password 的数据类型为 sysname,且不能为 NULL。


4、使用示例
a)、查找当前数据库孤立用户
  exec sp_change_users_login 'REPORT'
  
  UserName  UserSID
  ---------- -----------------------
  csidbo    0xAFEEF9DA1BA20E43AC8B01C69574F91B

b)、将孤立用户映射到同名(不存在)的登陆名
  -- 如下示例,将创建一个新的登陆名为csidbo,且设置密码为xxx
  -- 演示环境:Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1
  -- Author : Leshami
  -- Blog   :
http://blog.csdn.net/leshami
  USE crmnew;
  GO
  EXEC sp_change_users_login 'Auto_Fix', 'csidbo', NULL, 'xxx';
  GO

c)、将数据库用户映射到已存在的SQL Server 登录名

  USE crmnew;
  GO
  EXEC sp_change_users_login 'Update_One', 'csidbo', 'csiuser'
  GO

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
C#常见控件与SQL Sever数据库交互
首先,我们采用DataSet作为临时的数据库,这样会比较好
0 0
理论:第三章:索引使用的限制条件,sql优化有哪些,数据同步问题(缓存和数据库),缓存优化
理论:第三章:索引使用的限制条件,sql优化有哪些,数据同步问题(缓存和数据库),缓存优化
0 0
SQL 如何建立索引来加快数据库的查询
SQL 如何建立索引来加快数据库的查询
0 0
使用NineData访问SQL Server数据库
NineData 对SQL Server 数据库的源访问和管理,主要有这几个功能:简洁、清晰的导航树,SQL智能不全、SQL 执行历史的追踪等功能。另外,NineData除了可以支持以GUI的方式访问和管理SQL Server之外,NineData还支持 SQL Server 到SQL Server的数据迁移/同步/复制/对比,以及对SQL Server 的物理、逻辑备份等功能。
0 0
数据库语句执行过程理解,存储引擎的学习,字符集的理解,加各种sql数据类型理解介绍加之SQL各种数据查询分析和题目专练(2)
数据库语句执行过程理解,存储引擎的学习,字符集的理解,加各种sql数据类型理解介绍加之SQL各种数据查询分析和题目专练(2)
0 0
数据库语句执行过程理解,存储引擎的学习,字符集的理解,加各种sql数据类型理解介绍加之SQL各种数据查询分析和题目专练(1)
数据库语句执行过程理解,存储引擎的学习,字符集的理解,加各种sql数据类型理解介绍加之SQL各种数据查询分析和题目专练(1)
0 0
Anolis/AliyunLinux 安装 (MSSQL)SQL Server 2022 数据库
其实很多企业有在 Linux 端安装 SQL Server 的需求,自从 2016 年以来,SQL Server on Linux 发展到现在已经非常成熟了,可以提供非常简便的安装方式,即便是 Always On 也可以轻松部署,本文就介绍如何在 Anolis/AliyunLinux 上安装 (MSSQL)SQL Server 2022 数据库。 在很多 SQL Server 的 Benchmark 中,SQL Server on Linux 都有着不输 WIndows 的性能体验,因此大家不必担心 SQL Server on Linux 的性能问题。
0 0
数据库小技能:PL/SQL中书写定义sql
触发器由数据库管理系统负责调用和执行,通过触发触发器所监听的事物来实现触发器的调用。 表级别的触发器(对于整个数据库表做监听) 行级别的触发器(对于表中的每一行做监听)
0 0
数据库小技能:PL/SQL(Procedure Language/SQL,过程化SQL语言)预备知识
过程化SQL语言(Procedural Language/SQL)是Oracle数据库对SQL语句的扩展:在普通SQL语句的使用上增加了编程语言的特点,把数据操作和查询语句组织在PL/SQL代码的过程性单元中,通过逻辑判断、循环等操作实现复杂的功能或者计算的程序语言。
0 0
SQL Server 删除数据库中表数据
SQL Server 删除数据库中表数据
0 0
+关注
leshami
传播知识,分享快乐!十年以上数据库,系统运维与管理,性能优化经验。全部文章,欢迎扩散,转载请注明出处!
文章
问答
文章排行榜
最热
最新
相关电子书
更多
用SQL做数据分析
立即下载
阿里云流计算 Flink SQL 核心功能解密
立即下载
Comparison of Spark SQL with Hive
立即下载