zoukankan      html  css  js  c++  java
  • 当一个DBA离职时,如何清除掉数据库里属于他的那些“东西”

    一般DBA的帐号权限都很高(废话)

    DBA离职以后。删除帐号也几乎也是肯定的

    这里会涉及一个问题。

    原来由他新建或还原的数据库所有者可能是他的帐号

    部分数据库作业所有者也是他的帐号

    此时如果在各服务器上批量DROP  LOGIN 后会有潜在风险(事实上证明,数据库还是可用,但是作业会有权限出错)

    需要将这些数据库的对像所有者改回来(一般改成 'SA')

    分享一段脚本,用于批量替换特定用户的数据库作业为 'sa'

    用这个脚本在所有服务器上跑一遍,以后就可以放心DROP LOGIN了

    --可以用这个先查一遍。
    select a.*,b.name from
    (
    select * from msdb.dbo.sysjobs where owner_sid<>'0x01'
    ) a
    left join master.sys.syslogins b on a.owner_sid=b.sid
    where 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'
    ) a
    left join master.sys.syslogins b on a.owner_sid=b.sid
    where b.name is null or b.name like '%这里换成将要删除的帐号%'
    while (select count(*) from #ttt)>0
    begin
    select top 1 @job_id=job_id from #ttt order by 1 asc
    declare @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_id
    end
    truncate table #ttt
    drop table #ttt

     http://www.580top.com/html/201203/dba_17.htm

  • 相关阅读:
    React学习资料+css进阶资料总结
    事件委托
    iframe
    js识别安卓和ios及pc端,以及解决微信的屏蔽
    函数声明与函数表达式
    利用tween,使用原生js实现模块回弹动画效果
    点击按钮 弹出视频 并有遮罩层效果
    居中对齐的一些总结
    jasperreport报表导出excel锁定行和列
    intellij idea14注册码生成器
  • 原文地址:https://www.cnblogs.com/wokofo/p/2262002.html
Copyright © 2011-2022 走看看