SQLShack (Română)

Legate de servere permit de a depune o declarație T-SQL pe o instanță de SQL Server, care returnează date din alte instanțe de SQL Server. Un server legat permite alăturarea datelor din mai multe instanțe SQL Server folosind o singură instrucțiune T-SQL atunci când există date pe mai multe baze de date pe diferite instanțe SQL. Prin utilizarea unui server conectat pentru a prelua date din mai multe instanțe SQL, singurul lucru care ar trebui făcut este să vă conectați la o instanță SQL.,

există două moduri de configurare a serverului conectat în SSMS. O modalitate este prin utilizarea sistemului sp_addlinkedserver procedură stocată și un alt este prin utilizarea SQL Server Management Studio (SSMS) interfață GUI.

în acest articol va fi explicat modul de configurare a unui server conectat folosind o sursă de date SQL Server. Mai multe informații despre alte surse de date pot fi găsite pe acest link.,

Pentru a vedea toate create legate de servere în SSMS, sub Obiect Explorer, ales Server-ul de Obiecte dosar și extinde Legate de Servere dosar:

Pentru a crea un server legat în SSMS, click dreapta pe cele Legate de Servere dosar și din meniul contextual selectați Noul Server Legat opțiune:

Noul Server Legat de dialog apare:

În această casetă de dialog, numele unui server legat și de tip server trebuie să fie identificate., Serverele conectate pot fi definite pentru diferite tipuri de surse de date dacă este ales butonul radio altă sursă de date. Pentru scopul acestui articol, SQL Server radio butonul de sub Server de tip secțiune va fi ales și în server Legat caseta de text, un nume de server vor fi înscrise:

Dacă SQL Server tip este ales pentru a configura un Server SQL server legat, numele specificat în server Legat caseta de text trebuie să fie numele de SQL Server de la distanță.,

dacă o instanță SQL Server este o instanță implicită, tastați numele computerului care găzduiește instanța SQL Server (de exemplu, WSERVER2012). Dacă serverul SQL este o instanță numită, tastați numele computerului și numele instanței separate prin slash (de exemplu, WSERVER2012\SQLEXPRESS).,

în caz Contrar următoarea eroare poate apărea atunci când butonul este apăsat:

Pentru a seta modul în care un utilizator va autentifica la WSERVER2012\SQLEXPRESS exemplu, sub Selectați o secțiune a paginii în colțul din stânga sus al Nou Server Legat de dialog, selectați element de Securitate:

Aici, moduri diferite de a autentifica legate de server poate fi setat.

sub conectarea serverului Local la mapările de conectare la serverul de la distanță, pot fi setate două moduri de conectare locală la o autentificare la distanță., O modalitate este de a asocia o autentificare locală cu o autentificare la distanță și o altă modalitate este de a se impersona.

autentificare locală

în câmpul autentificare locală, vor fi listate Toate autentificările locale. Locale de conectare poate fi o Autentificare SQL Server local de conectare:

Sau un Windows Autentificare login:

Acum, atunci când faceți clic pe butonul OK de pe Noul Server Legat de dialog, următorul mesaj de eroare va apărea:

conectare operatori ar trebui să fie interpretată sau au o autentificare de la distanță numele.,

vezi imaginea de mai jos:

Acest lucru se întâmplă deoarece caseta de selectare impersonare nu este bifată.

impersonați

caseta de selectare impersonați când este bifată trece acreditările de conectare locale la serverul conectat., Pentru Autentificarea SQL Server, aceleași date de conectare cu exact acreditările trebuie să existe pe server legat, în caz contrar, atunci când este conectat la server cu Autentificare SQL Server, lista de baze de date în Cataloagele folder poate arata astfel:

Pentru Windows login, autentificare trebuie să fie o adresă validă de conectare pe server legat. Pentru a utiliza personificarea, trebuie setată delegarea între serverul local și serverul conectat.

să creăm un server conectat utilizând login-ul Windows local., De la Locale Conectare casetă combo, alege locale de autentificare Windows și verificați juca rolul de selectare și apăsați butonul OK:

Sub Cataloage folder, toate bazele de date care se află pe server legat va fi enumerate:

Utilizator de la Distanță

utilizatorul de La distanță opțiune permite utilizatorilor de la nivel local SQL server pentru a se conecta la cele legate de SQL server, chiar dacă acreditările lor nu sunt prezente pe serverul de la distanță utilizând acreditările de utilizator care exista pe serverul de la distanță., Practic, permite conectărilor locale să se conecteze la un server la distanță ca o autentificare diferită care trebuie să existe pe un server la distanță.

parolă la distanță

specificați parola utilizatorului la distanță.

Din lista derulantă conectare locală, alegeți o autentificare locală care ar trebui să fie mapată la o autentificare la distanță. În câmpul Utilizator de la distanță, introduceți numele utilizatorului de la distanță care există pe serverul de la distanță și în parola de la distanță depusă, introduceți o parolă a acelui utilizator de la distanță.,e7″>

în Plus, pe Server Legat de dialog, acesta poate fi identificat modul de conectare care nu sunt stabilite în Local server de conectare la server de la distanță conectare mapările lista se va conecta la server legat, pentru că există patru opțiuni care pot fi folosite și acestea sunt situate sub o autentificare nu sunt definite în lista de mai sus, conexiuni va secțiune:

Nu fi făcut

Dacă acest buton radio este ales, utilizatorii care nu sunt identificate în Local server de conectare la server de la distanță conectare mapările de listă nu poate stabili conexiunea la server legat.,

De exemplu, dacă loga cu alt cont (de exemplu, Ben), care nu a stabilit în autentificare lista de cartografiere lista de baze de date în Cataloagele folder va arata astfel:

Dacă ai încerca să execute un server legat de interogare:

1
2
3

SELECT * FROM .AdventureWorks2014.Resurse umane.,Angajatul e

următorul rezultat va apărea:

Msg 7416, Nivel 16, Stat 1, Linia 1
Acces la serverul de la distanță este refuzat pentru că nu autentificare-mapping există.

se face fără a utiliza un context de securitate

opțiunea Se face fără a utiliza un context de securitate este utilizată pentru conectarea la surse de date care nu necesită nicio autentificare, de exemplu ca un fișier text., Când această opțiune este selectată pentru conectarea la un server conectat, va avea același efect ca și selectarea opțiunii” Nu se face”.

Dacă ai încerca să execute un server legat de interogare:

1
2
3

SELECT * FROM .AdventureWorks2014.Resurse umane.,Employee e

The following message e may appear:

OLE DB provider „SQLNCLI11” for linked server „WSERVER2012\SQLEXPRESS” returned message „Invalid authorization specification”.
Msg 7399, Level 16, State 1, Line 1
The OLE DB provider „SQLNCLI11” for linked server „WSERVER2012\SQLEXPRESS” reported an error. Authentication failed.,
Msg 7303, Nivel 16, Stat 1, Linia 1,

nu Poate inițializa sursa de date obiect OLE DB provider „SQLNCLI11” pentru server legat „WSERVER2012\SQLEXPRESS”.

se face folosind contextul de securitate curent al autentificării

dacă această opțiune este aleasă, va trece contextul de securitate curent al autentificării locale la autentificarea la distanță. Dacă se utilizează autentificarea Windows, acreditările windows vor fi utilizate pentru a vă conecta la un server SQL la distanță. Dacă se utilizează autentificarea SQL Server, atunci acreditările de conectare locale vor fi transmise serverului SQL la distanță., Rețineți, pentru a stabili o conexiune la server de la distanță cu succes, atunci utilizatorul cu exact aceleași acreditări pe care trebuie să existe pe server de la distanță în caz contrar, atunci când executa un server legat de interogare:

1
2
3

SELECT * FROM .AdventureWorks2014.Resurse umane.,Angajatul e

va apare următorul mesaj:

Msg 18456, Nivel 14, Stat 1, Linia 1
Conectare a eșuat pentru utilizator „Ben”.

se face folosind acest context de securitate

a patra opțiune Sub pentru o autentificare nu este definit în lista de mai sus, conexiuni va secțiune se face folosind acest context de securitate., În câmpurile conectare la distanță și cu parolă, Introduceți datele de autentificare ale autentificării SQL Server care există pe un server la distanță, altfel poate apărea următoarea eroare:

ultimul element din meniul Selectare pagină este elementul Opțiuni Server. Când selectați această opțiune, va fi afișată următoarea fereastră:

aici pot fi văzute sau setate opțiuni suplimentare pentru serverul conectat.

compatibil cu colaționarea

prima opțiune este opțiunea compatibilă cu colaționarea., Această opțiune este utilizată pentru a identifica dacă serverul conectat are aceeași colaționare ca serverul local. Această opțiune ar trebui să fie setată la True numai dacă se știe că serverul conectat are aceeași colaționare ca cea locală, altfel ar trebui să fie setat la False (implicit).

acces la date

această opțiune este utilizată pentru a permite/refuza accesul la datele serverului conectat. Dacă această opțiune este setată la False, accesul la distanță va fi refuzat. Această opțiune este utilă pentru a dezactiva temporar accesul la un server la distanță., Următorul mesaj va apărea atunci când execuți un server legat de interogare și această opțiune este setată la False:

Msg 7411, Nivel 16, Stat 1, Linia 1
Server ‘WSERVER2012\SQLEXPRESS’ nu este configurat pentru ACCESUL la DATE.

în mod implicit, opțiunea este setată la True

RPC și RCP Out

acest RCP (Remote Procedure Call) este utilizat pentru a permite accesul la procedurile de la distanță să fie apelat de pe serverul conectat sau să fie apelat la serverul conectat.,

Dacă aceste opțiuni sunt False, următorul mesaj de eroare va apărea atunci când unele proceduri de server legat sunt numite:

Msg 7411, Nivel 16, Stat 1, Linia 4
Server ‘WSERVER2012\SQLEXPRESS’ nu este configurat pentru RPC.,

în mod implicit, valoare False sunt stabilite pentru RPC și RCP opțiuni

Utilizare de la Distanță Colaționare

atunci Când această opțiune este setată la True, colectarea de la distanță coloane va fi folosit și de colectare specificate în Nume de Colaționare a depus va fi folosit pentru sursă de date care nu sunt date SQL Server sursă, dar dacă opțiunea este setată la False atunci colaționare pentru serverul local va fi folosit. În mod implicit, este setat la False.,

nume de colaționare

Dacă utilizați colaționarea la distanță setată la True, această opțiune este utilizată pentru a specifica numele de colaționare al serverului conectat pentru sursa de date care nu este sursa de date SQL Server. Când alegeți un nume de colaționare, acesta trebuie să fie o colaționare pe care SQL Server o acceptă.

Timeout conexiune

această opțiune este utilizată pentru a seta timpul maxim pe care serverul local ar trebui să îl aștepte pentru a obține o conexiune la instanța serverului SQL server conectat. Dacă este setat 0 (zero), atunci se utilizează opțiunea server timeout de conectare la distanță. În mod implicit, 10 secunde este setat pentru această opțiune., Notă, valoarea implicită pentru SQL Server 2008 este de 20 de secunde.

Timeout interogare

această opțiune este utilizată pentru a seta cât timp, în câteva secunde, un proces la distanță poate dura înainte de expirarea timpului. Valoarea implicită este de 600 secunde (10 minute). Pentru a dezactiva timeout interogare pune 0 (zero) în acest câmp și interogarea va aștepta până când este finalizată.

distribuitor

În această opțiune, se poate specifica dacă serverul conectat participă la replicare ca editor de distribuție.,

distribuitorul este o instanță de bază de date, care acționează ca un magazin pentru datele specifice de replicare asociate cu unul sau mai mulți editori

Publisher

În această opțiune, se poate seta dacă serverul conectat să fie un editor de replicare sau nu. Dacă este adevărat, serverul conectat este un editor. În caz contrar, nu este.

editorul este o instanță a bazei de date, care pune datele la dispoziția altor locații prin replicare.

abonat

În această opțiune, se poate specifica dacă serverul conectat este un abonat de replicare sau nu.,un abonat este o instanță de bază de date, care primește date replicate.mai multe informații despre distribuitor, Editor, abonat pot fi găsite pe pagina de prezentare a modelului de publicare a replicării.

Lazy schema validation

această opțiune verifică modificările schemei care au avut loc de la compilare în tabelele de la distanță. Dacă această opțiune este setată la False (stare implicită), SQL Server verifică modificările înainte de executarea unei interogări și dacă există unele modificări, recompilează interogarea., Dacă validarea schemei leneșe este setată la True, o schemă de întârziere SQL Server verifică tabelele de la Distanță până la executarea interogării.această opțiune este utilizată pentru a proteja acțiunile unei proceduri server-to-server printr-o tranzacție Microsoft Distributed Transaction Coordinator (MS DTC). Dacă această opțiune este setată la true calling, o procedură stocată la distanță începe o tranzacție distribuită și înrolează tranzacția cu MS DTC.

acum, când totul este setat, faceți clic pe butonul OK din dialogul noului server conectat., Un server conectat nou creat va apărea sub folderul serverului conectat.,rks în mod corespunzător, du-te click-dreapta pe acel server legat și alegeți Conexiunea de Testare:

Dacă o conexiune cu server legat este stabilită cu succes, următoarele informații casetă de mesaj va apărea:

în caz Contrar, un mesaj de eroare va fi afișat, care prezinta o problemă care împiedică conexiune să fie stabilit cu succes:

Interogarea datelor folosind un server legat

Interogarea datelor folosind legate de server este un pic diferit atunci interogarea de date din SQL Server local., În interogările normale, de obicei, se utilizează două notații ., de exemplu Umanresurse.Angajat:

1
2
3

SELECT * FROM Umane.Angajatul e

atunci Când interogarea o masă la un server legat, cea de-a patra parte notație este folosită LinkedServer.Baza de date.Schema.Nume obiect., Pentru a obține datele din tabelul Salariat care este situat într-o bază de date de pe server legat, interogarea codul va arata astfel:

1
2
3

SELECT * FROM …,

Ștergerea unui server legat

Pentru a șterge un server legat, sub Legată Servere folder, click dreapta pe server legat și din meniul contextual alegem comanda Delete:

Acest lucru va deschide Șterge Obiect de dialog:

Click pe butonul OK și din caseta de mesaj, alege butonul Yes:

Dacă totul merge bine legat de server va fi eliminat din Legată Servere folder., Server legate de server folosind Transact-SQL

  • Cum pentru a interoga date Excel folosind SQL Server legate de servere
  • Cum să configurați un Server Legat folosind ODBC driver
  • Cum de a crea un server legat la un Azure SQL baze de date
    • Autor
    • Mesajele Recente
    Marko aka „Zivko” este un software senior analist la Nis, Serbia, concentrându-se pe SQL Server si MySQL precum și client tehnologii, cum ar fi SSMS, Visual Studio, și VSCode., El are o vastă experiență în asigurarea calității, escaladarea/rezolvarea problemelor și evanghelizarea produselor.
    este un autor prolific de conținut autoritar legat de SQL Server, inclusiv o serie de articole „platinum” (top 1% în ceea ce privește popularitatea și implicarea). Scrierile sale acoperă o serie de subiecte pe MySQL și SQL Server, inclusiv servere la distanță/conectate, import/export, LocalDB, SSMS și multe altele.
    În timpul său part-time, Zivko îi place baschetul, foosball (fotbal de masă) și muzica rock.,
    Vezi mai multe despre Marko la LinkedIn
    Vezi toate posturile de Marko Zivkovic

    Ultimele posturi de Marko Zivkovic (vezi toate)
    • Cum să se conecteze la serverul MySQL folosind SSL pe Ubuntu – aprilie 28, 2020
    • Cum pentru a instala MySQL pe Ubuntu – 10 Martie, în 2020,
    • Folosind chei SSH pentru a vă conecta la un Server MySQL – 28 noiembrie 2019

    Share

    Lasă un răspuns

    Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *