Referensi teknis Konektor SQL Generik
Artikel ini menjelaskan Konektor SQL Generik. Artikel ini berlaku untuk produk berikut:
- Microsoft Identity Manager 2016 (MIM2016)
- Microsoft Entra ID
Untuk MIM2016, Konektor tersedia sebagai unduhan dari Pusat Unduhan Microsoft.
Untuk melihat tindakan Konektor ini, lihat artikel Langkah demi langkah Konektor SQL Generik.
Catatan
MICROSOFT Entra ID sekarang menyediakan solusi berbasis agen ringan untuk memprovisikan pengguna ke dalam database SQL, tanpa memerlukan penyebaran sinkronisasi MIM. Sebaiknya gunakan untuk provisi pengguna keluar. Pelajari selengkapnya.
Gambaran umum Konektor SQL Generik
Konektor SQL Generik memungkinkan Anda mengintegrasikan layanan sinkronisasi dengan sistem database yang menawarkan konektivitas ODBC.
Dari perspektif tingkat tinggi, fitur berikut didukung oleh rilis konektor saat ini:
Fitur | Dukungan |
---|---|
Sumber data yang tersambung | Konektor didukung dengan semua driver ODBC 64-bit*. Ini telah diuji dengan yang berikut: |
Skenario | |
Operasional | |
Skema |
Prasyarat
Sebelum Anda menggunakan Konektor, pastikan Anda memiliki yang berikut ini di server sinkronisasi:
- Microsoft .NET 4.6.2 Framework atau yang lebih baru
- Driver klien ODBC 64-bit
- Jika Anda menggunakan konektor untuk berkomunikasi dengan Oracle 12c, ini memerlukan Oracle Instant Client 12.2.0.1 atau yang lebih baru dengan paket ODBC.
- Jika Anda menggunakan konektor untuk berkomunikasi dengan Oracle 18c-23c, ini memerlukan Oracle Instant Client 18-23 atau yang lebih baru dengan Paket ODBC, dan variabel sistem NLS_LANG yang akan diatur untuk mendukung karakter UTF8, misalnya NLS_LANG=AMERICAN_AMERICA. AL32UTF8.
- Konektor ini menggunakan pernyataan yang disiapkan SQL dan beberapa pernyataan per transaksi. Beberapa sistem RDBM mungkin memiliki masalah dalam driver ODBC mereka yang terkait dengan penanganan transaksi, pernyataan SQL yang disiapkan sisi server dan beberapa pernyataan dalam transaksi yang sama. Harap konfigurasikan opsi koneksi DSN Anda yang sesuai untuk memastikan pernyataan tersebut dikirim dengan benar ke database Anda., Misalnya, Driver ODBC MySQL versi 8.0.32 memerlukan opsi NO_SSPS=1 dan MULTI_STATEMENTS=1. Opsi lain seperti 'autocommit' atau 'penerapan pada operasi yang berhasil saja' dapat memengaruhi bagaimana ekspor batch ditangani; konsultasikan dengan administrator database Anda untuk detailnya. Untuk memecahkan masalah selama ekspor, atur ukuran batch ekspor ke 1 dan aktifkan pengelogan verbose konektor.
Menyebarkan konektor ini mungkin memerlukan perubahan pada konfigurasi database serta perubahan konfigurasi pada MIM. Untuk penyebaran yang melibatkan integrasi MIM dengan server database pihak ketiga di lingkungan produksi, sebaiknya pelanggan bekerja dengan vendor database mereka, atau mitra penyebaran untuk bantuan, panduan, dan dukungan untuk integrasi ini.
Izin di sumber data yang tersambung
Untuk membuat atau melakukan salah satu tugas yang didukung di konektor SQL Generik, Anda harus memiliki:
- db_datareader
- db_datawriter
Port dan protokol
Agar port yang diperlukan agar driver ODBC berfungsi, lihat dokumentasi vendor database.
Membuat Konektor baru
Untuk Membuat konektor SQL Generik, di Layanan Sinkronisasi pilih Agen Manajemen dan Buat. Pilih Konektor SQL Generik (Microsoft).
Konektivitas
Konektor menggunakan file ODBC DSN untuk konektivitas. Buat file DSN menggunakan Sumber Data ODBC yang ditemukan di menu mulai di bawah Alat Administratif. Di alat administratif, buat File DSN sehingga dapat diberikan kepada Konektor.
Layar Konektivitas adalah yang pertama saat Anda membuat Konektor SQL Generik baru. Pertama-tama Anda perlu memberikan informasi berikut:
- Jalur file DSN
- Otentikasi
- Nama Pengguna
- Kata sandi
Database harus mendukung salah satu metode autentikasi ini:
- Autentikasi Windows: Database autentikasi menggunakan kredensial Windows untuk memverifikasi pengguna. Nama pengguna/kata sandi yang ditentukan digunakan untuk mengautentikasi dengan database. Akun ini memerlukan izin ke database.
- Autentikasi SQL: Database autentikasi menggunakan nama pengguna/kata sandi yang ditentukan satu layar Konektivitas untuk menyambungkan ke database. Jika Anda menyimpan nama pengguna/pasword dalam file DSN, kredensial yang disediakan pada layar Konektivitas telah diutamakan.
- Autentikasi Azure SQL Database: Untuk informasi selengkapnya, lihat Menyambungkan ke SQL Database melalui autentikasi Microsoft Entra.
DN adalah Jangkar: Jika Anda memilih opsi ini, DN juga digunakan sebagai atribut jangkar. Ini dapat digunakan untuk implementasi sederhana tetapi juga memiliki batasan berikut:
- Konektor hanya mendukung satu jenis objek. Oleh karena itu, atribut referensi apa pun hanya dapat mereferensikan jenis objek yang sama.
Jenis Ekspor: Penggantian Objek: Selama ekspor, ketika hanya beberapa atribut yang telah berubah, seluruh objek dengan semua atribut diekspor dan menggantikan objek yang ada.
Skema 1 (Deteksi jenis objek)
Pada halaman ini, Anda akan mengonfigurasi bagaimana Konektor akan menemukan berbagai jenis objek dalam database.
Setiap jenis objek disajikan sebagai partisi dan dikonfigurasi lebih lanjut pada Mengonfigurasi Partisi dan Hierarki.
Metode deteksi Jenis Objek: Konektor mendukung metode deteksi jenis objek ini.
- Nilai Tetap: Anda menyediakan daftar jenis objek dengan daftar yang dipisahkan koma. Misalnya:
User,Group,Department
.
- Tabel/Tampilan/Prosedur Tersimpan: Berikan nama prosedur tabel/tampilan/tersimpan lalu nama kolom yang menyediakan daftar jenis objek. Jika Anda menggunakan prosedur tersimpan, berikan juga parameter untuknya dalam format [Name]:[Direction]:[Value]. Berikan setiap parameter pada baris terpisah (gunakan Ctrl+Enter untuk mendapatkan baris baru).
- Kueri SQL: Opsi ini memungkinkan Anda menyediakan kueri SQL yang mengembalikan satu kolom dengan jenis objek, misalnya
SELECT [Column Name] FROM TABLENAME
. Kolom yang dikembalikan harus berjenis string (varchar).
Skema 2 (Deteksi jenis atribut)
Pada halaman ini, Anda akan mengonfigurasi bagaimana nama dan jenis atribut akan terdeteksi. Opsi konfigurasi dicantumkan untuk setiap jenis objek yang terdeteksi di halaman sebelumnya.
Metode deteksi Jenis Atribut: Konektor mendukung metode deteksi jenis atribut ini dengan setiap jenis objek yang terdeteksi di layar Skema 1.
- Tabel/Tampilan/Prosedur Tersimpan: Berikan nama tabel/tampilan/prosedur tersimpan yang harus digunakan untuk menemukan nama atribut. Jika Anda menggunakan prosedur tersimpan, berikan juga parameter untuknya dalam format [Name]:[Direction]:[Value]. Berikan setiap parameter pada baris terpisah (gunakan Ctrl+Enter untuk mendapatkan baris baru). Untuk mendeteksi nama atribut dalam atribut multinilai, berikan daftar Tabel atau Tampilan yang dipisahkan koma. Skenario multinila tidak didukung saat tabel induk dan anak memiliki nama kolom yang sama.
- Kueri SQL: Opsi ini memungkinkan Anda menyediakan kueri SQL yang mengembalikan satu kolom dengan nama atribut, misalnya
SELECT [Column Name] FROM TABLENAME
. Kolom yang dikembalikan harus berjenis string (varchar).
Skema 3 (Tentukan jangkar dan DN)
Halaman ini memungkinkan Anda mengonfigurasi atribut jangkar dan DN untuk setiap jenis objek yang terdeteksi. Anda dapat memilih beberapa atribut untuk membuat jangkar unik.
Atribut multinilai dan Boolean tidak tercantum.
Atribut yang sama tidak dapat digunakan untuk DN dan jangkar, kecuali DN adalah Jangkar dipilih pada halaman Konektivitas.
Jika DN adalah Jangkar dipilih di halaman Konektivitas, halaman ini hanya memerlukan atribut DN. Atribut ini juga akan digunakan sebagai atribut jangkar.
Skema 4 (Tentukan jenis atribut, referensi, dan arah)
Halaman ini memungkinkan Anda mengonfigurasi jenis atribut, seperti bilangan bulat, biner, atau Boolean, dan arah untuk setiap atribut. Semua atribut dari skema halaman 2 tercantum termasuk atribut multinilai.
- DataType: Digunakan untuk memetakan jenis atribut ke jenis yang diketahui oleh mesin sinkronisasi. Defaultnya adalah menggunakan jenis yang sama seperti yang terdeteksi dalam skema SQL, tetapi DateTime dan Reference tidak mudah dideteksi. Untuk itu, Anda perlu menentukan DateTime atau Referensi.
- Arah: Anda dapat mengatur arah atribut ke Impor, Ekspor, atau ImportExport. ImportExport adalah default.
Catatan:
- Jika jenis atribut tidak dapat dideteksi oleh Konektor, jenis data String akan digunakan.
- Tabel berlapis dapat dianggap sebagai tabel database satu kolom. Oracle menyimpan baris tabel berlapis dalam urutan tertentu. Namun, saat Anda mengambil tabel berlapis ke dalam variabel PL/SQL, baris diberikan subskrip berturut-turut mulai dari 1. Itu memberi Anda akses seperti array ke baris individual.
- VARRYS tidak didukung di konektor.
Skema 5 (Tentukan partisi untuk atribut referensi)
Pada halaman ini, Anda mengonfigurasi untuk semua atribut referensi yang dirujuk oleh partisi (jenis objek).
Jika Anda menggunakan DN adalah jangkar, maka Anda harus menggunakan jenis objek yang sama dengan yang Anda rujuk. Anda tidak dapat mereferensikan tipe objek lain.
Catatan
Mulai pembaruan Maret 2017 sekarang ada opsi untuk "*" Ketika opsi ini dipilih maka semua jenis anggota yang mungkin akan diimpor.
Penting
Pada Mei 2017 , "*" alias opsi apa pun telah diubah untuk mendukung alur impor dan ekspor. Jika Anda ingin menggunakan opsi ini, tabel/tampilan multinilai Anda harus memiliki atribut yang berisi jenis objek.
Jika "*" dipilih, maka nama kolom dengan jenis objek juga harus ditentukan.
Setelah mengimpor, Anda akan melihat sesuatu yang mirip dengan gambar di bawah ini:
Parameter Global
Halaman Parameter Global digunakan untuk mengonfigurasi Impor Delta, format Tanggal/Waktu, dan Metode kata sandi.
Konektor SQL Generik mendukung metode berikut untuk Impor Delta:
- Pemicu: Lihat Menghasilkan Tampilan Delta Menggunakan Pemicu.
- Marka air: Pendekatan umum yang dapat digunakan dengan database apa pun. Kueri marka air telah diisi sebelumnya berdasarkan vendor database. Kolom marka air harus ada di setiap tabel/tampilan yang digunakan. Kolom ini harus melacak penyisipan dan pembaruan pada tabel sebagai dan tabel dependennya (multinilai atau turunan). Jam antara Layanan Sinkronisasi dan server database harus disinkronkan. Jika tidak, beberapa entri dalam impor delta mungkin dihilangkan.
Batasan:- Strategi marka air tidak mendukung objek yang dihapus.
- Rekam jepret: (Hanya berfungsi dengan Microsoft SQL Server) Menghasilkan Tampilan Delta Menggunakan Rekam Jepret
- Pelacakan Perubahan: (Hanya berfungsi dengan Microsoft SQL Server) Tentang Pelacakan Perubahan
Keterbatasan:- Atribut Jangkar &DN harus menjadi bagian dari kunci primer untuk objek yang dipilih dalam tabel.
- Kueri SQL tidak didukung selama Impor dan Ekspor dengan Pelacakan Perubahan.
Parameter Tambahan: Tentukan Zona Waktu Server Database yang menunjukkan lokasi server Database Anda. Nilai ini digunakan untuk mendukung berbagai format atribut tanggal &waktu.
Konektor selalu menyimpan tanggal dan tanggal-waktu dalam format UTC. Agar dapat mengonversi tanggal dan waktu dengan benar, zona waktu server database dan format yang digunakan harus ditentukan. Format harus dinyatakan dalam format .NET.
Selama ekspor setiap atribut tanggal waktu harus diberikan ke Konektor dalam format waktu UTC.
Konfigurasi Kata Sandi: Konektor menyediakan kemampuan sinkronisasi kata sandi dan mendukung set dan mengubah kata sandi.
Konektor menyediakan dua metode untuk mendukung sinkronisasi kata sandi:
- Prosedur Tersimpan: Metode ini memerlukan dua prosedur tersimpan untuk mendukung Set & Ubah kata sandi. Ketik semua parameter untuk menambahkan dan mengubah operasi kata sandi di Atur Kata Sandi SP dan Ubah Parameter SP Kata Sandi masing-masing sesuai contoh di bawah ini.
- Ekstensi Kata Sandi: Metode ini memerlukan DLL ekstensi Kata Sandi (Anda perlu memberikan Nama DLL Ekstensi yang mengimplementasikan antarmuka IMAExtensible2Password ). Rakitan ekstensi kata sandi harus ditempatkan di folder ekstensi sehingga konektor dapat memuat DLL saat runtime.
Anda juga harus mengaktifkan Manajemen Kata Sandi di halaman Konfigurasi Ekstensi .
Mengonfigurasi Partisi dan Hierarki
Pada halaman partisi dan hierarki, pilih semua jenis objek. Setiap jenis objek adalah partisinya sendiri.
Anda juga dapat mengambil alih nilai yang ditentukan pada halaman Konektivitas atau Parameter Global.
Mengonfigurasi Anchors
Halaman ini bersifat baca-saja karena jangkar telah ditentukan. Atribut jangkar yang dipilih selalu ditambahkan dengan jenis objek untuk memastikan atribut tetap unik di seluruh jenis objek.
Mengonfigurasi Parameter Langkah Eksekusi
Langkah-langkah ini dikonfigurasi pada profil eksekusi pada Konektor. Konfigurasi ini melakukan pekerjaan aktual mengimpor dan mengekspor data.
Impor Penuh dan Delta
Konektor SQL Generik mendukung Impor Penuh dan Delta menggunakan metode berikut:
- Tabel
- Tampilan
- Prosedur Tersimpan
- SQL Query
Tabel/Tampilan
Untuk mengimpor atribut multinilai untuk objek, Anda harus memberikan nama tabel/tampilan di Nama tabel/tampilan Multinilai dan kondisi gabungan masing-masing dalam kondisi Gabung dengan tabel induk. Jika ada lebih dari satu tabel multinilai di sumber data, Anda bisa menggunakan gabungan untuk satu tampilan.
Penting
Agen manajemen SQL Generik hanya dapat bekerja dengan satu tabel multinilai. Jangan masukkan ke dalam Nama tabel/tampilan Multinilai lebih dari satu nama tabel. Ini adalah batasan Generik SQL.
Contoh: Anda ingin mengimpor objek Karyawan dan semua atribut multinilainya. Ada dua tabel, bernama Karyawan (tabel utama) dan Departemen (multinilai). Lakukan:
- Ketik Karyawan dalam Tabel/Tampilan/SP.
- Ketik Departemen di Nama tabel/tampilan Multinilai.
- Ketik kondisi gabungan antara Karyawan & Departemen dalam Kondisi Bergabung, misalnya
Employee.DEPTID=Department.DepartmentID
.
Prosedur tersimpan
- Jika Anda memiliki banyak data, disarankan untuk menerapkan penomoran halaman dengan Prosedur Tersimpan Anda.
- Agar Prosedur Tersimpan Anda mendukung penomoran halaman, Anda perlu menyediakan Indeks Mulai dan Indeks Akhir. Lihat: Paging Secara Efisien Melalui Data Dalam Jumlah Besar.
- @StartIndex dan @EndIndex diganti pada waktu eksekusi dengan nilai ukuran halaman masing-masing yang dikonfigurasi pada halaman Konfigurasi Langkah . Misalnya, ketika konektor mengambil halaman pertama dan ukuran halaman diatur 500, dalam situasi @StartIndex seperti itu adalah 1 dan @EndIndex 500. Nilai-nilai ini meningkat ketika konektor mengambil halaman berikutnya dan mengubah @StartIndex nilai & @EndIndex .
- Untuk menjalankan Prosedur Tersimpan berparameter, berikan parameter dalam
[Name]:[Direction]:[Value]
format. Masukkan setiap parameter pada baris terpisah (Gunakan Ctrl + Enter untuk mendapatkan baris baru). - Konektor SQL generik juga mendukung operasi Impor dari Server Tertaut di Microsoft SQL Server. Jika informasi harus diambil dari Tabel di Server tertaut, maka Tabel harus disediakan dalam format:
[ServerName].[Database].[Schema].[TableName]
- Konektor SQL Generik hanya mendukung objek yang memiliki struktur serupa (nama alias dan jenis data) antara informasi langkah eksekusi dan deteksi skema. Jika objek yang dipilih dari skema dan informasi yang diberikan pada langkah eksekusi berbeda, maka Konektor SQL tidak dapat mendukung jenis skenario ini.
Kueri SQL
Penting
CRLF atau karakter baris baru berfungsi sebagai pemisah antara beberapa pernyataan.
Contoh kueri SQL dengan penomoran halaman - kueri yang salah, tidak akan berfungsi karena karakter baris baru digunakan:
WITH A AS
(select dense_rank() over (order by BusinessEntityID)
rownumber, BusinessEntityID, DeptID, NationalIDNumber, LoginID, JobTitle, BirthDate, MaritalStatus, HireDate, ModifiedDate, Password
from Employees
) select * from A where rownumber between @StartIndex and @EndIndex
Sampel kueri SQL dengan penomoran halaman - kueri yang benar:
WITH A AS (select dense_rank() over (order by BusinessEntityID) rownumber, BusinessEntityID, DeptID, NationalIDNumber, LoginID, JobTitle, BirthDate, MaritalStatus, HireDate, ModifiedDate, Password from Employees) select * from A where rownumber between @StartIndex and @EndIndex
- Beberapa kueri tataan hasil tidak didukung.
- Kueri SQL mendukung penomoran halaman dan menyediakan Indeks Mulai dan Indeks Akhir sebagai variabel untuk mendukung penomoran halaman.
Impor Delta
Konfigurasi Impor Delta memerlukan beberapa konfigurasi lebih banyak dibandingkan dengan Impor Penuh.
- Jika Anda memilih pendekatan Pemicu atau Rekam Jepret untuk melacak perubahan delta, berikan database Tabel Riwayat atau Rekam Jepret di kotak Nama database Tabel Riwayat atau Rekam Jepret.
- Anda juga perlu memberikan kondisi gabungan antara tabel Riwayat dan tabel Induk, misalnya
Employee.ID=History.EmployeeID
- Untuk melacak transaksi pada tabel induk dari tabel riwayat, Anda harus memberikan nama kolom yang berisi informasi operasi (Tambahkan/Perbarui/Hapus).
- Jika Anda memilih Marka Air untuk melacak perubahan delta, berikan nama kolom yang berisi informasi operasi dalam Nama Kolom Tanda Air.
- Kolom atribut ubah Jenis diperlukan untuk jenis perubahan. Kolom ini memetakan perubahan yang terjadi dalam tabel utama atau tabel multinilai menjadi jenis perubahan dalam tampilan delta. Kolom ini dapat berisi jenis perubahan Modify_Attribute untuk perubahan tingkat atribut atau tipe perubahan Tambahkan, Ubah, atau Hapus untuk jenis perubahan tingkat objek. Jika itu adalah sesuatu selain nilai default Tambahkan, Ubah, atau Hapus, maka Anda dapat menentukan nilai tersebut menggunakan opsi ini.
Ekspor
Konektor SQL Generik mendukung Ekspor menggunakan empat metode yang didukung seperti:
- Tabel
- Tampilan
- Prosedur Tersimpan
- SQL Query
Tabel/Tampilan
Jika Anda memilih opsi Tabel/Tampilan, konektor akan menghasilkan kueri masing-masing untuk melakukan Ekspor.
Prosedur tersimpan
Jika Anda memilih opsi Prosedur Tersimpan, Ekspor memerlukan tiga prosedur Tersimpan yang berbeda untuk melakukan operasi Sisipkan/Perbarui/Hapus.
- Tambahkan Nama SP: SP ini berjalan jika ada objek yang datang ke konektor untuk penyisipan dalam tabel masing-masing.
- Perbarui Nama SP: SP ini berjalan jika ada objek yang datang ke konektor untuk diperbarui dalam tabel masing-masing.
- Hapus Nama SP: SP ini berjalan jika ada objek yang datang ke konektor untuk dihapus dalam tabel masing-masing.
- Atribut yang dipilih dari skema yang digunakan sebagai nilai parameter ke prosedur tersimpan. Misalnya,
@EmployeeName: INPUT: EmployeeName
(EmployeeName dipilih dalam skema konektor dan konektor menggantikan nilai masing-masing saat melakukan ekspor) - Untuk menjalankan prosedur tersimpan berparameter, berikan parameter dalam
[Name]:[Direction]:[Value]
format. Masukkan setiap parameter pada baris terpisah (Gunakan Ctrl + Enter untuk mendapatkan baris baru).
Kueri SQL
Jika Anda memilih opsi kueri SQL, Ekspor memerlukan tiga kueri berbeda untuk melakukan operasi Sisipkan/Perbarui/Hapus.
- Sisipkan Kueri: Kueri ini berjalan jika ada objek yang datang ke konektor untuk penyisipan dalam tabel masing-masing.
- Perbarui Kueri: Kueri ini berjalan jika ada objek yang datang ke konektor untuk diperbarui dalam tabel masing-masing.
- Hapus Kueri: Kueri ini berjalan jika ada objek yang datang ke konektor untuk dihapus dalam tabel masing-masing.
- Atribut yang dipilih dari skema yang digunakan sebagai nilai parameter ke kueri, misalnya
Insert into Employee (ID, Name) Values (@ID, @EmployeeName)
Penting
CRLF atau karakter baris baru berfungsi sebagai pemisah antara beberapa pernyataan.
Sampel kueri SQL pembaruan multi-langkah - karakter baris baru digunakan untuk memisahkan pernyataan SQL:
update Employee set jobTitle=@JOBTITLE where BusinessEntityID=@BUSINESSENTITYID
insert into ChangeLog VALUES (@BUSINESSENTITYID)
Pemecahan Masalah
- Untuk informasi tentang cara mengaktifkan pengelogan untuk memecahkan masalah konektor, lihat Cara Mengaktifkan Pelacakan ETW untuk Konektor.