SQLServer 錯誤: 15404,無法獲取有關 Windows NT 組/用戶


 

修改電腦名稱.導致 SQLServer 錯誤: 15404,無法獲取有關 Windows NT 組/用戶 是否有伺服器存取權 (原因: 無法獲得關於 Windows NT 群組/使用者 '' 的資訊,錯誤碼 0x534。

可以通過如下命令批量調整作業的所有者,之后重啟服務即可.

SELECT [job_id]
      ,[originating_server_id]
      ,[name]
      ,[enabled]
      ,[description]
      ,[start_step_id]
      ,[category_id]
      ,[owner_sid], ISNULL(suser_sname(owner_sid), '') 
  FROM [msdb].[dbo].[sysjobs] 
--where ISNULL(suser_sname(owner_sid), '')='NT AUTHORITY\SYSTEM'
where name in ('BPM.EMPABS','MaintenancePlan_to_mes.me_to_erp')


update [msdb].[dbo].[sysjobs] 
set owner_sid=( select owner_sid from [msdb].[dbo].[sysjobs]  where name='BPM.EMPABS')
where ISNULL(suser_sname(owner_sid), '')='KMFW_ERP\Administrator'

 訂正一下,還需要修改 sysdtspackages90  sysschedules 兩個表.重啟服務才可以.

 

drop table #temp_planlist;
WITH X AS
(
SELECT id,name,PlanXML=CAST(CAST(packagedata AS VARBINARY(MAX)) AS XML) FROM   msdb.dbo.sysdtspackages90
)
select rank() over(order by id) idx,* 
--into #temp_planlist
from X where PlanXML.value('declare namespace DTS="www.microsoft.com/SqlServer/Dts";(/DTS:Executable/DTS:ConnectionManager[1]/DTS:ObjectData/DTS:ConnectionManager/DTS:Property[@DTS:Name=("ConnectionString")]/text())[1]','varchar(max)') like 'server=''KMFW_ERP''%';


declare @pkgdata xml,@id varchar(100),@idx int;
set @idx = (select min(idx) from #temp_planlist);
while @idx <= (select max(idx) from #temp_planlist)
begin
    SET @id =(select id from #temp_planlist where idx = @idx)
    
    set @pkgdata = (select CAST(CAST(packagedata AS VARBINARY(MAX)) AS XML) FROM   msdb.dbo.sysdtspackages90 where id = @id);
    SET @pkgdata.modify('declare namespace DTS="www.microsoft.com/SqlServer/Dts";replace value of (/DTS:Executable/DTS:ConnectionManager[1]/DTS:ObjectData/DTS:ConnectionManager/DTS:Property[@DTS:Name=("ConnectionString")]/text())[1] with "server=''.'';Trusted_Connection=true;Application Name=''Microsoft SQL Server Management Studio'';Pooling=false;Packet Size=4096;multipleactiveresultsets=false;"');
    update msdb.dbo.sysdtspackages90
    set packagedata = CAST(@pkgdata AS varbinary(max))
    where id = @id;    
    SET @idx = @idx+1;    
end

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM