Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Domyślnie program SQL Server nie zezwala na rozproszone zapytania ad hoc przy użyciu poleceń OPENROWSET i OPENDATASOURCE. Gdy ta opcja jest ustawiona na 1wartość , program SQL Server zezwala na dostęp ad hoc. Jeśli ta opcja nie jest ustawiona lub jest ustawiona na 0wartość , program SQL Server nie zezwala na dostęp ad hoc.
Zapytania rozproszone ad hoc używają OPENROWSET funkcji i OPENDATASOURCE do łączenia się ze zdalnymi źródłami danych korzystającymi z ole DB.
OPENROWSET i OPENDATASOURCE powinny być używane tylko do odwołowania się do źródeł danych OLE DB, do których uzyskuje się dostęp rzadko. W przypadku wszystkich źródeł danych, do których uzyskuje się dostęp więcej niż kilka razy, zdefiniuj połączony serwer.
Włączenie korzystania z nazw ad hoc oznacza, że każde uwierzytelnione konto programu SQL Server może uzyskać dostęp do dostawcy. Administratorzy programu SQL Server powinni włączyć tę funkcję dla dostawców, którzy są bezpieczni dla dowolnego konta lokalnego w celu uzyskania dostępu.
Uwagi
Jeśli spróbujesz nawiązać połączenie ad hoc z Ad Hoc Distributed Queries wyłączonym, zostanie wyświetlony następujący błąd:
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.
Usługi Azure SQL Database i Azure SQL Managed Instance
Zobacz porównanie funkcji: Azure SQL Database i Azure SQL Managed Instance , aby uzyskać informacje.
Przykłady
Poniższy przykład umożliwia, Ad Hoc Distributed Queries a następnie wysyła zapytanie do serwera o nazwie Seattle1 przy użyciu OPENROWSET funkcji .
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