Чтобы расширить возможности автоматического экспорта данных в формате csv в общий сетевой ресурс с помощью агента SQL Server.
(1) Включить процедуру xp_cmdshell:
-- To allow advanced options to be changed.
EXEC sp_configure 'show advanced options', 1
RECONFIGURE
GO
-- Enable the xp_cmdshell procedure
EXEC sp_configure 'xp_cmdshell', 1
RECONFIGURE
GO
(2) Создайте имя входа «Domain \ TestUser» (пользователь windows) для пользователя, не являющегося системным администратором, который имеет открытый доступ к базе данных master. Сделано через отображение пользователя
(3) Предоставить вход в систему как пакетное задание: Перейдите к Локальная политика безопасности -> Локальные политики -> Назначение прав пользователя. Добавить пользователя в «Вход в систему как пакетное задание»
(4) Предоставить разрешения на чтение / запись для сетевой папки для домена \ пользователя
(5) Предоставить разрешение EXEC для хранимой процедуры xp_cmdshell:
GRANT EXECUTE ON xp_cmdshell TO [Domain\TestUser]
(6) Создайте учетную запись прокси, под которой будет запускаться xp_cmdshell, используя sp_xp_cmdshell_proxy_account
EXEC sp_xp_cmdshell_proxy_account 'Domain\TestUser', 'password_for_domain_user'
(7) Если команда sp_xp_cmdshell_proxy_account не работает, создайте ее вручную
create credential ##xp_cmdshell_proxy_account## with identity = 'Domain\DomainUser', secret = 'password'
(8) Включить агент SQL Server. Откройте диспетчер конфигурации SQL Server, перейдите к службам SQL Server, включите агент SQL Server.
(9) Создать автоматизированную работу. Откройте SSMS, выберите агент SQL Server, затем щелкните правой кнопкой мыши задания и нажмите «Новое задание».
(10) Выберите «Владелец» в качестве созданного вами пользователя. Выберите «Шаги», сделайте «тип» = T-SQL. Заполните поле команды, как показано ниже. Установить разделитель как ','
EXEC master..xp_cmdshell 'SQLCMD -q "select * from master" -o file.csv -s ","
(11) Заполните расписания соответствующим образом.