- 论坛徽章:
- 0
|
对于dbo对象来说不受影响,如果有其他用户,就会出现user account和login account之间关系丢失问题,如:
原来数据库中的对象abc.table1变成了dbo.table1
这时要恢复user account 和login account 之间的关系,你需要使用
sp_change_users_login
更改当前数据库中 SQL Server 用户与 Microsoft® SQL Server™ 登录之间的关系。
语法
sp_change_users_login [ @Action = ] \'action\'
[ , [ @UserNamePattern = ] \'user\' ]
[ , [ @loginName = ] \'login\' ]
参数
[ @Action = ] \'action\'
描述此过程要执行的操作。action 的数据类型为 varchar(10),可以是下面的某个值。
值 描述
Auto_Fix 将当前数据库的 sysusers 表中的用户条目链接到 syslogins 中同名的登录上。建议检查 Auto_Fix 语句的结果,确认建立的链接是预期的结果。在对安全性较为敏感的情况下,避免使用 Auto_Fix。Auto_Fix 对链接作出最好的估计,授予用户的访问权限可能比预期的要多。
Report 列出当前数据库中未链接到任何登录的用户及其对应的安全标识号 (SID)。
Update_One 将当前数据库中指定的 user 链接到 login。login 必须已经存在。必须指定 user 和 login
example:
EXEC sp_change_users_login \'Report\'
USE master
go
EXEC sp_addlogin \'NewMary\'
go
USE pubs
go
EXEC sp_change_users_login \'Update_One\', \'Mary\', \'NewMary\' |
|