Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Perbaiki "SQL Server memblokir akses ke PERNYATAAN 'OpenRowset/OpenDatasource' dari komponen 'Kueri Terdistribusi Ad Hoc"

Jika Anda mendapatkan pesan kesalahan 15281, Level 16 di SQL Server, kemungkinan Anda mencoba menjalankan kueri terdistribusi ad hoc, tetapi Anda belum mengaktifkan kueri terdistribusi ad hoc.

Ini dapat diperbaiki dengan mudah dengan mengaktifkan kueri terdistribusi ad hoc.

Contoh Kesalahan

Berikut adalah contoh kode yang menghasilkan kesalahan.

SELECT * FROM OPENROWSET(
    'SQLNCLI', 
    'Server=Homer;Trusted_Connection=yes;', 
    'SELECT * FROM Music.dbo.vAlbums');

Hasil:

Msg 15281, Level 16, State 1, Line 1
SQL Server blocked access to STATEMENT 'OpenRowset/OpenDatasource' of component 'Ad Hoc Distributed Queries' because this component is turned off as part of the security configuration for this server. A system administrator can enable the use of 'Ad Hoc Distributed Queries' by using sp_configure. For more information about enabling 'Ad Hoc Distributed Queries', search for 'Ad Hoc Distributed Queries' in SQL Server Books Online.

Seperti yang dinyatakan oleh pesan kesalahan, administrator sistem dapat mengaktifkan kueri terdistribusi ad hoc dengan menggunakan sp_configure prosedur tersimpan sistem.

Solusi

Jalankan kode berikut untuk memperbaiki masalah.

EXEC sp_configure 'show advanced options', 1
RECONFIGURE WITH OVERRIDE
GO
EXEC sp_configure 'ad hoc distributed queries', 1
RECONFIGURE WITH OVERRIDE
GO

Bagian pertama mengaktifkan show advanced options, yang menampilkan sp_configure opsi lanjutan prosedur tersimpan sistem. Jika ini tidak diaktifkan, Anda akan mendapatkan kesalahan lain (mungkin pesan kesalahan 15123), yang menyatakan bahwa opsi konfigurasi tidak ada atau mungkin merupakan opsi lanjutan.

Bagian kedua menggunakan sp_configure untuk mengaktifkan opsi kueri terdistribusi ad hoc.

Setelah menjalankan kode tersebut, Anda seharusnya dapat menjalankan kueri terdistribusi ad hoc.

Sembunyikan Opsi Lanjutan

Setelah Anda mengaktifkan kueri terdistribusi ad hoc, Anda mungkin harus menyembunyikan opsi lanjutan lagi.

EXEC sp_configure 'show advanced options', 0;  
GO
RECONFIGURE;  
GO

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MultipleActiveResultSets=Benar atau beberapa koneksi?

  2. Menggunakan RegEx di SQL Server

  3. Apakah ada Entity Framework 7 Database-First POCO Generator?

  4. Konversi gagal saat mengonversi nilai varchar 'sederhana,' ke tipe data menjadi

  5. Pengantar Ruang Penyimpanan Langsung untuk SQL Server