Linked  server ها امکان  اتصال به منابع داده خارجی را فراهم آورده ، به شما اجازه دسترسی به داده و اجرای  procedure ها در SQL  Serverی غیر از  Instanceی که در حال اجراست را می دهد.
 علاوه بر این linked  serverها امکان  دسترسی به هر نوع منبع داده ای که قابل تطبیق با ODBC  باشد از قبیل Oracle,Excel,Flat  File و ... را می  دهد که همین امکان باعث می شود در بسیاری مواقع linked  serverها گزینه  مناسبی در DTS ها و یا BCP ها بجای منابع خارجی  باشند.
 در شماره اول این مقاله  نگاهی بر اتصال ۲ سرور SQL  بیکدیگر به صورت linkedserver خواهیم داشت و در بخش های بعدی اتصال به سایر منابع داده ای را  بررسی می کنیم.
 جهت گرفتن نتیجه بهتر از این  مثال شما می بایستی با ابزارهای اتصال SQL  Serverclient  و تنظیم کردن و اعطای مجوز به Login  ها و UserId ها آشنا باشید.
 تمام این مثال ها با  SQL  Server 2000 ایجاد شده  است.
 Linked  Server های  SQLی
 link کردن ۲ سرور یک راه ارتباطی بین آن دو ایجاد می  کند:
   برای  دیدن فایل بزرگتر کلیک کنید.
   بنابر این اگر ما با سرور  خود (MiyajimaXP) ارتباط برقرار کنیم، و Fuji بعنوان linked  server ما باشد، بدون  ارتباط مستقیم با Fuji  می توانیم از داده ها Query بگیریم و یا procedure هایی را روی Fuji اجرا کنیم. البته ارتباط برقرار شده دو طرفه نیست و از سرور  Fuji هم یک Linked  server  به  MiyajimaXP نخواهیم داشت.
  تنظیم یک  Linked  Server  اولیه
 قدم اول در تنظیم یک  linked  server اطمینان از  وجود راه ارتباطی بین دو سرور است . سپس باید سرور linked(و یا بعبارتیremote) را به سرور Local معرفی کنیم.دستور SQL مربوط به تنظیم یک  linked  server  به شکل زیر  است:
 SP_addlinkedserver 'Fuji',N'SQL  Server’
 در این مثال من از نام  مستعار برای معرفی سرور استفاده کرده ام که بجهت سهولت در یادگیری بوده که در آینده  نگاهی به نامهای منطقی سرور ها خواهیم داشت.
 پس از اجرای دستور فوق  بایستی سطح دسترسی بین دو سرور و اینکه چه کاربری با چه user/passی باید به linked  server بتواند  Log  in کند، مشخص  شود.
 در حالت پیش فرض هر  Loginی که در هر دو سرور موجود باشد مجاز به اجرای query ها در طول این ارتباط است.در غیر اینصورت کاربر با پیغام  "Loginfailed" مواجه می شود.پس از همسان بودن user و مجوزها در دو سرور اطمینان حاصل کنید تا دردسر برای admin سرورها در حالی که شما نیستید ایجاد نشود!
  تنظیمات  Login های  Linked  server  ها
 موارد زیادی برای ایجاد  امنیت linked  server ها وجود دارد.  یکی از آنها این است که هر ارتباطی که بین سرورها برقرار می شود از یک login معتبر در سرور remote استفاده کرده است. با این دستور می توان همان login  ID به  Fuji نیز دسترسی یافته یا نه:
  sp_addlinkedsrvlogin      @rmtsrvname = FUJI, @useself =  false, @locallogin =  NULL, @rmtuser = fuji_PUBS, @rmtpassword =fuji_PUBS
 این دستور تمامLogin  های  Local را به "fuji_PUBS" login در سرور  remote مرتبط می کند، در نتیجه تمام دسترسی ها به linked  server تحت مجوزهای  اعطا شده به fuji_PUBS موجود در سرور remote می شود.با استفاده از این روش نیازی به همسان سازی user/pass کابران با سرور linked ندارد اما اگر pass   مربوط به fuji_PUBS در linked  server تغییر کند،  login   مربوط به linked  server را دوباره  تنظیم کنید.
  تست برقراری  ارتباط
 ساده ترین راه برای تست  برقراری ارتباط اجرای quey ساده زیر است.خط اول مشخصات اتصال شما در سرور محلی خودتان و خط  دوم مربوط به اطلاعات اتصالی سرور remote می باشد:
 
select @@serverName, user_name(), db_name(), @@spidselect * fromopenquery (FUJI, 'select @@serverName, user_name(), db_name(), @@spid') در این مثال ساده شما می  توانید با طرز نوشتن query بر روی linked  server نیز آشنا  شوید. در ادامه مطالب بیشتری نیز می آموزید.
  مطالبی در  موردLogin   ها
 از هم اکنون fuji_PUBS  login  ،Login   پیش فرض برای تمام کاربرانی است که به  linked  server دسترسی می  یابند. این کاربران تمام مجوزهای fuji_PUBS login بر روی سرور  remote را نیز ارث بری می کنند. البته می توان کاربران دیگری را با  Login های دیگری در سرورremote علاوه بر fuji_PUBS نیز در کنار قبلی ها تعریف کرد.این مثال یک ارتباط بین  Login هایی با نام 'Tokyo' که بر روی هر  دو سرور موجود است، ایجاد می کند:
sp_addlinkedsrvlogin@rmtsrvname = FUJI ,@useself = true , @locallogin = Tokyo , @rmtuser = Tokyo  , @rmtpassword = Tokyo  هر کاربری  که با نام Tokyo وارد شود و به linked server دسترسی پیدا کند ، می تواند با Id   خودش به linked server دسترسی داشته باشد ، در حالی که همچنان کاربران دیگر با همان  ID پیش فرض به  linked server متصل هستند.
 
  حذف  Login  ها
شما می توانید یک linked  server login را با دستور  زیر حذف کنید:
 
 sp_droplinkedsrvlogin  @rmtsrvname =FUJI,@locallogin  = Tokyo
  
حذف serverها
 اگر بخواهید  linked  server ی را حذف  کنید، توسط دستور sp_dropserver این کار میسر می شود.برای این کار login های نسبت داده شده ابتدا باید حذف شوند که آسانترین راه مشخص کردن  پارامترهای 'droplogins'  برای پروسیجر sp_dropserver است که این کار سخت را برایتان انجام می  دهد:
 sp_dropserver fuji, droplogins