Serwisanci dostępni teraz · czynne całą dobę, także w weekendy i świętaWarszawa i okolice · dojazd bezpłatny
Darmowa diagnoza laptopa
Darmowa diagnoza laptopa
Dojazd do klienta bezpłatnie
Dojazd do klienta bezpłatnie
Laptopy zastępcze bezpłatnie
Laptopy zastępcze bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie

OPENDATASOURCE

Termin Definicja
OPENDATASOURCE

OPENDATASOURCE to funkcja umożliwiająca doraźne zapytanie do zewnętrznego źródła bez definiowania Linked Server.

OPENDATASOURCE w architekturze SQL Server

OPENDATASOURCE jest funkcją Transact-SQL dostępną w Microsoft SQL Server, która pozwala odwołać się do zewnętrznego źródła danych bez wcześniejszego utworzenia trwałej definicji Linked Server. Funkcja zwraca dostępny w zapytaniu zestaw wierszy, dlatego może występować między innymi w klauzuli FROM. Nazwa dostawcy OLE DB oraz parametry inicjalizacyjne są podawane bezpośrednio w wyrażeniu, a nie zapisywane jako osobny obiekt serwera.

Podstawowa postać wywołania ma formę OPENDATASOURCE('provider_name', 'init_string'). W przypadku odwołania do tabeli w relacyjnej bazie danych wyrażenie może zostać rozszerzone o nazwę bazy, schematu i obiektu, na przykład OPENDATASOURCE('MSOLEDBSQL', 'Data Source=DB01;Integrated Security=SSPI').SalesDb.dbo.Orders. Ostateczna możliwość wykonania takiego zapytania zależy od zainstalowania i prawidłowej rejestracji wskazanego dostawcy OLE DB oraz od tego, czy dostawca obsługuje wymagany sposób dostępu.

Składnia połączenia i odczyt danych z tabeli

Pierwszy argument funkcji określa nazwę dostawcy OLE DB, natomiast drugi zawiera parametry połączenia, takie jak źródło danych, sposób uwierzytelniania lub nazwa katalogu. Przykładowe zapytanie może wyglądać następująco: SELECT TOP (20) OrderId, OrderDate FROM OPENDATASOURCE('MSOLEDBSQL', 'Data Source=DB01;Initial Catalog=SalesDb;Integrated Security=SSPI').SalesDb.dbo.Orders;. W tym przykładzie SQL Server próbuje otworzyć zewnętrzne źródło i odczytać wskazaną tabelę przez określonego dostawcę.

Parametry połączenia nie są uniwersalne dla wszystkich dostawców. Dostawca może wymagać innych nazw właściwości, innego sposobu uwierzytelniania albo dodatkowych ustawień szyfrowania. Błąd w nazwie serwera, katalogu, użytkowniku, haśle lub właściwościach dostawcy może spowodować błąd na etapie inicjalizacji połączenia, zanim SQL Server zacznie wykonywać filtr lub projekcję kolumn. Z tego powodu przy analizie problemu trzeba rozdzielić błędy samego zapytania od błędów sterownika OLE DB i błędów dostępu do zewnętrznej bazy.

Konfiguracja zapytań ad hoc i konsekwencje operacyjne

Wykonywanie odwołań przez OPENDATASOURCE jest związane z mechanizmem zapytań ad hoc do rozproszonych źródeł danych. W SQL Server możliwość ta jest kontrolowana przez opcję konfiguracji Ad Hoc Distributed Queries. Jeżeli opcja jest wyłączona, użycie OPENDATASOURCE może zakończyć się komunikatem informującym o braku dostępu do dostawcy ad hoc. Sprawdzenie i zmiana tej opcji odbywa się przez mechanizm sp_configure, a zastosowanie zmiany wymaga wykonania RECONFIGURE.

Brak trwałego obiektu Linked Server upraszcza jednorazowy dostęp, ale utrudnia centralne zarządzanie połączeniem, uprawnieniami i monitoringiem. Każde wywołanie może zawierać własny ciąg inicjalizacyjny, co zwiększa ryzyko niespójnych ustawień oraz przypadkowego ujawnienia danych uwierzytelniających w kodzie lub historii wdrożenia. Należy również uwzględnić opóźnienia sieciowe, dostępność zewnętrznego serwera, mapowanie typów danych oraz zachowanie dostawcy podczas filtrowania i przekazywania operacji. OPENDATASOURCE nie tworzy kopii danych lokalnie; wynik jest pobierany w ramach wykonywanego zapytania.

Rozpoznawanie problemów z OPENDATASOURCE

Diagnostykę warto rozpocząć od ustalenia, czy SQL Server rozpoznaje wskazanego dostawcę OLE DB, czy usługa może połączyć się z podanym serwerem oraz czy konto wykonujące zapytanie ma wymagane uprawnienia. Następnie należy sprawdzić poprawność pełnej nazwy obiektu: katalogu, schematu i tabeli. Osobną kategorię stanowią błędy wynikające z niezgodności typów danych, braku kolumny albo braku uprawnień do konkretnego obiektu po stronie zewnętrznego źródła.

Przydatne jest wykonanie najpierw prostego odczytu ograniczonego przez TOP, bez złożonych łączeń i przekształceń. Pozwala to ustalić, czy problem występuje już podczas nawiązywania połączenia, czy dopiero przy planowaniu i realizacji większego zapytania. Trzeba też sprawdzić, czy nazwa dostawcy odpowiada faktycznie zainstalowanemu komponentowi, czy parametry uwierzytelniania są obsługiwane przez ten komponent oraz czy reguły sieciowe pozwalają na połączenie z określonym hostem i portem. W środowisku produkcyjnym każde użycie OPENDATASOURCE powinno być oceniane także pod kątem kontroli dostępu, powtarzalności konfiguracji i wpływu na wydajność SQL Server.

+48 22 100 48 29Zadzwoń teraz · serwisant w 1 godzinę