INF: Bagaimana untuk menjalankan paket DTS sebagai pekerjaan yang dijadwalkan

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 269074 - Melihat produk di mana artikel ini berlaku.
Perbesar semua | Perkecil semua

Pada Halaman ini

RINGKASAN

Masalah yang mungkin Anda alami sering dengan paket Data transformasi layanan (DTS) adalah bahwa paket DTS berjalan bebas dari kesalahan dari SQL Server Enterprise Manager, tetapi paket DTS gagal ketika dijadwalkan untuk menjalankan sebagai pekerjaan. Biasanya, hal ini terjadi karena perbedaan dalam konteks keamanan saat paket dijalankan sebagai pekerjaan versus saat paket dijalankan secara interaktif.

Artikel ini menjelaskan masalah keamanan yang terlibat dalam menjalankan paket DTS.

INFORMASI LEBIH LANJUT

Beberapa istilah yang digunakan dalam artikel ini meliputi:
Perkecil tabel iniPerbesar tabel ini
IstilahDeskripsi
DTSLayanan transformasi data
Otentikasi SQLSistem keamanan yang didasarkan pada Microsoft SQL Server login dan password.
Standar keamananLihat otentikasi SQL.
SQL Server otentikasiLihat otentikasi SQL.
Microsoft Windows NT otentikasiKetika menghubungkan pengguna melalui account pengguna Microsoft Windows, SQL Server memverifikasi bahwa nama account dan sandi yang divalidasi ketika pengguna log on ke komputer yang menjalankan Microsoft Windows NT, Microsoft Windows 2000, Microsoft Windows 95 atau Microsoft Windows 98.
Integrated securityLihat Microsoft Windows NT otentikasi.
Otentikasi Microsoft Windows 2000 atau Windows NTLihat Microsoft Windows NT otentikasi.
Microsoft Windows NT account atau login sama dengan jendela login atau accountSama seperti Microsoft Windows NT login rekening atau akun login untuk Microsoft Windows 2000.
SQL agenSQL Server agen layanan
SEMSQL Server Enterprise Manager

Di mana adalah menjalankan paket DTS?

Satu masalah yang sering melaporkan tentang DTS paket adalah perbedaan dalam perilaku saat paket dijalankan dari SQL Enterprise Manager versus ketika paket DTS dijadwalkan sebagai pekerjaan. Ketika Anda menjalankan paket dari desainer DTS dalam SQL Enterprise Manager (SEM), paket berjalan pada komputer di mana Anda duduk. Jika Anda berada di server (secara fisik, atau melalui perangkat lunak akses remote), paket dijalankan pada server. Jika Anda duduk di sebuah workstation dan Anda telah terdaftar server SQL Server di Enterprise Manager, maka paket dijalankan pada workstation. Konteks keamanan paket adalah bahwa Windows NT account Anda digunakan untuk masuk ke komputer. Saat paket dijalankan sebagai pekerjaan yang dijadwalkan, paket selalu dijalankan pada server.

Sering, pengembang menciptakan dan tes paket DTS interaktif pada workstation mereka melalui desainer DTS dalam Enterprise Manager. Setelah paket DTS debugged, paket kemudian dijadwalkan sebagai pekerjaan. Hal ini akan mengubah lokasi paket dari pengembang workstation ke server. Jika paket memuat data teks ke SQL Server, paket gagal kecuali file teks dan path ke file yang ada di server. Jika paket menghubungkan ke server lain, paket gagal jika konteks keamanan pekerjaan tidak mendukung sambungan.

Siapa yang memiliki pekerjaan yang menjalankan paket DTS?

Paket dijadwalkan dengan menciptakan pekerjaan yang dikelola oleh SQL agen layanan. Pekerjaan ini, sebagai pekerjaan lainnya dijadwalkan, mempunyai pemilik. Pemilik dapat login SQL Server atau account Windows NT.

Untuk menentukan pemilik:
  • Klik dua kali pekerjaan di perusahaan manajer dan kemudian melihat Pemilik drop-down combo box.

    -atau-

  • Menjalankan msdb.dbo.sp_help_job sistem disimpan prosedur.
SQL Server 7.0

Keamanan konteks di mana pekerjaan menjalankan ditentukan oleh pemilik pekerjaan. Jika pekerjaan ini dimiliki oleh sebuah login yang tidak menjadi anggota Sysadmin peran server, maka paket berjalan dibawah konteks SQLAgentCmdExec rekening dan memiliki hak dan izin dari account tersebut.

Untuk SQLAgentCmdExec untuk dapat menjalankan pekerjaan yang menghubungkan ke SQL Server, SQLAgentCmdExec account harus memiliki izin Windows/NT yang tepat dan diberikan akses masuk ke SQL Server dengan database yang sesuai perizinan. The SQLAgentCmdExec account umumnya memiliki hak-hak tidak ada di luar komputer SQL Server lokal. Oleh karena itu, setiap paket yang memerlukan sambungan ke komputer lain gagal, jika itu dijadwalkan sebagai pekerjaan yang dimiliki oleh sebuah login yang bukan anggota Sysadmin peran.

SQL Server 2000

Keamanan konteks di mana pekerjaan menjalankan ditentukan oleh pemilik pekerjaan. Jika pekerjaan dimiliki oleh sebuah login yang bukan anggota peran server Sysadmin, kemudian paket berjalan dibawah konteks pengaturan account sebagai SQL agen Proxy Account, dan memiliki hak dan izin dari account tersebut.

SQL agen proxy untuk dapat menjalankan pekerjaan yang menghubungkan ke SQL Server, SQL agen Proxy account harus memiliki izin Windows/NT yang tepat dan diberikan akses masuk ke SQL Server dengan database yang sesuai perizinan. Untuk pekerjaan yang menjalankan paket DTS, SQL agen Proxy Account harus telah membaca dan hak akses menulis ke direktori temp account SQL Server agen berjalan di bawah. Sebagai contoh,
c:\Documents and Settings\<account>\Local Settings\Temp </account>
Jika pekerjaan dimiliki oleh account (SQL Server login atau login Windows NT dikonfirmasi) yang merupakan anggota dari Sysadmin peran, pekerjaan SQL agen berjalan dibawah konteks account yang digunakan untuk memulai layanan SQL agen.

Juga, jika pekerjaan dimiliki oleh Windows NT account domain dan jika paket disimpan dalam SQL Server atau SQL Server repositori (tidak sebagai file), Anda harus menjalankan layanan SQL Server dengan menggunakan account dari domain yang sama atau account dari domain yang terpercaya. Misalnya, jika pekerjaan SQL agen dimiliki oleh account dari USA domain, kemudian account yang digunakan untuk memulai layanan SQL Server harus baik dari USA domain atau domain yang dipercaya oleh USA domain. Jika SQL Server mulai menggunakan rekening lokal, paket gagal menjalankan.

Apa yang menentukan pemilik?

Pertanyaan: Ketika Anda klik kanan DTS paket dan Anda memilih untuk jadwal paket, bagaimana pemilik diberikan?

Jawaban: Pemilik pekerjaan SQL agen tergantung pada bagaimana SQL Server terdaftar di Enterprise Manager. SQL Server terdaftar menggunakan otentikasi Windows NT, pemilik pekerjaan dijadwalkan Apakah account yang digunakan untuk memulai layanan SQL agen. Jika SQL Server terdaftar di SEM menggunakan SQL Server otentikasi (misalnya, SA login), pemilik pekerjaan adalah bahwa sama SQL Server login.

Untuk mengubah kepemilikan dari paket:
  1. Klik dua kali pekerjaan di Enterprise Manager.
  2. Klik General tab, dan kemudian klik Pemilik drop-down combo box.
Anda juga dapat menggunakan msdb.dbo.sp_update_job sistem disimpan prosedur untuk mengubah kepemilikan dari paket.

Bagaimana adalah meluncurkan paket DTS?

Jika Anda secara manual menjalankan paket dengan menggunakan DTSRun.exe utilitas baris perintah, konteks keamanan adalah bahwa account Windows yang digunakan untuk masuk ke komputer. Jika Anda menjalankan paket dengan menggunakan DTSrun.exe melalui xp_cmdshell diperpanjang disimpan prosedur, paket dijalankan dalam konteks account yang digunakan untuk memulai layanan SQL Server, asalkan pengguna yang dijalankan xp_cmdshell adalah anggota Sysadmin peran. Jika pengguna yang dijalankan xp_cmdshell bukanlah account di Sysadmin peran, kemudian DTSRun.exe berjalan dalam konteks SQLAgentCmdExec rekening.

Jika SQL Server dimulai menggunakan Sistem lokal account, DTS paket memiliki izin tidak ada di luar dari komputer yang menjalankan SQL Server.

Jika layanan SQL Server dimulai di bawah account Windows NT, paket memiliki hak dan izin yang sama sebagai account Windows NT. Jika account Windows NT adalah rekening mesin lokal (sebagai lawan untuk domain account), paket tidak memiliki hak di luar komputer. Jika account Windows NT domain account, paket dapat mengakses sumber pada banyak komputer yang berbeda pada domain tersebut.

Bagaimana Apakah dikonfirmasi Windows NT sambungan dibuat?

Kadang-kadang DTS paket berisi objek yang membuat sambungan ke sumber data yang menggunakan Windows NT otentikasi. Konteks keamanan digunakan untuk sambungan ini adalah sama dengan konteks paket yang sedang berjalan. Jika paket dijalankan dari prompt perintah dengan menggunakan DTSRun.exe, kredensial saat ini masuk Windows NT account yang digunakan. Jika paket dijalankan sebagai pekerjaan SQL Server agen, maka sambungan integrated security dilakukan menggunakan account Anda digunakan untuk memulai SQL agen (dengan asumsi bahwa pemilik paket adalah anggota Sysadmin peran).

Masalah umum

Berikut adalah beberapa masalah umum lainnya yang mungkin Anda alami ketika Anda menjalankan paket DTS sebagai dijadwalkan pekerjaan di SQL agen:

Dipetakan drive

Jika paket bergantung pada lokasi fisik berkas yang ditetapkan oleh huruf pengandar yang dipetakan, paket mungkin gagal ketika menjalankan sebagai pekerjaan SQL agen yang dijadwalkan, terlepas dari siapa yang memiliki paket. SQL agen layanan Windows NT dan layanan Windows NT tidak dapat melihat huruf pengandar yang dipetakan. Pemetaan adalah bagian dari profil pengguna yang dimuat ketika pengguna log on untuk sesi Windows NT. Layanan tidak bekerja dengan profil pengguna. Menggunakan lintasan UNC daripada huruf pengandar.Untuk informasi tambahan tentang mengapa layanan tidak dapat menggunakan pengandar yang dipetakan, klik nomor artikel di bawah ini untuk melihat artikel di dalam Basis Pengetahuan Microsoft:
180362INFO: Layanan dan diarahkan drive

Path relatif

Path relatif atau huruf kandar adalah khusus untuk lokasi paket (seperti c: \). Jika sebuah paket dirancang pada workstation dan kemudian dijadwalkan, lokasi yang paket adalah menjalankan perubahan. Lintasan huruf pengandar sekarang referensi lokasi fisik yang berbeda, dari server. Kecuali file direferensikan juga pindah ke server, paket eksekusi gagal.

COM komponen ActiveX script

Jika COM komponen (misalnya, panggilan ke objek Data ActiveX Microsoft (ADO), Remote Data objek (RDO), atau keputusan dukungan objek (DSO) objek) disebut dalam naskah ActiveX, komponen disebut harus ada pada komputer yang paket DTS sedang dijalankan. Jika Anda menjalankan paket dari desainer DTS dalam SEM atau DTSRun.exe, komponen harus ada di komputer di mana Anda duduk. Jika paket dijadwalkan akan dijalankan oleh agen SQL, komponen disebut harus diambil pada komputer hosting SQL Server.

Paket keamanan

DTS paket dapat memiliki pemilik password dan password pengguna. Password ini mempengaruhi yang dapat mengedit dan menjalankan paket. Tak satu pun dari ini mempengaruhi keamanan konteks di mana paket dijalankan.

SQLAgentCmdExec izin

Jika pekerjaan dijalankan di bawah konteks SQLAgentCmdExec rekening, dan SQLAgentCmdExec account tidak memiliki hak-hak login ke SQL Server, pekerjaan mungkin gagal dengan pesan galat berikut:
DTSRun: memuat... DTSRun: mengeksekusi... DTSRun OnStart: DTSStep_DTSExecuteSQLTask_1 DTSRun OnError: DTSStep_DTSExecuteSQLTask_1, Kesalahan =-2147217843 (80040E4D) kesalahan string: Login gagal untuk pengguna 'NT_name\SQLAgentCmdExec'. Kesalahan sumber: Microsoft OLE penyedia DB SQL File bantuan server: Bantuan konteks: 0 catatan Detail kesalahan: kesalahan:-2147217843 (80040E4D); Penyedia Error: 18456 (4818) kesalahan string: Login gagal untuk pengguna 'NT_name\SQLAgentCmdExec'. Kesalahan sumber: Microsoft OLE penyedia DB SQL File bantuan server: Bantuan konteks: 0 DTSRun OnFinish: DTSStep_DTSExecuteSQLTask_1 DTSRun: Eksekusi paket lengkap. Proses keluar Kode 1. Langkah gagal.
Anda perlu memberikan SQLAgentCmdExec rekening tepat login dan database izin hak ke SQL Server.

Properti

ID Artikel: 269074 - Kajian Terakhir: 22 September 2011 - Revisi: 2.0
Berlaku bagi:
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
Kata kunci: 
kbsqlsetup kbproductlink kbinfo kbmt KB269074 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:269074

Berikan Masukan

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com