Megosztás a következőn keresztül:


sp_addlinkedserver (Transact-SQL)

A következőkre vonatkozik:SQL ServerFelügyelt Azure SQL-példány

Csatolt kiszolgálót hoz létre. A csatolt kiszolgáló hozzáférést biztosít az elosztott, heterogén lekérdezésekhez az OLE DB adatforrásaihoz. Miután a csatolt kiszolgálót sp_addlinkedserverhasználatával hozta létre, az elosztott lekérdezések futtathatók ezen a kiszolgálón. Ha a csatolt kiszolgáló SQL Server-példányként van definiálva, távoli tárolt eljárások is végrehajthatók.

Jegyzet

Microsoft Entra ID korábban Azure Active Directory (Azure AD) néven ismert.

Transact-SQL szintaxis konvenciói

Szintaxis

sp_addlinkedserver
    [ @server = ] N'server'
    [ , [ @srvproduct = ] N'srvproduct' ]
    [ , [ @provider = ] N'provider' ]
    [ , [ @datasrc = ] N'datasrc' ]
    [ , [ @location = ] N'location' ]
    [ , [ @provstr = ] N'provstr' ]
    [ , [ @catalog = ] N'catalog' ]
    [ , [ @linkedstyle = ] linkedstyle ]
[ ; ]

Érvek

[ @server = ] N'kiszolgáló'

A létrehozandó csatolt kiszolgáló neve. @serversysname, alapértelmezés nélkül.

[ @srvproduct = ] N'srvproduct'

A csatolt kiszolgálóként hozzáadni kívánt OLE DB-adatforrás termékneve. @srvproductnvarchar(128), alapértelmezett értéke NULL. Ha az érték SQL Server, @provider, @datasrc, @location, @provstrés @catalog nem kell megadni.

[ @provider = ] N'szolgáltatói'

Az adatforrásnak megfelelő OLE DB-szolgáltató egyedi programozott azonosítója (PROGID). A @provider egyedinek kell lennie az aktuális számítógépen telepített OLE DB-szolgáltatóhoz. @providernvarchar(128), alapértelmezett értéke NULL.

  • Az SQL Server 2019 (15.x) és korábbi verzióiban, ha @provider nincs megadva, SQLNCLI használ. A SQLNCLI használatával átirányítja az SQL Servert az SQL Server natív ügyféloldali OLE DB-szolgáltató legújabb verziójára. Az OLE DB-szolgáltató várhatóan regisztrálva lesz a megadott PROGID-ben a beállításjegyzékben. A SQLNCLIhelyett MSOLEDBSQL ajánlott.

  • Az SQL Server 2022-től kezdve (16.x) meg kell adnia egy szolgáltatónevet. MSOLEDBSQL ajánlott. Ha kihagyja @provider, váratlan viselkedést tapasztalhat.

  • Az SQL Server 2025-től (17.x) kezdve MSOLEDBSQL a Microsoft OLE DB Driver 19-es verzióját használja, amely támogatja a TDS 8.0-t. Ez az illesztőprogram azonban kompatibilitástörő változást vezet be. Most meg kell adnia a paramétert encrypt . Annak meghatározására használható encrypt , hogy kötelező-e a titkosítás. Egy érvényes hitelesítésszolgáltató által aláírt tanúsítványt kell megadnia a másik SQL Server-példányhoz való kapcsolat titkosításához, vagy a encrypt=optional argumentumban kell hozzárendelnie. Ha nem tudja módosítani a csatolt kiszolgáló konfigurációját, engedélyezze az 17600 nyomkövetési jelzőt az OLE DB 18-es verziójának viselkedésének és alapértelmezett beállításainak fenntartásához.

    A titkosítási tulajdonságok részleteiért tekintse át a főbb verzióbeli különbségeket.

Fontos

A SQL Server natív ügyfél (gyakran rövidített SNAC) el lett távolítva az SQL Server 2022 (16.x) és az SQL Server Management Studio 19 (SSMS) szolgáltatásból. Az SQL Server natív ügyféloldali OLE DB-szolgáltatója (SQLNCLI vagy SQLNCLI11) és az SQL Serverhez készült régi Microsoft OLE DB-szolgáltató (SQLOLEDB) nem ajánlott új fejlesztéshez. Váltson az SQL Serverhez készült új Microsoft OLE DB-illesztőprogramra (MSOLEDBSQL).

[ @datasrc = ] N'datasrc'

Az adatforrás neve az OLE DB-szolgáltató által értelmezett módon. @datasrcnvarchar(4000), alapértelmezett értéke NULL. @datasrcDBPROP_INIT_DATASOURCE tulajdonságként lesz átadva az OLE DB-szolgáltató inicializálásához.

[ @location = ] N'hely'

Az adatbázis helye az OLE DB-szolgáltató által értelmezett módon. @locationnvarchar(4000), alapértelmezett értéke NULL. @locationDBPROP_INIT_LOCATION tulajdonságként adja át az OLE DB-szolgáltató inicializálásához.

[ @provstr = ] N'provstr'

Az OLE DB szolgáltatóspecifikus kapcsolati sztringje, amely egyedi adatforrást azonosít. @provstrnvarchar(4000), alapértelmezett értéke NULL. Az argumentum provstr az IDataInitialize értékre kerül, vagy DBPROP_INIT_PROVIDERSTRING tulajdonságként van beállítva az OLE DB-szolgáltató inicializálásához.

Ha a csatolt kiszolgálót az SQL Server natív ügyféloldali OLE DB-szolgáltatója alapján hozza létre, a példány a SERVER kulcsszóval adható meg SERVER=servername\instancename az SQL Server egy adott példányának megadásához. A kiszolgálónév annak a számítógépnek a neve, amelyen az SQL Server fut, és példánynév annak az SQL Server-példánynak a neve, amelyhez a felhasználó csatlakozik.

  • A tükrözött adatbázisok eléréséhez a kapcsolati sztringnek tartalmaznia kell az adatbázis nevét. Ez a név szükséges az adatelérési szolgáltató feladatátvételi kísérleteinek engedélyezéséhez. Az adatbázis megadható a @provstr vagy @catalog paraméterben. A kapcsolati sztring opcionálisan feladatátvevő partnernevet is megadhat.

  • Ha helyi bejelentkezésből futtat sp_addlinkedserver, vagy olyan bejelentkezést, amely nem része a sysadmin szerepkörnek, a következő hibaüzenet jelenhet meg:

    Access to the remote server is denied because no login-mapping exists.
    

    A probléma megoldásához adja hozzá a User ID paramétert a kapcsolati sztringhez. Az alábbi példában myUser a kapcsolati sztringnek átadott felhasználói azonosító:

    EXECUTE master.dbo.sp_addlinkedserver
        @server = N'LinkServerName',
        @provider = N'SQLNCLI',
        @srvproduct = 'MS SQL Server',
        @provstr = N'SERVER=serverName\InstanceName;User ID=myUser';
    
    EXECUTE master.dbo.sp_addlinkedsrvlogin
        @rmtsrvname = N'LinkServerName',
        @locallogin = NULL,
        @useself = N'False',
        @rmtuser = N'myUser',
        @rmtpassword = N'*****';
    

    További információ: A távoli kiszolgálóhoz való hozzáférés megtagadva, mert nem létezik bejelentkezési leképezés.

[ @catalog = ] N'katalógus'

Az OLE DB-szolgáltatóval való kapcsolat során használandó katalógus. @catalogsysname, alapértelmezett értéke NULL. @catalogDBPROP_INIT_CATALOG tulajdonságként lesz átadva az OLE DB-szolgáltató inicializálásához. Ha a csatolt kiszolgáló egy SQL Server-példányon van definiálva, a katalógus arra az alapértelmezett adatbázisra hivatkozik, amelyhez a csatolt kiszolgáló megfeleltetve van.

[ @linkedstyle = ] linkedstyle

Csak tájékoztatási célokra van meghatározva. Nem támogatott. A jövőbeli kompatibilitás nem garantált.

Kódértékek visszaadása

0 (sikeres) vagy 1 (hiba).

Eredményhalmaz

Egyik sem.

Megjegyzések

Az alábbi táblázat bemutatja, hogyan állítható be csatolt kiszolgáló az OLE DB-ben elérhető adatforrásokhoz. A csatolt kiszolgálók több módon is beállíthatók egy adott adatforráshoz; egy adatforrástípushoz egynél több sor is lehet. Ez a táblázat a csatolt kiszolgáló beállításához használandó sp_addlinkedserver paraméterértékeket is megjeleníti.

Távoli OLE DB-adatforrás OLE DB-szolgáltató @srvproduct @provider @datasrc @location @provstr @catalog
SQL Server SQL Server natív ügyféloldali OLE DB-szolgáltató SQL Server 1 (alapértelmezett)
SQL Server SQL Server natív ügyféloldali OLE DB-szolgáltató SQLNCLI Az SQL Server hálózati neve (alapértelmezett példány esetén) Adatbázis neve (nem kötelező)
SQL Server SQL Server natív ügyféloldali OLE DB-szolgáltató SQLNCLI kiszolgálónév\példánynév (adott példány esetén) Adatbázis neve (nem kötelező)
Oracle, 8-es és újabb verzió Oracle Provider for OLE DB Bármely OraOLEDB.Oracle Az Oracle-adatbázis aliasa
Access/Jet Microsoft OLE DB Provider for Jet Bármely Microsoft.Jet.OLEDB.4.0 A Jet-adatbázisfájl teljes elérési útja
ODBC-adatforrás Microsoft OLE DB-szolgáltató ODBC-hez Bármely MSDASQL ODBC-adatforrás rendszer DSN-jének beállítása
ODBC-adatforrás Microsoft OLE DB-szolgáltató ODBC-hez Bármely MSDASQL ODBC kapcsolati sztring
Fájlrendszer Microsoft OLE DB-szolgáltató indexelési szolgáltatáshoz Bármely MSIDXS Indexelési szolgáltatáskatalógus neve
Microsoft Excel-számolótábla Microsoft OLE DB Provider for Jet Bármely Microsoft.Jet.OLEDB.4.0 Az Excel-fájl teljes elérési útja Excel 5.0
IBM Db2-adatbázis Microsoft OLE DB Provider for DB2 Bármely DB2OLEDB Lásd a Microsoft OLE DB Provider for DB2 dokumentációját. A DB2-adatbázis katalógusneve

1 A csatolt kiszolgáló beállításának módja arra kényszeríti a csatolt kiszolgáló nevét, hogy azonos legyen az SQL Server távoli példányának hálózati nevével. Használja a @datasrc a kiszolgáló megadásához.

2 "Bármely" azt jelzi, hogy a terméknév bármi lehet.

Az SQL Server natív ügyfél OLE DB-szolgáltatója az SQL Serverhez használt szolgáltató, ha nincs megadva szolgáltatónév, vagy ha az SQL Server terméknévként van megadva. Még akkor is, ha megadja a korábbi szolgáltatónevet, az SQLOLEDB-t, ha a katalógusban marad, az SQLNCLI-ra változik.

A @datasrc, @location, @provstrés @catalog paraméterek azonosítják azt az adatbázist vagy adatbázist, amelyhez a csatolt kiszolgáló mutat. Ha ezen paraméterek bármelyike NULL, a megfelelő OLE DB inicializálási tulajdonság nincs beállítva.

Fürtözött környezetben, amikor olyan fájlneveket ad meg, amely az OLE DB-adatforrásra mutat, használja az univerzális elnevezési konvenció nevét (UNC) vagy egy megosztott meghajtót a hely megadásához.

A tárolt eljárás sp_addlinkedserver nem hajtható végre felhasználó által megadott tranzakción belül.

Fontos

A felügyelt Azure SQL-példány jelenleg csak az SQL Servert, az SQL Database-t és más felügyelt SQL-példányokat támogatja távoli adatforrásként.

Fontos

Ha egy csatolt kiszolgáló sp_addlinkedserverhasználatával jön létre, a rendszer az összes helyi bejelentkezéshez hozzáad egy alapértelmezett önleképezést. Nem SQL Server-szolgáltatók esetén előfordulhat, hogy a hitelesített SQL Server-bejelentkezések hozzáférhetnek a szolgáltatóhoz az SQL Server szolgáltatásfiókja alatt. A rendszergazdáknak érdemes megfontolni a sp_droplinkedsrvlogin <linkedserver_name>, NULL használatát a globális leképezés eltávolításához.

Engedélyek

A sp_addlinkedserver utasításhoz ALTER ANY LINKED SERVER engedély szükséges. (Az SQL Server Management Studio Új csatolt kiszolgáló párbeszédpanel úgy van implementálva, hogy a rendszer a sysadmin rögzített kiszolgálói szerepkör tagságát igényli.)

Példák

Egy. A Microsoft SQL Server OLE DB-szolgáltató használata

Az alábbi példa egy SEATTLESalesnevű csatolt kiszolgálót hoz létre. A terméknév SQL Server, és a rendszer nem használ szolgáltatónevet.

USE master;
GO

EXECUTE sp_addlinkedserver N'SEATTLESales', N'SQL Server';
GO

Az alábbi példa egy csatolt kiszolgálót S1_instance1 hoz létre az SQL Server egy példányán az SQL Server OLE DB illesztő 18-at és korábbi verzióit használva.

EXECUTE sp_addlinkedserver
    @server = N'S1_instance1',
    @srvproduct = N'',
    @provider = N'MSOLEDBSQL',
    @datasrc = N'S1\instance1';

A következő példa létrehozza a linkelt szervert S1_instance1 , de az SQL Server 2025 (17.x) Microsoft OLE DB Driver Version 19-et használja, a következő encrypt=optional paraméterrel:

EXECUTE sp_addlinkedserver
    @server = N'S1_instance1',
    @srvproduct = N'',
    @provider = N'MSOLEDBSQL',
    @provstr = N'encrypt=optional',
    @datasrc = N'S1\instance1';

A következő példa a Microsoft OLE DB Driver Version 19 segítségével hozza létre a kapcsolt szervert S1_instance1 az SQL Server 2025 (17.x) verzióban, a paraméterrel encrypt=mandatory . Ehhez a beállításhoz érvényes tanúsítvány szükséges, az önaláírt tanúsítvány nem fogadható el.

EXECUTE sp_addlinkedserver
    @server = N'S1_instance1',
    @srvproduct = N'',
    @provider = N'MSOLEDBSQL',
    @provstr = N'encrypt=mandatory',
    @datasrc = N'S1\instance1';

A következő példa hozza létre a kapcsolt szervert S1_instance1 a Microsoft OLE DB Driver Version 19 használatával az SQL Server 2025 (17.x) rendszerében, encrypt=mandatory és trustservercertificate=yes. Mivel a megbízhatósági kiszolgáló tanúsítványa be van állítva yes, a rendszer elfogadja az önaláírt tanúsítványokat.

EXECUTE sp_addlinkedserver
    @server = N'S1_instance1',
    @srvproduct = N'',
    @provider = N'MSOLEDBSQL',
    @provstr = N'encrypt=mandatory;trustservercertificate=yes',
    @datasrc = N'S1\instance1';

A következő példa hozza létre a linkelt szervert S1_instance1 a Microsoft OLE DB Driver Version 19 SQL Server 2025 (17.x) használatával, encrypt=strict a TDS 8.0 támogatással.

EXECUTE sp_addlinkedserver
    @server = N'S1_instance1',
    @srvproduct = N'',
    @provider = N'MSOLEDBSQL',
    @provstr = N'encrypt=strict',
    @datasrc = N'S1\instance1';

Az alábbi példa létrehoz egy csatolt kiszolgálót S1_instance1 az SQL Server egy példányán az SQL Server natív ügyféloldali OLE DB-szolgáltatójának használatával.

Fontos

Az SQL Server natív ügyféloldali OLE DB-szolgáltatója (SQLNCLI) elavult marad, és nem ajánlott új fejlesztési munkákhoz használni. Ehelyett használja az SQL Server (MSOLEDBSQL) új Microsoft OLE DB-illesztőjét, amely a legújabb kiszolgálófunkciókkal frissül.

EXECUTE sp_addlinkedserver
    @server = N'S1_instance1',
    @srvproduct = N'',
    @provider = N'SQLNCLI',
    @datasrc = N'S1\instance1';

B. A Microsoft Accesshez készült Microsoft OLE DB-szolgáltató használata

A Microsoft.Jet.OLEDB.4.0 szolgáltató a 2002–2003-at használó Microsoft Access-adatbázisokhoz csatlakozik. Az alábbi példa egy SEATTLE Mktgnevű csatolt kiszolgálót hoz létre.

Jegyzet

Ez a példa feltételezi, hogy a Microsoft Access és a minta Northwind adatbázis is telepítve van, és hogy a Northwind adatbázis a C:\Msoffice\Access\Samples fájlban található ugyanazon a kiszolgálón, mint az SQL Server-példány.

EXECUTE sp_addlinkedserver
    @server = N'SEATTLE Mktg',
    @provider = N'Microsoft.Jet.OLEDB.4.0',
    @srvproduct = N'OLE DB Provider for Jet',
    @datasrc = N'C:\MSOffice\Access\Samples\Northwind.mdb';
GO

C. Az ODBC-hez készült Microsoft OLE DB-szolgáltató használata a datasrc paraméterrel

Az alábbi példa létrehoz egy SEATTLE Payroll nevű csatolt kiszolgálót, amely a Microsoft OLE DB Provider for ODBC (MSDASQL) és a @datasrc paramétert használja.

Jegyzet

A hivatkozott kiszolgáló használata előtt a megadott ODBC-adatforrásnevet rendszerDSN-ként kell definiálni a kiszolgálón.

EXECUTE sp_addlinkedserver
    @server = N'SEATTLE Payroll',
    @srvproduct = N'',
    @provider = N'MSDASQL',
    @datasrc = N'LocalServer';
GO

D. Az Excelhez készült Microsoft OLE DB Provider használata

Ha egy csatolt kiszolgálódefiníciót szeretne létrehozni a Microsoft OLE DB Provider for Jet használatával egy Excel-számolótábla 1997–2003-ban való eléréséhez, először hozzon létre egy elnevezett tartományt az Excelben a kijelölendő Excel-munkalap oszlopainak és sorainak megadásával. A tartomány nevére ezután hivatkozhat táblanévként egy elosztott lekérdezésben.

EXECUTE sp_addlinkedserver 'ExcelSource',
   'Jet 4.0',
   'Microsoft.Jet.OLEDB.4.0',
   'c:\MyData\DistExcl.xls',
   NULL,
   'Excel 5.0';
GO

Ha Excel-számolótáblából szeretne adatokat elérni, társítson egy cellatartományt egy névvel. Az alábbi lekérdezéssel a megadott elnevezett tartományt táblaként SalesData elérni a korábban beállított csatolt kiszolgáló használatával.

SELECT *
FROM ExcelSource...SalesData;
GO

Ha az SQL Server egy távoli megosztáshoz hozzáférő tartományi fiók alatt fut, a leképezett meghajtó helyett UNC elérési út használható.

EXECUTE sp_addlinkedserver 'ExcelShare',
   'Jet 4.0',
   'Microsoft.Jet.OLEDB.4.0',
   '\\MyServer\MyShare\Spreadsheets\DistExcl.xls',
   NULL,
   'Excel 5.0';

E. Szövegfájl elérése a Microsoft OLE DB Provider for Jet használatával

Az alábbi példa egy csatolt kiszolgálót hoz létre a szövegfájlok közvetlen eléréséhez anélkül, hogy az Access .mdb fájlban táblákként csatolja a fájlokat. A szolgáltató Microsoft.Jet.OLEDB.4.0, a szolgáltatói sztring pedig Text.

Az adatforrás a szövegfájlokat tartalmazó könyvtár teljes elérési útja. A szövegfájlok szerkezetét leíró schema.ini fájlnak ugyanabban a könyvtárban kell lennie, mint a szövegfájloknak. A schema.ini-fájlok létrehozásáról a Jet Database Engine dokumentációjában talál további információt.

Először hozzon létre egy csatolt kiszolgálót.

EXECUTE sp_addlinkedserver txtsrv, N'Jet 4.0',
   N'Microsoft.Jet.OLEDB.4.0',
   N'c:\data\distqry',
   NULL,
   N'Text';

Bejelentkezési leképezések beállítása.

EXECUTE sp_addlinkedsrvlogin txtsrv, FALSE, Admin, NULL;

Sorolja fel a csatolt kiszolgálón lévő táblákat.

EXECUTE sp_tables_ex txtsrv;

Az egyik tábla lekérdezése, ebben az esetben file1#txt, egy négyrészes név használatával.

SELECT * FROM txtsrv...[file1#txt];

F. A Microsoft OLE DB Provider for DB2 használata

Az alábbi példa létrehoz egy DB2 nevű csatolt kiszolgálót, amely a Microsoft OLE DB Provider for DB2-t használja.

EXECUTE sp_addlinkedserver
    @server = N'DB2',
    @srvproduct = N'Microsoft OLE DB Provider for DB2',
    @catalog = N'DB2',
    @provider = N'DB2OLEDB',
    @provstr = N'Initial Catalog=pubs;
       Data Source=DB2;
       HostCCSID=1252;
       Network Address=XYZ;
       Network Port=50000;
       Package Collection=admin;
       Default Schema=admin;';

G. Azure SQL-adatbázis hozzáadása csatolt kiszolgálóként elosztott lekérdezésekkel való használatra felhőbeli és helyszíni adatbázisokon

Hozzáadhat egy Azure SQL-adatbázist csatolt kiszolgálóként, majd használhatja a helyszíni és a felhőbeli adatbázisokra kiterjedő elosztott lekérdezésekkel. Ez a helyszíni vállalati hálózatokra és az Azure-felhőre kiterjedő hibrid adatbázis-megoldások összetevője.

Az SQL Server box terméke tartalmazza az elosztott lekérdezési funkciót, amely lehetővé teszi lekérdezések írását a helyi adatforrásokból származó adatok és a távoli forrásokból származó adatok (beleértve a nem SQL Server-adatforrásokból származó adatokat) társított kiszolgálókként definiált kombinálásához. Minden Azure SQL-adatbázis (kivéve a logikai kiszolgáló master adatbázisát) hozzáadható önálló csatolt kiszolgálóként, majd közvetlenül az adatbázis-alkalmazásokban bármely más adatbázisként használható.

Az Azure SQL Database használatának előnyei közé tartozik a kezelhetőség, a magas rendelkezésre állás, a méretezhetőség, a jól ismert fejlesztési modell és a relációs adatmodell használata. Az adatbázis-alkalmazás követelményei határozzák meg, hogyan használná az Azure SQL Database-t a felhőben. Az összes adatot egyszerre áthelyezheti az Azure SQL Database-be, vagy fokozatosan áthelyezhet néhány adatot, miközben a fennmaradó adatokat a helyszínen tartja. Egy ilyen hibrid adatbázis-alkalmazás esetében az Azure SQL Database mostantól csatolt kiszolgálóként is hozzáadható, és az adatbázis-alkalmazás elosztott lekérdezéseket adhat ki az Azure SQL Database-ből és a helyszíni adatforrásokból származó adatok kombinálásához.

Íme egy példa, amely bemutatja, hogyan csatlakozhat egy Azure SQL-adatbázishoz elosztott lekérdezések használatával.

Először vegyen fel egy Azure SQL-adatbázist csatolt kiszolgálóként a natív SQL Server-ügyfél használatával.

EXECUTE sp_addlinkedserver
    @server = 'LinkedServerName',
    @srvproduct = '',
    @provider = 'sqlncli',
    @datasrc = 'ServerName.database.windows.net',
    @location = '',
    @provstr = '',
    @catalog = 'DatabaseName';

Hitelesítő adatok és beállítások hozzáadása ehhez a csatolt kiszolgálóhoz. Cserélje le a <password> érvényes jelszóra.

EXECUTE sp_addlinkedsrvlogin
    @rmtsrvname = 'LinkedServerName',
    @useself = 'false',
    @rmtuser = 'LoginName',
    @rmtpassword = '<password>';

EXECUTE sp_serveroption 'LinkedServerName', 'rpc out', true;

Most a csatolt kiszolgálóval négyrészes névvel hajthat végre lekérdezéseket, akár új tábla létrehozásához és adatok beszúrásához is.

EXECUTE ('CREATE TABLE SchemaName.TableName(col1 int not null CONSTRAINT PK_col1 PRIMARY KEY CLUSTERED (col1) )') AT LinkedServerName;

EXECUTE ('INSERT INTO SchemaName.TableName VALUES(1),(2),(3)') AT LinkedServerName;

Az adatok lekérdezése négyrészes nevek használatával:

SELECT * FROM LinkedServerName.DatabaseName.SchemaName.TableName;

H. Felügyelt Azure SQL-példányhoz társított kiszolgáló létrehozása felügyelt identitáshitelesítéssel

Jegyzet

Microsoft Entra ID korábban Azure Active Directory (Azure AD) néven ismert.

Ha felügyelt identitáshitelesítéssel rendelkező csatolt kiszolgálót szeretne létrehozni, hajtsa végre a következő T-SQL-t, és cserélje le a <managed_instance> saját felügyelt SQL-példányra. A hitelesítési módszer ActiveDirectoryMSI használ a @provstr paraméterben. Fontolja meg az @locallogin = NULL használatát az összes helyi bejelentkezés engedélyezéséhez.

EXECUTE master.dbo.sp_addlinkedserver
    @server = N'MyLinkedServer',
    @srvproduct = N'',
    @provider = N'MSOLEDBSQL',
    @provstr = N'Server=<mi_name>.<dns_zone>.database.windows.net,1433;Authentication=ActiveDirectoryMSI;';

EXECUTE master.dbo.sp_addlinkedsrvlogin
    @rmtsrvname = N'MyLinkedServer',
    @useself = N'False',
    @locallogin = N'user1@contoso.com';

A felügyelt identitásokkal való hitelesítés engedélyezéséhez a felügyelt Azure SQL-példányhoz rendelt felügyelt identitást bejelentkezésként hozzá kell adni a távoli felügyelt példányhoz. A rendszer által hozzárendelt és a felhasználó által hozzárendelt felügyelt identitások egyaránt támogatottak.

Ha egy elsődleges identitás be van állítva, akkor azt használja a rendszer, ellenkező esetben a rendszer által hozzárendelt felügyelt identitást használja. Ha a felügyelt identitást ugyanazzal a névvel hozza létre újra, a távoli példányon a bejelentkezést is újra létre kell hozni, mert az új felügyelt identitás alkalmazásazonosítója és az SQL Managed Instance szolgáltatásnév biztonsági azonosítója már nem egyezik. A két érték egyezésének ellenőrzéséhez konvertálja a SID-et alkalmazásazonosítóvá a következő lekérdezéssel.

SELECT CONVERT (UNIQUEIDENTIFIER, sid) AS MSEntraApplicationID
FROM sys.server_principals
WHERE name = '<managed_instance_name>';

Én. Felügyelt SQL-példányhoz társított kiszolgáló létrehozása átmenő Microsoft Entra-hitelesítéssel

Ha átmenő hitelesítéssel szeretne társított kiszolgálót létrehozni, hajtsa végre a következő T-SQL-t, és cserélje le a <managed_instance> saját felügyelt SQL-példánykiszolgálóra:

EXECUTE master.dbo.sp_addlinkedserver
    @server = N'MyLinkedServer',
    @srvproduct = N'',
    @provider = N'MSOLEDBSQL',
    @datasrc = N'<mi_name>.<dns_zone>.database.windows.net,1433';

Az átmenő hitelesítéssel a rendszer a helyi bejelentkezés biztonsági környezetét a távoli példányra továbbítja. Az átmenő hitelesítéshez a Microsoft Entra-tagot bejelentkezésként kell hozzáadni a helyi és a távoli Felügyelt Azure SQL-példányon is. Mindkét felügyelt példánynak egy kiszolgáló megbízhatósági csoportjában kell lennie. A követelmények teljesülése esetén a felhasználó bejelentkezhet egy helyi példányba, és lekérdezheti a távoli példányt a csatolt kiszolgálóobjektumon keresztül.

J. A Microsoft SQL Server OLE DB Provider 19-es verziójának használata

Az alábbi példa létrehoz egy társított kiszolgálótSQLSales, amely egy példánynévvel LABSQL2025ellátott SQL2025 SQL Servert céloz meg az OLE DB 19-es verziójával, a titkosítás le van tiltva.

EXECUTE sp_addlinkedserver
    @server = N'SQLSales',
    @srvproduct = N'',
    @provider = N'MSOLEDBSQL19',
    @datasrc = N'LABSQL2025\SQL2025',
    @provstr = N'Encrypt=No;';

További információ: Microsoft OLE DB Driver for SQL Server (MSOLEDBSQL) (ajánlott).