43 votes

Comment générer la liste des travaux SQL Server et leurs propriétaires

Comment pourrais-je générer une liste de travaux SQL et de leurs propriétaires ? J'aimerais également pouvoir générer cette liste pour les packages SSIS également.

Merci

74voto

SQLMenace Points 68670

essaye ça

Travaux

 select s.name,l.name
 from  msdb..sysjobs s 
 left join master.sys.syslogins l on s.owner_sid = l.sid

Paquets

 select s.name,l.name 
from msdb..sysssispackages s 
 left join master.sys.syslogins l on s.ownersid = l.sid

45voto

buckley Points 4623

Il est préférable d'utiliser SUSER_SNAME() car lorsqu'il n'y a pas de connexion correspondante sur le serveur, la jointure à syslogins ne correspondra pas

 SELECT  s.name ,
        SUSER_SNAME(s.owner_sid) AS owner
FROM    msdb..sysjobs s 
ORDER BY name

13voto

M Murphy Points 327

Un collègue m'a parlé de cette procédure stockée...

UTILISER msdb

EXEC dbo.sp_help_job

4voto

Andy Robertson Points 91

Si vous n'avez pas accès à la table sysjobs (serveur de quelqu'un d'autre, etc.), vous pourriez avoir ou être autorisé à accéder à sysjobs_view

 SELECT *
 from  msdb..sysjobs_view s 
 left join master.sys.syslogins l on s.owner_sid = l.sid

ou

 SELECT *, SUSER_SNAME(s.owner_sid) AS owner
 from  msdb..sysjobs_view s 

1voto

DBALUKE HUANG Points 84

Il existe un moyen simple d'obtenir des informations sur les propriétaires de travaux à partir de plusieurs instances par PowerShell :

Exécutez le script dans votre PowerShell ISE :

Charge SQL Powerhell SMO et les commandes :

 Import-Module SQLPS -disablenamechecking

BUild list of Servers manuellement (cela crée une liste de tableaux) :

 $SQLServers = "SERVERNAME\INSTANCE01","SERVERNAME\INSTANCE02","SERVERNAME\INSTANCE03";
$SysAdmins = $null;
foreach($SQLSvr in $SQLServers)
{
    ## - Add Code block:
    $MySQL = new-object Microsoft.SqlServer.Management.Smo.Server $SQLSvr;
    DIR SQLSERVER:\SQL\$SQLSvr\JobServer\Jobs| FT $SQLSvr, NAME, OWNERLOGINNAME -Auto 
    ## - End of Code block
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X