SQL server数据库用户映射到登陆用户_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2080 | 回复: 0   主题: SQL server数据库用户映射到登陆用户        下一篇 
shary
注册用户
等级:新兵
经验:54
发帖:66
精华:0
注册:2011-8-31
状态:离线
发送短消息息给shary 加好友    发送短消息息给shary 发消息
发表于: IP:您无权察看 2015-7-20 14:07:14 | [全部帖] [楼主帖] 楼主

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 
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


--转自 北京联动北方科技有限公司




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论