Rozproszona architektura kwerendy
Microsoft SQL Server obsługuje dwie metody odwoływania się do heterogenicznych źródłami danych OLE DB w Transact-SQL instrukcje:
serwer połączony nazw
procedury składowane w systemie sp_addlinkedserver and sp_addlinkedsrvlogin są używane do nadania nazwa serwera urządzenie źródłowe danych OLE DB.Obiekty połączone serwery te można się odwoływać w Transact-SQL Korzystanie z nazw four-part instrukcji. Na przykład, jeśli połączony nazwa serwera z DeptSQLSrvr jest zdefiniowany przed inne wystąpienie SQL Server, następująca instrukcja odwołuje się do tabela na tym serwerze:
SELECT Title, HireDate FROM DeptSQLSrvr.AdventureWorks.HumanResources.Employee
Można również określić nazwę połączonego serwera za pomocą instrukcja OPENQUERY otworzyć zestawu zestaw wierszy ze urządzenie źródłowe danych OLE DB.Ten zestaw wierszy można następnie odwoływać się podobnie jak w tabela Transact-SQL instrukcje.
Nazwy łącznika ad hoc
Dla rzadkie odwołania do urządzenie źródłowe danych funkcji OPENROWSET lub OPENDATASOURCE podano informacje niezbędne do łączenia się z serwer połączony.Następnie można się odwoływać ten zestaw wierszy w taki sam sposób, odwołuje się do tabela Transact-SQL instrukcje:
SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'c:\MSOffice\Access\Samples\Northwind.mdb';'Admin';''; Employees)
SQL Server OLE DB używa do komunikowania się między aparat relacyjnych i aparat magazynu.aparat relacyjny dzieli każdego Transact-SQL instrukcja na szereg operacji na proste OLE DB zestawów wierszy otwartych przez aparat magazynu z tabel podstawowych. Oznacza to, że aparat relacyjny można również otworzyć prosty OLE DB zestawów wierszy na dowolne urządzenie źródłowe danych OLE DB.
Relacyjne aparat korzysta z interfejs programowania aplikacji (API) DB OLE do otwierania zestawów wierszy na serwerach połączone, pobrania wierszy i zarządzania transakcjami.
Dla każdego urządzenie źródłowe danych OLE DB dostępne jako serwer połączony dostawca OLE DB musi być obecny na serwerze, na którym uruchomiony jest SQL Server. Zestaw Transact-SQL operacje, które mogą być używane wobec określonego urządzenie źródłowe danych OLE DB, zależy od możliwości dostawca OLE DB. Aby uzyskać więcej informacji zobaczOLE DB Provider Reference for Distributed Queries.
For each instance of SQL Server, members of the sysadmin fixed server role can enable or disable the use of ad-hoc connector names for an OLE DB provider using the SQL ServerDisallowAdhocAccess property.Po włączeniu dostępu ad hoc, każdy użytkownik zalogowany do tego wystąpienie mogą wykonywać instrukcje języka SQL zawierający nazwy łącznika ad hoc, odwoływanie się do dowolnego urządzenie źródłowe danych w sieci, w której można uzyskać dostęp przy użyciu tego dostawca OLE DB.Do kontrolowania dostępu do źródeł danych, członkowie sysadmin roli można wyłączyć dostęp ad-hoc dla tego dostawca OLE DB, w tym samym ograniczanie 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 Dostawca OLE DB i wyłączone dla wszystkich innych dostawców OLE DB.
Distributed queries can allow users to access another data source (for example, files, non-relational data sources such as Active Directory, and so on) using the security context of the Microsoft Windows account under which the SQL Server service is running.SQL Server impersonates the login appropriately for Windows logins; however, that is not possible for SQL Server logins.To może potencjalnie pozwolić na kwerenda rozproszona użytkownikowi dostęp do danych innego urządzenie źródłowe dla których nie mają uprawnień, ale konto, pod którym SQL Server Usługa jest uruchomiona ma uprawnienia. Użycie sp_addlinkedsrvlogin do definiowania określonych logowania, w których zezwolono na dostęp do odpowiednich połączony serwer.Ten formant nie jest dostępna dla nazw ad hoc, więc ostrożność w Włączanie dostawca OLE DB dla dostępu ad-hoc.
When possible, SQL Server pushes relational operations such as joins, restrictions, projections, sorts, and group by operations to the OLE DB data source.SQL Server does not default to scanning the base table into SQL Server and performing the relational operations itself.SQL Server queries the OLE DB provider to determine the level of SQL grammar it supports, and, based on that information, pushes as many relational operations as possible to the provider.Aby uzyskać więcej informacji zobaczSQL Dialect Requirements for OLE DB Providers.
SQL Server Określa mechanizm dostawca OLE DB do zwracania statystyki wskazujący wartości kluczy w jaki sposób są rozpowszechniane w ramach urządzenie źródłowe danych OLE DB.Umożliwia to SQL Server optymalizator kwerendy lepiej analizować wzorzec danych w źródle danych przed wymagań każdej instrukcja języka SQL, zwiększając możliwość generowania wykonanie optymalne plany optymalizator kwerendy. Aby uzyskać więcej informacji zobaczDistribution Statistics Requirements for OLE DB Providers.