2010-09-21 12 views

Respuesta

51

tratan este

Empleo

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

Paquetes

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

Gracias! El de arriba funciona ... pero el de abajo me da un error de nombre de objeto inválido 'msdb..syspackpackages' ... ¿No tengo algo instalado que debería para las cosas de SSIS? –

+0

en sql 2005 necesita usar sysdtspackages90, que se modificó con sysssispackages en 2008, consulte también http://wiki.lessthandot.com/index.php/List_all_SSIS_packages_and_the_owner_of_those_SSIS_packages – SQLMenace

+0

Escenario: anterior trabajo de configuración de DBA bajo su propiedad, izquierda, inicio de sesión eliminado del servidor, arriba muestra NULL para el propietario de ese trabajo. Use la consulta de buckley con SUSER_SNAME. –

11

Un colega me habló de este procedimiento almacenado. ..

msdb USO

dbo.sp_help_job EXEC

+0

¡Excelente! !Muchas gracias –

29

Es mejor utilizar SUSER_SNAME() ya que cuando no hay ninguna entrada correspondiente en el servidor de la unión a syslogins no coincidirá con

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

Esto merece más ups; es una adición muy útil a la primera respuesta porque muestra los nombres de los propietarios incluso si no están asociados con un inicio de sesión de servidor. ¡Gracias! – NateJ

+0

Sí, este es el que necesitaba. ty – Markov

2

Si no tiene acceso a la tabla sysjobs (servidor de otras personas, etc.), es posible que tenga o tenga acceso a sysjobs_view

SELECCIONAR * de msdb..sysjobs_view s izquierda se unen master.sys.syslogins l en s.owner_sid = l.sid

o

SELECT *, SUSER_SNAME (s.owner_sid) como propietario de msdb..sysjobs_view s

1

Hay una manera fácil de obtener información del propietario de Jobs desde varias instancias de PowerShell:

ejecutar el script en su PowerShell ISE:

Cargas SQL Powerhell SMO y comandos:

Import-Module SQLPS -disablenamechecking 

lista de Servidores construir manualmente (esto construye una lista de arreglo):

$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 
} 
+0

Si usted está teniendo problemas con un problema separado ("_But ¿hay alguien que me ayude a generar un informe de excel _?") - [Hacer una nueva pregunta] (https://stackoverflow.com/questions/ask) - se es la mejor manera de obtener una respuesta, y más personas realmente lo verán :) Buena suerte – Frits

Cuestiones relacionadas