Как я могу создать список рабочих мест sql и их владельцев? Я также хотел бы иметь возможность генерировать этот список для пакетов SSIS.
Спасибо
Как я могу создать список рабочих мест sql и их владельцев? Я также хотел бы иметь возможность генерировать этот список для пакетов SSIS.
Спасибо
попробуйте это
Работа
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
Лучше использовать SUSER_SNAME(), поскольку, когда на сервере нет соответствующего входа на сервер, соединение с syslogins не будет соответствовать
SELECT s.name ,
SUSER_SNAME(s.owner_sid) AS owner
FROM msdb..sysjobs s
ORDER BY name
Коллега рассказал мне об этой хранимой процедуре...
USE msdb
EXEC dbo.sp_help_job
Если у вас нет доступа к таблице 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
Существует простой способ получить информацию о владельцах 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
}