来自与:
一般DBA的帐号权限都很高(废话)
DBA离职以后。删除帐号也几乎也是肯定的
这里会涉及一个问题。
原来由他新建或还原的数据库所有者可能是他的帐号
部分数据库作业所有者也是他的帐号
此时如果在各服务器上批量DROP LOGIN 后会有潜在风险(事实上证明,数据库还是可用,但是作业会有权限出错)
需要将这些数据库的对像所有者改回来(一般改成 'SA')
分享一段脚本,用于批量替换特定用户的数据库作业为 'sa'
用这个脚本在所有服务器上跑一遍,以后就可以放心DROP LOGIN了
--可以用这个先查一遍。select a.*,b.name from( select * from msdb.dbo.sysjobs where owner_sid<>'0x01') aleft join master.sys.syslogins b on a.owner_sid=b.sidwhere b.name is null or b.name like '%这里换成将要删除的帐号%'--这一段是正式替换的declare @job_id varchar(255)select a.job_id into #ttt from( select name,[enabled],owner_sid,job_id from msdb.dbo.sysjobs where owner_sid<>'0x01') aleft join master.sys.syslogins b on a.owner_sid=b.sidwhere b.name is null or b.name like '%这里换成将要删除的帐号%'while (select count(*) from #ttt)>0beginselect top 1 @job_id=job_id from #ttt order by 1 ascdeclare @sql varchar(500)select @sql = 'EXEC msdb.dbo.sp_update_job @job_id=N'''+@job_id+''', @owner_login_name=N''sa'''print (@sql)exec (@sql)delete from #ttt where job_id=@job_idend truncate table #tttdrop table #ttt