Mở rộng trên những gì đã được quy định tự động xuất dữ liệu dưới dạng csv để một mạng chia sẻ qua SQL Server Agent.
(1) Cho phép các thủ tục 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) Tạo một đăng nhập 'Domain \ TestUser' (cửa sổ người dùng) cho người sử dụng phi sysadmin có quyền truy cập công cộng để các cơ sở dữ liệu tổng thể. Thực hiện thông qua ánh xạ người dùng
(3) Cung cấp nhật ký làm công việc theo lô: Điều hướng đến Chính sách bảo mật cục bộ -> Chính sách địa phương -> Chuyển nhượng quyền người dùng.Thêm người dùng vào "Đăng nhập như một công việc hàng loạt"
(4) Cho đọc/quyền ghi vào thư mục mạng cho domain \ user
(5) cho phép Grant EXEC trên stored procedure xp_cmdshell:
GRANT EXECUTE ON xp_cmdshell TO [Domain\TestUser]
(6) Tạo một tài khoản proxy đó xp_cmdshell sẽ được chạy theo bằng sp_xp_cmdshell_proxy_account
EXEC sp_xp_cmdshell_proxy_account 'Domain\TestUser', 'password_for_domain_user'
(7) Nếu lệnh sp_xp_cmdshell_proxy_account không làm việc, m tạo một cách an toàn nó
create credential ##xp_cmdshell_proxy_account## with identity = 'Domain\DomainUser', secret = 'password'
(8) Bật tác nhân máy chủ SQL. Mở Trình quản lý cấu hình máy chủ SQL, điều hướng đến Dịch vụ SQL Server, bật SQL Server Agent.
(9) Tạo công việc tự động. Mở SSMS, chọn SQL Server Agent, sau đó nhấp chuột phải vào công việc và nhấp vào "Công việc mới".
(10) Chọn "Chủ sở hữu" làm người dùng được tạo của bạn. Chọn "Các bước", tạo "type" = T-SQL. Điền vào trường lệnh tương tự như dưới đây. Đặt dấu phân cách là ','
EXEC master..xp_cmdshell 'SQLCMD -q "select * from master" -o file.csv -s ","
(11) Điền lịch biểu tương ứng.
Tại sao bạn sử dụng quy trình được lưu trữ nguy hiểm nhất từng được tạo? ('xp_cmdshell') – SLaks
Mã cũ hơn và không có thời gian để viết lại. Chúng tôi đang sử dụng nó để gọi BCP để nhập tệp vào bảng tạm thời để xử lý. Bảng tạm thời là sql động và chúng tôi tạo tệp .fmt dựa trên cùng một logic mà sql động sử dụng. Sẽ mất hơn một ngày để thực hiện lại điều này. –
Bạn có thể đăng số phiên bản SQL Server chính xác, bao gồm số bản dựng không? –