HowTo Создать список SQL Server Jobs и их владельцев Как я могу создать список рабочих мест sql и их владельцев? Я также хотел бы иметь возможность генерировать этот список для пакетов SSIS. Спасибо Ответ 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 }
Ответ 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
Ответ 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 }