你删除用户aaa后,直接批量修改表,过程,函数等的所属用户, declare @sql varchar(4000) set @sql='' select @sql=@sql+' exec sp_changeobjectowner '''+name+''',''dbo''' from sysobjects where xtype in('U','V','P','TR','FN','IF','TF') and status>=0 and uid=user_id('dbo') exec (@sql)这样所有的用户对象所属用户都改为dbo
sorry, 上面语句的用户写错了,下面对是 declare @sql varchar(4000) set @sql='' select @sql=@sql+' exec sp_changeobjectowner '''+name+''',''dbo''' from sysobjects where xtype in('U','V','P','TR','FN','IF','TF') and status> =0 and uid=user_id('aaa') --上面错了,应该是针对aaa用户 exec (@sql) 这样所有的用户对象所属用户都改为dbo
set @sql=''
select @sql=@sql+' exec sp_changeobjectowner '''+name+''',''dbo'''
from sysobjects
where xtype in('U','V','P','TR','FN','IF','TF')
and status>=0
and uid=user_id('dbo')
exec (@sql)这样所有的用户对象所属用户都改为dbo
declare @sql varchar(4000)
set @sql=''
select @sql=@sql+' exec sp_changeobjectowner '''+name+''',''dbo'''
from sysobjects
where xtype in('U','V','P','TR','FN','IF','TF')
and status> =0
and uid=user_id('aaa') --上面错了,应该是针对aaa用户
exec (@sql) 这样所有的用户对象所属用户都改为dbo
2000里用户和架构基本是一回事
在2000里 所有的表、视图、存储过程微软官方建议是用dbo开头 采用曲线救国方法
新建一个数据库
导入这个数据库aaa 记住在导入时一定看目标表的开头
》》》》》》》》》》》》》》》》》》》》》》》》
aaa是一个用户,每次导入之后就替换了我付给这个数据库的那个aaa用户,导致aaa没有登录名
我只想帮忙,我懂得不多
GO
EXEC sp_change_users_login 'Report'解决孤立用户的方法:解决这种异常只要解决掉孤立用户,在确定了Admini是孤立用户后,可以执行下面的语句来解决:USE DB
GO-- 修复孤立用户EXEC sp_change_users_login 'Auto_Fix', 'Admin', NULL, '密码'; -- 这个密码是指, 如果没有事先建立admin 这个登录的话, sql自动创建登录时, 为该登录分配的密码-- 授予在DB 中的相关权限EXEC sp_addrolemember 'db_owner', 'Admin'
、、、、、、、、、、、、、、、、、、、
情况和上面说的一样,我进行第一步的时候查出来了
UserName UserSID
aaa OXFADD.... 我在进行USE DBGO -- 修复孤立用户EXEC sp_change_users_login 'Auto_Fix', 'Admin', NULL, '密码'; 这一步的时候 ,就出现问题了。报错误
Server: Msg 8144, Level 16, State 2, Procedure sp_change_users_login, Line 0
Procedure or function sp_change_users_login has too many arguments specified.感觉这个数据库倒进来的这个用户是解决不掉
1、企业管理器->展开要查看的数据库->用户 ,会发现相应的用户没有对应的登录
2、在查询分析器中执行 EXECsp_change_users_login @Action='Report'解决:
办法一、自动新增一个和用户名相同的登录帐户,并影射
EXEC sp_change_users_login 'Auto_Fix', 'U_tom'
--如:
EXEC sp_change_users_login 'Auto_Fix', 'HospComm'EXEC sp_change_users_login 'Auto_Fix', 'UnitComm'EXEC sp_change_users_login 'Auto_Fix', 'HDsoft'办法二、新增一个登录帐户,然后将此登录帐户映射到孤立的用户
EXEC sp_addlogin 'L_tom'
--Change the user account to link with the 'L_tom' login.
--如:
EXEC sp_change_users_login 'Update_One', 'U_tom', 'L_tom'