SQL Server-لینک سرور-پیکربندی Linked Server-sp_addlinkedserver-sp_serveroption-احراز هویت Linked Server-Kerberos-Impersonation-Windows Authentication-SQL Authentication-اتصال توزیع‌شده

معرفی Linked Server

Linked Server قابلیتی در SQL Server است که امکان اجرای کوئری‌های توزیع‌ شده روی سرورهای خارجی را بدون انتقال دستی داده‌ها فراهم می‌کند. می‌توانید از این قابلیت برای دسترسی به:

  • دیگر نمونه‌های SQL Server
  • پایگاه‌های داده رابطه‌ای غیر SQL Server
  • منابع داده‌ای OLE DB استفاده کنید.

مزایای استفاده از Linked Server

  • یکپارچه‌سازی داده‌ها برای گزارش‌گیری و تحلیل
  • کاهش زمان و هزینه انتقال داده‌ها
  • امکان اجرای JOIN بین جداول محلی و خارجی
  • پشتیبانی از تراکنش‌های توزیع‌شده

گزینه‌های Provider

برای اتصال به هر منبع داده، ابتدا Provider مناسب را انتخاب و پیکربندی می‌کنید. مهم‌ترین گزینه‌های Provider عبارت‌اند از:

گزینهتوضیحپیش‌فرض
AllowInProcessاجرای Provider درون فرآیند SQL Server را مجاز می‌کند.false
LevelZeroOnlyمحدودیت به رابط‌های سطح ۰ (OLE DB).false
DynamicParametersپشتیبانی از پارامترهای دینامیک در کوئری‌های ارسالی.false
NestedQueriesارسال کوئری‌های تو در تو به Provider را فعال می‌کند.false
SupportsDistinctPush-Down دستور DISTINCT به سرور مقصد.false
SupportsGroupByPush-Down دستور GROUP BY به سرور مقصد.false
SupportsUnionAllارسال UNION ALL به سرور مقصد.false
SupportsOuterJoinsPush-Down انواع Outer Joins به سرور مقصد.false
SupportsOrderByPush-Down دستور ORDER BY به سرور مقصد.false

برای تنظیم این گزینه‌ها می‌توانید از دستور زیر استفاده کنید:

EXEC sp_addlinkedserver 
    @server     = N'LinkedServerName',
    @srvproduct = N'',
    @provider   = N'ProviderName',
    @datasrc    = N'DataSource';

EXEC sp_serveroption 
    @server   = N'LinkedServerName', 
    @optname  = N'AllowInProcess', 
    @optvalue = N'true';

گزینه‌های Server

پس از ایجاد Linked Server، با پروسیجر sp_serveroption این تنظیمات را برای ارتباط کنترل کنید:

  • data access
  • rpc
  • rpc out
  • use remote collation
  • collation compatible
  • collation name
  • query timeout
  • connect timeout
  • login timeout
  • packet size
  • max text repl size
  • remote proc transaction promotion

مثال تنظیم rpc out:

EXEC sp_serveroption 
    @server  = N'LinkedServerName', 
    @optname = N'rpc out', 
    @optvalue= N'true';

روش‌های احراز هویت Linked Server

انتخاب روش احراز هویت مناسب برای امنیت و کارایی ارتباط توزیع‌ شده حیاتی است. ۲ بخش اصلی عبارت‌اند از نگاشت تک‌به‌تک لاگین‌ها و تعریف رفتار برای لاگین‌های غیرتعریف‌ شده.

نگاشت تک‌به‌تک لاگین‌ها

با sp_addlinkedsrvlogin می‌توانید اعتبارسنجی هر لاگین محلی را به یکی از این صورت انجام دهید:

  • استفاده از SQL Authentication (User/Password مشخص)
  • استفاده از Windows Authentication همراه با Impersonation (نیاز به Kerberos)

نمونه تعریف نگاشت:

EXEC sp_addlinkedsrvlogin 
    @rmtsrvname = N'MyLinkedServer', 
    @locallogin = N'LocalUser', 
    @useself    = N'false', 
    @rmtuser    = N'RemoteUser', 
    @rmtpassword= N'RemotePwd';

EXEC sp_addlinkedsrvlogin 
    @rmtsrvname = N'MyLinkedServer', 
    @locallogin = N'LocalUser', 
    @useself    = N'true';

رفتار لاگین‌های غیر تعریف‌ شده

برای لاگین‌هایی که نگاشت اختصاصی ندارند، ۴ حالت قابل انتخاب است:

حالتتوضیح
Not be madeاتصال برای لاگین‌های غیرنگاشت‌شده مسدود می‌شود.
Be made without using a security contextاتصال به‌صورت ناشناس و بدون ارسال Credential.
Be made using the login’s current security contextارسال توکن ویندوزی جاری (نیاز به Kerberos و delegation).
Be made using this security contextاستفاده از User/Password مشخص ذخیره‌شده در متادیتای Linked Server.

این تنظیم در SSMS یا با پارامترهای مناسب sp_addlinkedsrvlogin اعمال می‌شود.

گام‌های کلیدی پیکربندی

  1. انتخاب Provider مناسب
  2. ایجاد Linked Server با sp_addlinkedserver
  3. تنظیم گزینه‌های Provider برای بهینه‌سازی عملکرد
  4. تنظیم گزینه‌های Server با sp_serveroption
  5. تعریف نگاشت لاگین‌ها و احراز هویت
  6. تست اتصال و اجرای کوئری ساده

نکات عملی و بهترین شیوه‌ها

  • استفاده از Kerberos در دامنه یکپارچه برای Windows Authentication
  • رعایت اصل حداقل دسترسی (Least Privilege)
  • مانیتورینگ لاگ‌های اتصال و خطاها با Extended Events
  • تنظیم مناسب Timeout و Packet Size برای جلوگیری از قطع ارتباط
  • استفاده از Collation Compatible در صورت یکسان بودن ترتیب‌بندی دو سرور

نتیجه‌گیری

راه‌اندازی و بهینه‌سازی Linked Server در SQL Server کمک می‌کند تا داده‌های توزیع‌ شده را به‌ سادگی در یک کوئری واحد ترکیب کنید. انتخاب درست Provider، پیکربندی گزینه‌های ارتباط و احراز هویت مناسب، امنیت و کارایی سیستم شما را تضمین می‌کند.

همین حالا پیکربندی Linked Server خود را تکمیل کنید و از یکپارچگی و سرعت دسترسی به داده‌ها لذت ببرید!

تماس و مشاوره با لاندا 

اگر به دنبال اتصال امن، سریع و یکپارچه بین پایگاه‌های داده مختلف هستید، Linked Server در SQL Server راه‌حل قدرتمندی است؛ اما اجرای درست آن نیازمند شناخت دقیق تنظیمات، احراز هویت و بهینه‌سازی عملکرد است.

لاندا با تجربه‌ عملی در پیاده‌سازی ارتباطات توزیع‌ شده، آماده است تا زیرساخت داده‌ای شما را به سطحی جدید از کارایی و امنیت برساند.

همین حالا با تیم فنی لاندا تماس  بگیرید و از مشاوره تخصصی برای طراحی و پیکربندی Linked Server بهره‌مند شوید.

یکپارچگی داده‌ها را بدون پیچیدگی تجربه کنید.

نظری داده نشده

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *