Konfigurasi server: Kueri Terdistribusi Ad Hoc
Berlaku untuk: SQL Server
Secara default, SQL Server tidak mengizinkan kueri terdistribusi ad hoc menggunakan OPENROWSET
dan OPENDATASOURCE
. Ketika opsi ini diatur ke 1
, SQL Server memungkinkan akses ad hoc. Ketika opsi ini tidak diatur atau diatur ke 0
, SQL Server tidak mengizinkan akses ad hoc.
Kueri terdistribusi ad hoc menggunakan fungsi OPENROWSET
dan OPENDATASOURCE
untuk menyambungkan ke sumber daya data jarak jauh yang menggunakan OLE DB. OPENROWSET
dan OPENDATASOURCE
harus digunakan hanya untuk mereferensikan sumber data OLE DB yang jarang diakses. Untuk sumber data apa pun yang diakses lebih dari beberapa kali, tentukan server tertaut.
Mengaktifkan penggunaan nama ad hoc berarti bahwa setiap akun SQL Server yang diautentikasi dapat mengakses penyedia. Administrator SQL Server harus mengaktifkan fitur ini untuk penyedia yang aman untuk diakses oleh akun lokal mana pun.
Keterangan
Jika Anda mencoba membuat koneksi ad hoc dengan Ad Hoc Distributed Queries
dinonaktifkan, Anda akan melihat kesalahan berikut:
Msg 7415, Level 16, State 1, Line 1
Ad hoc access to OLE DB provider 'Microsoft.ACE.OLEDB.12.0' has been denied. You must access this provider through a linked server.
Azure SQL Database dan Azure SQL Managed Instance
Lihat Perbandingan fitur: Azure SQL Database dan Azure SQL Managed Instance untuk referensi.
Contoh
Contoh berikut mengaktifkan Ad Hoc Distributed Queries
lalu mengkueri server bernama Seattle1
menggunakan OPENROWSET
fungsi .
USE master;
GO
EXECUTE sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
EXECUTE sp_configure 'Ad Hoc Distributed Queries', 1;
GO
RECONFIGURE;
GO
SELECT a.*
FROM OPENROWSET ('MSOLEDBSQL', 'Server=Seattle1;Trusted_Connection=yes;', 'SELECT GroupName, Name, DepartmentID
FROM AdventureWorks2022.HumanResources.Department
ORDER BY GroupName, Name') AS a;
GO
EXECUTE sp_configure 'show advanced options', 0;
GO
RECONFIGURE;
GO