Подтвердить что ты не робот

HowTo Создать список SQL Server Jobs и их владельцев

Как я могу создать список рабочих мест sql и их владельцев? Я также хотел бы иметь возможность генерировать этот список для пакетов SSIS.

Спасибо

4b9b3361

Ответ 1

попробуйте это

Работа

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

Пакеты

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

Ответ 2

Лучше использовать SUSER_SNAME(), поскольку, когда на сервере нет соответствующего входа на сервер, соединение с syslogins не будет соответствовать

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

Ответ 3

Коллега рассказал мне об этой хранимой процедуре...

USE msdb

EXEC dbo.sp_help_job

Ответ 4

Если у вас нет доступа к таблице sysjobs (кто-то сервер elses и т.д.), вы можете иметь или иметь доступ к sysjobs_view

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

или

SELECT *, SUSER_SNAME (s.owner_sid) Владелец AS  из msdb..sysjobs_view s

Ответ 5

Существует простой способ получить информацию о владельцах Job's из нескольких экземпляров PowerShell:

Запустите script в вашем PowerShell ISE:

Загружает SMO и команды SQL Powerhell:

Import-Module SQLPS -disablenamechecking

Список серверов BUMS вручную (это строит список массивов):

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