Identyfikowanie źródła danych przy użyciu nazwy Ad Hoc

Gdy źródło danych OLE DB będzie nie odwołania wystarczająco często, aby uzasadniać Konfigurowanie serwer połączony, nazwa ad hoc mogą być używane jako odwołanie do tabela.W SQL Server, można użyć funkcji OPENROWSET i OPENDATASOURCE, aby podać nazwę ad hoc.

Kontrolowanie, kto może uzyskiwać dostęp do źródło danych jest dostępna tylko za pośrednictwem serwerów połączonych.Ponieważ ten formant nie jest dostępna dla nazw ad hoc, nazw ad hoc są domyślnie wyłączone dla wszystkich dostawców OLE DB, z wyjątkiem SQL Server macierzystego klienta OLE DB Provider.

Ważna informacjaWażne:

Dla każdego wystąpienie SQL Server, członkowie sysadmin stała rola serwera można włączyć lub wyłączyć użycie nazw łącznika ad hoc dla dostawca OLE DB przy użyciu DisallowAdhocAccess opcja dostawca i Przyk³adzie opcji konfiguracja serwera.Po włączeniu dostępu ad hoc, każdy użytkownik zalogowany do wystąpienie wykonać instrukcji SQL zawierających nazwy ad hoc łącznika odwołującego się do dowolnego źródło danych w sieci można uzyskać dostęp za pomocą tego dostawca OLE DB.Aby kontrolować dostęp do źródeł danych, członkowie sysadmin roli można wyłączyć dostęp ad hoc dla tego dostawca OLE DB, ograniczające użytkownikom tylko te źródła danych, które odwołują się nazw serwer połączony zdefiniowanych przez administratorów.Domyślnie jest włączony dostęp ad hoc dla SQL Server macierzystego klienta dostawcy OLE DB i wyłączone dla wszystkich innych OLE DB dostawców.

OPENROWSET i OPENDATASOURCE zawierają informacje połączenia ad hoc.Funkcje te służą do określania wszystkie informacje wymagane do uzyskania dostępu do źródło danych OLE DB; jednak nie można użyć OPENROWSET i OPENDATASOURCE zamiennie:

  • Tam, gdzie dostawca OLE DB zwraca zestawów zestaw wierszy, określając nazwę tabela (lub widoku) lub określając kwerendę zwracającą zestawu zestaw wierszy, można użyć OPENROWSET.OPENROWSET mogą być używane zamiast nazwy tabela lub widoku w Transact-SQL instrukcja.

  • Użyj OPENDATASOURCE tylko wtedy, gdy dostawca udostępnia zestawów wierszy i używa katalog**.schematu.obiektu notacji.OPENDATASOURCE mogą być używane w tej samej lokalizacji w Transact-SQL składni w przypadku, gdy połączony nazwa serwera może być używany.Dlatego w katalog.schematu.**obiektu notacji OPENDATASOURCE mogą być używane jako pierwsza część czteroczęściowym nazwy, która odwołuje się do tabela lub widoku.

Tylko dla dostępu do danych zewnętrznych w sytuacjach ad hoc, gdy nie można skonfigurować serwer połączony stałe należy stosować OPENROWSET i OPENDATASOURCE.OPENROWSET i OPENDATASOURCE nie zapewniają wszystkie funkcje dostępne z serwer połączony, takich jak zarządzanie mapowania logowania, zdolność do kwerendy metadane serwer połączony i możliwość konfigurowania różnych ustawień połączenia, takich jak czas-wartości.

Uwaga dotycząca zabezpieczeńUwaga dotycząca zabezpieczeń

Podczas łączenia się z danymi innego źródło, SQL Server personifikuje logowania odpowiednio do logowania do systemu Windows uwierzytelnione; jednak SQL Server nie może personifikować SQL Server uwierzytelniania logowania.Dlatego też dla SQL Server uwierzytelniania logowania do SQL Server można uzyskać dostęp do innego źródło danych, takich jak pliki źródeł danych nonrelational, takie jak Active Directory, korzystając w kontekście zabezpieczeń konta systemu Windows, w którym SQL Server Usługa jest uruchomiony.W ten sposób potencjalnie można nadać takiego dostępu logowania do danych innego źródło dla którego nie mają uprawnień, ale konto, pod którym SQL Server jest uruchomiona usługa ma uprawnienia.Tej możliwości należy rozważyć w przypadku korzystania SQL Server uwierzytelniania logowania.

Argumenty OPENROWSET i OPENDATASOURCE nie obsługują zmiennych.Argumenty musi być określona jako ciąg-literałów.Zmienne muszą być przekazywane w postaci argumentów, ciąg kwerendy, która zawiera zmienne można być konstruowana dynamicznie i wykonywane przy użyciu instrukcja EXECUTE.