Freigeben über


Erstellen einer heterogenen Verknüpfung zwischen SQL Server & Active Directory

Alle Mitarbeiter der Fabrikam Corporation werden alle sechs Monate überprüft. Überprüfungsbewertungen werden in der Personaldatenbank in SQL Server gespeichert. Um eine Ansicht dieser Daten zu erstellen, muss Joe Worden, der Unternehmensadministrator, zunächst eine Tabelle zur Überprüfung der Mitarbeiterleistung erstellen.

Im SQL-Abfrageanalysetool erstellt Joe eine Tabelle mit dem Namen EMP_REVIEW, die drei Spalten enthält, in denen der Name des Mitarbeiters, das Datum der Überprüfung und die bewertung enthalten sind, die der Mitarbeiter erhalten hat.

CREATE TABLE EMP_REVIEW
(
userName varChar(40),
reviewDate datetime,
rating decimal 
)

Joe kann dann einige Datensätze einfügen.

INSERT EMP_REVIEW VALUES('Julie Adam', '2/15/1999', 4 )
INSERT EMP_REVIEW VALUES('Julie Bankert', '7/15/1999', 5 )
INSERT EMP_REVIEW VALUES('Chris Gray', '2/15/1999', 3 )
INSERT EMP_REVIEW VALUES('Chris Gray', '7/15/1999', 4 )

Jetzt kann Joe die Active Directory-Benutzerobjekte mit der SQL Server Tabelle verbinden.

In diesem Beispiel enthält die SELECT-Anweisung die Liste der Daten, die vom Verzeichnisdienst und SQL Server abgerufen werden. Die FROM-Anweisung enthält den Namen des verknüpften Verzeichnisservers, auf dem diese Informationen von viewADUsers abgerufen werden. Die WHERE-Anweisung stellt die Suchbedingungen bereit. In diesem Beispiel wird nach dem Namen im Verzeichnisdienst gesucht, der auf den SQL-Benutzernamen festgelegt ist, der in der vorherigen Aufgabe eingegeben wurde.

SELECT ADsPath, userName, title, ReviewDate, Rating 
FROM EMP_REVIEW, viewADUsers
WHERE userName = Name

Der vorherige Befehl ruft das Ergebnis sowohl aus SQL Server als auch aus Active Directory ab. AdsPath und title stammen aus Active Directory, während userName, ReviewDate und Rating aus der SQL-Tabelle stammen. Er kann sogar eine andere Ansicht für diesen Join erstellen.

CREATE VIEW reviewReport
AS
SELECT ADsPath, userName, title, ReviewDate, Rating 
FROM EMP_REVIEW, viewADUsers
WHERE userName = Name
GO
SELECT * FROM reviewReport