SQL Server Service Account چیست, Service Account در SQL Server, SQL Server Service Account, gMSA در SQL Server, Group Managed Service Account چیست, Virtual Account SQL Server, Network Service در SQL Server, Local System در SQL Server, SQL Server Security, SQL Server Configuration Manager, SQL Server Service Account Change, SQL Server Account Permission, SQL Server Least Privilege, SQL Server Kerberos Authentication, SQL Server SPN Configuration, SQL Server Always On Service Account, SQL Server Backup Permission, SQL Server File Share Backup, Domain Service Account SQL Server, Managed Service Account در Active Directory, Windows Service Account, سرویس اکانت SQL Server چیست, حساب سرویس SQL Server چیست, تفاوت Local System و Network Service, تفاوت gMSA و Virtual Account, بهترین Service Account برای SQL Server, انتخاب حساب سرویس SQL Server, تغییر حساب سرویس SQL Server, سطح دسترسی Service Account در SQL Server, امنیت SQL Server با Service Account, تنظیم Permission برای SQL Server Service Account, مدیریت رمز عبور SQL Server Service Account, استفاده از gMSA در SQL Server, Service Account مناسب برای Always On, تنظیم Kerberos در SQL Server, SQL Server Service Account چیست و کدام گزینه برای Production مناسب است, تفاوت gMSA Virtual Account و Domain Account در SQL Server, آیا استفاده از Local System برای SQL Server امن است, چگونه Service Account SQL Server را تغییر دهیم, بهترین روش انتخاب Service Account در SQL Server Enterprise, مشکل Backup روی NAS به دلیل Service Account در SQL Server, تنظیم gMSA برای SQL Server Always On Availability Group

فهرست مطالب

چرا SQL Server Service Account اهمیت دارد؟

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

یکی از تصمیم‌های مهم هنگام نصب و راه‌اندازی SQL Server، انتخاب Service Account است. Service Account مشخص می‌کند سرویس SQL Server با چه هویت امنیتی در سیستم‌عامل Windows اجرا شود و چه سطح دسترسی‌هایی به منابع مختلف داشته باشد.

بسیاری از مدیران سیستم و حتی برخی مدیران پایگاه داده، هنگام نصب SQL Server تنها به این موضوع توجه می‌کنند که سرویس اجرا شود و اتصال به Database Engine برقرار باشد. اما انتخاب نادرست Service Account می‌تواند در آینده مشکلات جدی ایجاد کند، از جمله:

  • خطا در اجرای Backup روی مسیرهای شبکه
  • مشکل در Kerberos Authentication
  • اختلال در Always On Availability Group
  • مشکل در Failover Cluster
  • افزایش سطح دسترسی غیرضروری
  • ایجاد ریسک امنیتی در صورت نفوذ به SQL Server
  • مشکل در مدیریت Password سرویس‌ها

در معماری‌های قدیمی، بسیاری از نصب‌های SQL Server با حساب‌هایی مانند Local System یا یک حساب Domain Administrator انجام می‌شدند. این روش‌ها اگرچه ممکن است در کوتاه‌مدت کار کنند، اما با اصول امنیتی مدرن مانند Least Privilege سازگار نیستند.

امروزه Microsoft توصیه می‌کند برای سرویس‌های مهمی مانند SQL Server از حساب‌هایی استفاده شود که:

  • حداقل دسترسی مورد نیاز را داشته باشند
  • مدیریت Password آن‌ها ساده باشد
  • قابلیت کار در محیط Domain را داشته باشند
  • امکان Audit و کنترل امنیتی روی آن‌ها وجود داشته باشد

به همین دلیل مفاهیمی مانند Virtual Account و Group Managed Service Account یا همان gMSA اهمیت زیادی پیدا کرده‌اند.

در این مقاله تمام انواع Service Account قابل استفاده برای SQL Server را بررسی می‌کنیم و تفاوت‌های آن‌ها را از دید امنیت، مدیریت، شبکه و معماری سازمانی توضیح خواهیم داد.

Service Account در SQL Server چیست؟

Service Account یک حساب کاربری مخصوص اجرای سرویس‌ها در سیستم‌عامل Windows است. هر سرویس Windows برای اجرا شدن نیاز به یک Security Context دارد. این Security Context مشخص می‌کند سرویس با چه هویتی فعالیت کند و چه مجوزهایی داشته باشد.

SQL Server نیز مانند سایر سرویس‌های Windows با یک Account مشخص اجرا می‌شود.

برای مثال هنگام نصب SQL Server ممکن است سرویس Database Engine با یکی از حساب‌های زیر اجرا شود:

NT SERVICE\MSSQLSERVER

یا:

DOMAIN\sqlservice

یا:

DOMAIN\gmsa_sql$

هرکدام از این گزینه‌ها رفتار متفاوتی در دسترسی به فایل‌ها، شبکه و Active Directory دارند.

در SQL Server چند سرویس اصلی وجود دارد که می‌توانند Service Account جداگانه داشته باشند:

سرویس‌های SQL Server که دارای Service Account هستند

SQL Server Database Engine

این سرویس اصلی SQL Server است و مسئول اجرای موتور دیتابیس، مدیریت Queryها، Buffer Pool، Transactionها و Storage Engine است.

معمولاً با نام زیر شناخته می‌شود:

SQL Server (MSSQLSERVER)

یا در Named Instance:

SQL Server (INSTANCE_NAME)

SQL Server Agent

SQL Server Agent برای اجرای Jobها استفاده می‌شود.

مواردی مانند:

  • Backup Job
  • Maintenance Plan
  • اجرای Stored Procedure زمان‌بندی شده
  • Alert و Operator

توسط این سرویس اجرا می‌شوند.

SQL Server Integration Services

SSIS برای انتقال و پردازش داده‌ها استفاده می‌شود.

اگر Packageها نیاز به دسترسی به:

  • File Share
  • Excel File
  • FTP Server
  • منابع خارجی

داشته باشند، Service Account اهمیت زیادی پیدا می‌کند.

SQL Server Analysis Services

برای مدل‌های تحلیلی، Cubeها و پردازش‌های OLAP استفاده می‌شود.

SQL Server Reporting Services

برای اجرای گزارش‌ها و اتصال به منابع داده استفاده می‌شود.

چرا انتخاب Service Account برای SQL Server مهم است؟

انتخاب Service Account تنها یک تنظیم هنگام نصب نیست، بلکه بخشی از طراحی امنیتی SQL Server محسوب می‌شود.

تاثیر Service Account بر امنیت

فرض کنید SQL Server با حسابی اجرا شود که دسترسی کامل Administrator روی سرور دارد.

اگر به هر دلیلی:

  • آسیب‌پذیری SQL Server مورد سوءاستفاده قرار گیرد
  • یک Login با سطح دسترسی بالا هک شود
  • یک Query مخرب اجرا شود

مهاجم ممکن است بتواند از سطح SQL Server عبور کرده و به سطح سیستم‌عامل برسد.

به همین دلیل اصل مهم زیر مطرح می‌شود:

SQL Server باید همیشه با کمترین سطح دسترسی مورد نیاز اجرا شود.

این اصل با عنوان:

Least Privilege Principle

شناخته می‌شود.

تاثیر Service Account بر دسترسی شبکه

SQL Server فقط روی فایل‌های محلی کار نمی‌کند.

در محیط‌های سازمانی معمولاً نیاز به دسترسی به منابع دیگر وجود دارد:

  • ذخیره Backup روی NAS
  • اتصال به File Server
  • Linked Server
  • Replication
  • Always On Availability Group
  • SSIS Package
  • دسترسی به Active Directory

نوع Service Account تعیین می‌کند SQL Server هنگام اتصال به یک منبع شبکه، با چه هویتی معرفی شود.

برای مثال:

اگر SQL Server با:

NT AUTHORITY\NETWORK SERVICE

اجرا شود، هنگام دسترسی به شبکه معمولاً از Computer Account استفاده می‌کند:

DOMAIN\SQLSERVER01$

اما اگر با یک Domain Account اجرا شود:

DOMAIN\svc_sql

همان حساب در شبکه شناخته خواهد شد.

تاثیر Service Account بر Kerberos و SPN

در محیط‌های Enterprise، احراز هویت SQL Server معمولاً با Kerberos انجام می‌شود.

Kerberos برای عملکرد صحیح نیاز به ثبت Service Principal Name یا SPN دارد.

Service Account مناسب کمک می‌کند:

  • SPN به درستی ثبت شود
  • Authentication سریع‌تر و امن‌تر باشد
  • مشکل Double Hop ایجاد نشود
  • Linked Serverها بدون خطا کار کنند

برای مثال در Always On Availability Group یا محیط‌های Multi-Tier، انتخاب Service Account اهمیت بسیار بالایی دارد.

انواع Service Account قابل استفاده برای SQL Server

در Windows چند نوع Account وجود دارد که می‌توان برای اجرای SQL Server استفاده کرد:

  • Local System
  • Local Service
  • Network Service
  • Virtual Account
  • Managed Service Account
  • Group Managed Service Account
  • Domain User Account

هرکدام کاربرد، مزایا و محدودیت‌های خاص خود را دارند.

Local System Account چیست؟

Local System یکی از قدیمی‌ترین و قدرتمندترین حساب‌های داخلی Windows است که برای اجرای سرویس‌های سیستمی استفاده می‌شود.

نام این Account در Windows:

NT AUTHORITY\SYSTEM

است.

این حساب یک User معمولی نیست، بلکه یک Identity داخلی سیستم‌عامل محسوب می‌شود و تقریباً بالاترین سطح دسترسی ممکن روی همان سرور را دارد.

زمانی که یک سرویس با Local System اجرا می‌شود، Windows اجازه دسترسی بسیار گسترده‌ای به منابع محلی سیستم به آن می‌دهد.

سطح دسترسی Local System در Windows

Local System تقریباً دسترسی کامل روی سیستم محلی دارد.

مهم‌ترین دسترسی‌های آن:

منبع سطح دسترسی
فایل‌های سیستم‌عامل Full Access
Registry Full Access
Windows Services مدیریت کامل
Hardware Resources دسترسی بالا
Local Security Policy دسترسی بالا
Local Users و Groups دسترسی مدیریتی

به همین دلیل اگر یک سرویس با Local System اجرا شود، در صورت آسیب‌پذیری آن سرویس، امکان سوءاستفاده با سطح دسترسی بسیار بالا وجود خواهد داشت.

رفتار Local System در شبکه

یکی از نکات مهم درباره Local System این است که هنگام اتصال به منابع شبکه، با هویت خود سیستم معرفی می‌شود.

برای مثال فرض کنید SQL Server روی سروری با نام زیر نصب شده است:

SQLSERVER01

اگر سرویس SQL Server با Local System اجرا شود و بخواهد به یک File Share متصل شود:

\\FILESERVER01\Backup

Windows معمولاً درخواست را با Computer Account ارسال می‌کند:

DOMAIN\SQLSERVER01$

بنابراین باید روی File Server برای Computer Account مجوز داده شود.

مزایای Local System

Local System چند مزیت دارد:

  • نیاز به Password ندارد
  • Password Expire نمی‌شود
  • همیشه در دسترس است
  • برای سرویس‌های داخلی Windows مناسب است
  • مدیریت آن ساده است

معایب Local System برای SQL Server

با وجود سادگی، استفاده از Local System برای SQL Server معمولاً توصیه نمی‌شود.

دلایل اصلی:

سطح دسترسی بیش از حد

SQL Server برای انجام وظایف خود به Full Access روی سیستم‌عامل نیاز ندارد.

دادن چنین سطح دسترسی‌ای برخلاف اصول امنیتی است.

افزایش سطح حمله

اگر یک مهاجم بتواند از طریق SQL Server به اجرای Code روی سیستم برسد، سرویس SQL Server با هویت بسیار قدرتمند SYSTEM اجرا می‌شود.

مشکل در Audit

در محیط‌های Enterprise، کنترل اینکه کدام سرویس با چه سطح دسترسی‌ای فعالیت می‌کند اهمیت زیادی دارد.

استفاده از Local System باعث می‌شود سرویس‌ها Identity مشترک داشته باشند.

آیا استفاده از Local System برای SQL Server مناسب است؟

برای محیط‌های:

  • Development
  • آزمایشگاهی
  • Serverهای موقت

ممکن است قابل قبول باشد.

اما برای:

  • Production Database
  • سیستم‌های مالی
  • ERP
  • Data Warehouse
  • Always On

توصیه نمی‌شود.

Network Service Account چیست؟

Network Service یکی دیگر از Accountهای داخلی Windows است که برای اجرای سرویس‌ها طراحی شده است.

نام آن:

NT AUTHORITY\NETWORK SERVICE

است.

Network Service برخلاف Local System دسترسی کمتری روی سیستم محلی دارد و برای بسیاری از سرویس‌هایی که نیاز به ارتباط شبکه دارند طراحی شده است.

تفاوت Network Service با Local System

مهم‌ترین تفاوت این دو Account در سطح دسترسی است.

Local System:

Local Machine = تقریباً Full Control

اما Network Service:

Local Machine = محدود
Network = با هویت Computer Account

عمل می‌کند.

سطح دسترسی Network Service

Network Service دارای دسترسی‌های محدود روی سیستم محلی است.

به صورت پیش‌فرض:

منبع دسترسی
Windows Files محدود
Registry محدود
SQL Data Folder نیازمند Permission
Network Resources با Computer Account

این طراحی باعث می‌شود ریسک امنیتی نسبت به Local System کمتر شود.

احراز هویت Network Service در شبکه

یکی از مهم‌ترین ویژگی‌های Network Service نحوه Authentication آن است.

فرض کنید:

نام SQL Server:

SQL01

Domain:

CONTOSO

Service Account:

NT AUTHORITY\NETWORK SERVICE

وقتی SQL Server به شبکه متصل می‌شود، معمولاً با این Identity دیده می‌شود:

CONTOSO\SQL01$

این همان Computer Account سرور است.

بنابراین اگر SQL Server نیاز به Backup روی File Server داشته باشد:

\\Backup01\SQL

باید مجوز زیر داده شود:

CONTOSO\SQL01$

نه:

NT AUTHORITY\NETWORK SERVICE

مزایای Network Service برای SQL Server

Network Service نسبت به Local System امن‌تر است.

مزایا:

  • بدون Password
  • مدیریت آسان
  • سطح دسترسی کمتر
  • مناسب برای برخی سرویس‌های داخلی

معایب Network Service

با وجود امنیت بهتر، محدودیت‌هایی دارد.

کنترل کمتر روی Identity

در محیط‌های بزرگ، استفاده از Computer Account برای دسترسی‌ها مدیریت را سخت‌تر می‌کند.

مناسب نبودن برای چندین SQL Server

در محیط‌هایی که چند SQL Server وجود دارد، کنترل Permissionها دشوار می‌شود.

برای مثال:

SQL01$
SQL02$
SQL03$

باید جداگانه مدیریت شوند.

محدودیت در سناریوهای Enterprise

در محیط‌هایی مانند:

معمولاً Domain Service Account یا gMSA انتخاب بهتری است.

Local Service Account چیست؟

Local Service کم‌سطح‌ترین Account داخلی Windows است.

نام:

NT AUTHORITY\LOCAL SERVICE

است.

این Account برای سرویس‌هایی طراحی شده که:

  • نیاز به دسترسی بسیار محدود دارند
  • معمولاً ارتباط شبکه‌ای ندارند

سطح دسترسی Local Service

Local Service تقریباً مانند یک User با دسترسی بسیار پایین رفتار می‌کند.

ویژگی‌ها:

  • دسترسی محدود به سیستم‌عامل
  • بدون Password
  • عدم دسترسی مدیریتی
  • استفاده محدود در شبکه

در شبکه، معمولاً با Anonymous Credential یا دسترسی بسیار محدود شناخته می‌شود.

آیا Local Service برای SQL Server مناسب است؟

خیر.

SQL Server معمولاً نیاز دارد:

  • فایل‌های Database را مدیریت کند
  • Log Fileها را بنویسد
  • Backup اجرا کند
  • با منابع دیگر ارتباط داشته باشد

Local Service برای چنین کاری طراحی نشده است.

استفاده از آن باعث ایجاد مشکلات Permission خواهد شد.

Virtual Account در SQL Server چیست؟

Virtual Account یکی از مهم‌ترین تغییرات معرفی‌شده در Windows Serverهای جدید است.

این قابلیت از نسخه Windows Server 2008 R2 و SQL Server 2008 R2 به بعد معرفی شد.

Virtual Accountها به صورت خودکار هنگام نصب SQL Server ساخته می‌شوند.

نمونه:

برای Default Instance:

NT SERVICE\MSSQLSERVER

برای Named Instance:

NT SERVICE\MSSQL$INSTANCE01

ساختار Virtual Account

Virtual Account یک Account واقعی در Active Directory نیست.

یعنی:

  • در Users and Computers دیده نمی‌شود
  • Password ندارد
  • توسط Windows مدیریت می‌شود

هر سرویس Identity مخصوص خودش را دارد.

مثلاً:

SQL Server Database Engine:

NT SERVICE\MSSQLSERVER

SQL Server Agent:

NT SERVICE\SQLSERVERAGENT

این جداسازی باعث افزایش امنیت می‌شود.

مزایای Virtual Account

مهم‌ترین مزایا:

عدم نیاز به Password

Administrator لازم نیست Password ذخیره یا تغییر دهد.

مدیریت خودکار

Windows مدیریت Lifecycle آن را انجام می‌دهد.

جداسازی سرویس‌ها

هر سرویس Identity جداگانه دارد.

امنیت بهتر نسبت به Local System

سطح دسترسی محدودتر است.

محدودیت Virtual Account

مهم‌ترین محدودیت Virtual Account زمانی مشخص می‌شود که SQL Server نیاز به دسترسی خارجی داشته باشد.

مثلاً:

Backup:

\\NAS01\SQLBackup

یا:

Linked Server به سیستم دیگر.

در این حالت Virtual Account معمولاً نمی‌تواند مانند یک Domain Account واقعی احراز هویت کند.

در چنین سناریوهایی استفاده از gMSA یا Domain Account بهتر است.

Managed Service Account چیست؟

قبل از بررسی gMSA بهتر است ابتدا مفهوم Managed Service Account یا MSA را بررسی کنیم.

در محیط‌های Domain-Based، یکی از مشکلات قدیمی مدیران سیستم، مدیریت Password حساب‌هایی بود که برای اجرای سرویس‌ها استفاده می‌شدند.

برای مثال یک سازمان ممکن بود یک حساب مانند:

CONTOSO\svc_sql

برای SQL Server ایجاد کند.

بعد از مدتی مشکلاتی مانند موارد زیر ایجاد می‌شد:

  • Password باید طبق Policy تغییر کند
  • پس از تغییر Password سرویس SQL Server متوقف می‌شود
  • Credentialهای ذخیره‌شده باید به‌روزرسانی شوند
  • احتمال افشای Password وجود دارد
  • مدیریت تعداد زیادی Service Account دشوار می‌شود

Microsoft برای حل این مشکل مفهوم Managed Service Account را معرفی کرد.

ساختار Managed Service Account

MSA یک حساب ویژه در Active Directory است که:

  • توسط Domain Controller مدیریت می‌شود
  • Password آن توسط سیستم تولید و نگهداری می‌شود
  • Administrator نیاز به دانستن Password ندارد
  • امکان استفاده برای اجرای سرویس‌ها وجود دارد

نمونه:

CONTOSO\SQLService$

علامت $ در انتهای نام نشان‌دهنده یک Managed Account است.

محدودیت Managed Service Account

MSA نسبت به Domain User معمولی امنیت بیشتری دارد، اما یک محدودیت مهم دارد:

یک MSA فقط برای یک سیستم قابل استفاده است.

برای مثال:

SQL01

می‌تواند از:

CONTOSO\SQLService$

استفاده کند.

اما همان Account را نمی‌توان هم‌زمان روی:

SQL02
SQL03
SQL04

استفاده کرد.

در محیط‌های Enterprise که تعداد زیادی SQL Server وجود دارد، این محدودیت مشکل ایجاد می‌کند.

برای حل این مشکل Microsoft نسخه توسعه‌یافته MSA را معرفی کرد.

Group Managed Service Account یا gMSA چیست؟

gMSA مخفف:

Group Managed Service Account

است.

این فناوری از Windows Server 2012 معرفی شد و برای محیط‌های سازمانی بزرگ طراحی شده است.

gMSA در واقع نسخه Enterprise از Managed Service Account است که امکان استفاده یک Service Account در چندین سرور را فراهم می‌کند.

معماری gMSA در Active Directory

در gMSA یک Account در Active Directory ساخته می‌شود.

برای مثال:

gmsa_sql_engine$

این Account:

  • Password مشخصی که Administrator بداند ندارد
  • توسط Domain Controller مدیریت می‌شود
  • امکان استفاده روی چند سرور مجاز را دارد

مثلاً:

SQL01
SQL02
SQL03

می‌توانند از یک gMSA مشترک استفاده کنند.

نحوه عملکرد Password در gMSA

یکی از مهم‌ترین ویژگی‌های gMSA مدیریت خودکار Password است.

در حالت معمول:

Administrator باید:

  1. Password تولید کند
  2. Password را ذخیره کند
  3. قبل از Expire شدن تغییر دهد
  4. سرویس‌ها را Update کند

اما در gMSA:

  • Domain Controller Password را تولید می‌کند
  • Password به صورت دوره‌ای تغییر می‌کند
  • Service بدون دخالت Administrator از Password جدید استفاده می‌کند

Administrator هیچ‌وقت Password واقعی را مشاهده نمی‌کند.

این موضوع یک مزیت امنیتی بسیار مهم است.

چرا gMSA برای SQL Server اهمیت دارد؟

SQL Server در محیط‌های Enterprise معمولاً تنها یک سرویس ساده نیست.

معمولاً با موارد زیر در ارتباط است:

  • Active Directory
  • File Server
  • Cluster
  • Availability Group
  • Backup Infrastructure
  • Monitoring Systems
  • Reporting Services

در چنین معماری‌هایی مدیریت دستی Accountها بسیار دشوار می‌شود.

gMSA این فرآیند را ساده‌تر و امن‌تر می‌کند.

مزایای استفاده از gMSA برای SQL Server

حذف مدیریت Password

مهم‌ترین مزیت gMSA حذف Password Management است.

دیگر نیازی نیست:

  • Password را ذخیره کنید
  • Password را در SQL Server Configuration Manager تغییر دهید
  • نگران Expire شدن Credential باشید

افزایش امنیت

با حذف Password قابل مشاهده:

  • احتمال Credential Leakage کاهش پیدا می‌کند
  • حملات Password-Based کمتر می‌شود
  • کنترل امنیتی بهتر می‌شود

مناسب برای محیط‌های بزرگ

در سازمان‌هایی با چندین SQL Server:

مثلاً:

SQL-PROD-01
SQL-PROD-02
SQL-DR-01
SQL-REPORT-01

می‌توان مدیریت Accountها را ساده کرد.

سازگار با Least Privilege

gMSA را می‌توان تنها برای سرویس‌های مشخص و روی سرورهای مشخص فعال کرد.

gMSA و SQL Server Always On Availability Group

یکی از بهترین سناریوهای استفاده از Group Managed Service Account یا gMSA، پیاده‌سازی SQL Server Always On Availability Group است.

در معماری Always On معمولاً چند SQL Server به عنوان Replica در کنار یکدیگر فعالیت می‌کنند. یکی از سرورها نقش Primary Replica و سایر سرورها نقش Secondary Replica را بر عهده دارند.

معماری نمونه:

نقش نام سرور وضعیت
Primary Replica SQL01 سرویس اصلی خواندن و نوشتن
Secondary Replica SQL02 کپی همگام داده‌ها
Secondary Replica SQL03 کپی همگام داده‌ها

در این معماری، تمام Replicaها باید بتوانند با یکدیگر ارتباط امن داشته باشند و سرویس SQL Server روی هر Node با یک هویت معتبر اجرا شود.

مشکل استفاده از Domain Account معمولی

در روش سنتی ممکن است یک حساب Domain مانند:

CONTOSO\svc_sql

برای اجرای SQL Server استفاده شود.

در این حالت مدیر سیستم باید موارد زیر را مدیریت کند:

  • ذخیره و محافظت از Password
  • تغییر Password طبق سیاست‌های امنیتی
  • به‌روزرسانی Credential روی تمام Replicaها
  • بررسی دسترسی‌ها پس از تغییر Password
  • مدیریت SPN و Kerberos

در محیط‌هایی که تعداد Replicaها زیاد است، این فرآیند می‌تواند پیچیده و مستعد خطا شود.

مزایای استفاده از gMSA در Always On

با استفاده از gMSA، یک Identity مدیریت‌شده در Active Directory برای SQL Server ایجاد می‌شود.

برای مثال:

CONTOSO\gmsa_sql_engine$

سپس سرورهای مجاز مانند:

سرور دسترسی به gMSA
SQL01 فعال
SQL02 فعال
SQL03 فعال

می‌توانند از همان Service Account استفاده کنند.

مزایای اصلی:

مدیریت خودکار Password

Password توسط Active Directory مدیریت و به صورت دوره‌ای تغییر داده می‌شود.

نیازی به:

  • مشاهده Password
  • ذخیره Password
  • تغییر دستی Password

وجود ندارد.

سازگاری بهتر با Kerberos

Always On Availability Group معمولاً به تنظیمات صحیح Authentication و SPN نیاز دارد.

gMSA به دلیل داشتن هویت Domain، سازگاری بسیار خوبی با Kerberos دارد و مدیریت سناریوهای پیچیده‌تر را ساده‌تر می‌کند.

کاهش خطای انسانی

در معماری‌های بزرگ، مدیریت دستی چندین Service Account می‌تواند باعث خطا شود.

gMSA باعث می‌شود:

  • هویت سرویس‌ها استاندارد شود
  • مدیریت Credential ساده‌تر شود
  • امنیت سرویس افزایش پیدا کند

جمع‌بندی

برای SQL Server Always On Availability Group:

روش پیشنهاد
Local System مناسب نیست
Network Service محدودیت دارد
Virtual Account مناسب نیست
Domain Account معمولی قابل استفاده
gMSA انتخاب پیشنهادی Enterprise

در محیط‌های سازمانی که SQL Serverهای حیاتی، چند Replica و نیاز به High Availability وجود دارد، gMSA یکی از بهترین انتخاب‌ها برای Service Account SQL Server محسوب می‌شود.

gMSA و Kerberos Authentication

Kerberos یکی از بخش‌های مهم SQL Server Enterprise است.

سناریوهایی مانند:

  • Linked Server
  • SSIS
  • Reporting Services
  • Multi-Hop Authentication

به Kerberos وابسته هستند.

gMSA به دلیل اینکه یک Domain Identity واقعی است، سازگاری بسیار خوبی با Kerberos دارد.

در مقایسه:

Account Kerberos Support
Local System محدود
Network Service وابسته به Computer Account
Virtual Account محدود
Domain Account خوب
gMSA عالی

پیش‌نیازهای استفاده از gMSA

برای استفاده از gMSA نیاز به موارد زیر دارید:

Active Directory Domain

gMSA بخشی از Active Directory است و روی Workgroup Server قابل استفاده نیست.

Windows Server مناسب

Domain Controller باید از نسخه‌های پشتیبان gMSA پشتیبانی کند.

PowerShell Active Directory Module

ساخت و مدیریت gMSA معمولاً با PowerShell انجام می‌شود.

KDS Root Key

برای تولید و مدیریت Passwordهای gMSA نیاز به KDS Root Key در Domain وجود دارد.

نمونه:

Add-KdsRootKey -EffectiveImmediately

ایجاد gMSA برای SQL Server

ابتدا مشخص می‌کنیم کدام سرورها اجازه استفاده از Account را دارند.

مثلاً:

New-ADServiceAccount `
-Name gmsa_sql `
-DNSHostName sql01.contoso.com `
-PrincipalsAllowedToRetrieveManagedPassword SQLServersGroup

سپس روی SQL Server:

Install-ADServiceAccount gmsa_sql

و بررسی:

Test-ADServiceAccount gmsa_sql

استفاده از gMSA در SQL Server

در SQL Server Configuration Manager هنگام تغییر Service Account:

به جای:

CONTOSO\username

از:

CONTOSO\gmsa_sql$

استفاده می‌شود.

Domain Service Account معمولی یا gMSA؟

یکی از سوال‌های رایج این است که آیا هنوز باید از Domain User Account معمولی استفاده کنیم؟

پاسخ بستگی به معماری دارد.

Domain Account معمولی

مزایا:

  • ساده و شناخته‌شده
  • سازگار با تمام نسخه‌ها
  • کنترل کامل توسط Administrator

معایب:

  • نیاز به مدیریت Password
  • خطر افشای Credential
  • نیاز به Rotation دستی

gMSA

مزایا:

  • بدون مدیریت Password
  • امنیت بالاتر
  • مناسب Enterprise
  • مناسب Always On

معایب:

  • نیازمند Active Directory
  • نیاز به طراحی اولیه
  • برای محیط‌های کوچک ممکن است بیش از نیاز باشد

انتخاب پیشنهادی برای SQL Server

در محیط‌های مختلف:

محیط پیشنهاد
Development Virtual Account
Test Environment Virtual Account یا Domain Account
Production کوچک Domain Service Account
Production Enterprise gMSA
Always On gMSA
Failover Cluster gMSA یا Domain Account مناسب

در معماری‌های جدید، gMSA معمولاً انتخاب اول برای SQL Serverهای حیاتی سازمانی است.

مقایسه کامل Local System، Network Service، Virtual Account و gMSA

انتخاب Service Account مناسب برای SQL Server به عوامل مختلفی بستگی دارد. مواردی مانند معماری سازمان، تعداد SQL Serverها، نیاز به دسترسی شبکه، وجود Active Directory، سطح امنیت مورد نیاز و استفاده از قابلیت‌هایی مانند Always On Availability Group در انتخاب نهایی تاثیرگذار هستند.

هیچ Service Accountای برای تمام سناریوها بهترین گزینه نیست، اما تفاوت در سطح دسترسی، نحوه مدیریت هویت و قابلیت استفاده در معماری‌های Enterprise باعث می‌شود برخی گزینه‌ها برای محیط‌های سازمانی مناسب‌تر باشند.

مقایسه امنیتی Service Accountهای SQL Server

ویژگی Local System Network Service Virtual Account gMSA
مدیریت Password ندارد ندارد ندارد کاملاً خودکار
نیاز به Active Directory ندارد ندارد ندارد دارد
سطح دسترسی محلی بسیار بالا محدود محدود قابل کنترل
هویت مستقل در Domain ندارد ندارد ندارد دارد
مناسب Production معمولاً خیر محدود متوسط بله
مناسب Always On خیر محدود خیر عالی
پشتیبانی Kerberos محدود وابسته به Computer Account محدود عالی
مدیریت چند سرور دشوار دشوار دشوار آسان

مقایسه Local System و Network Service

Local System و Network Service دو مورد از قدیمی‌ترین حساب‌های داخلی Windows هستند که برای اجرای سرویس‌ها استفاده می‌شوند.

تفاوت اصلی این دو Account در میزان دسترسی است.

Local System

قدرت بیشتر، ریسک امنیتی بیشتر

Local System بالاترین سطح دسترسی را روی سیستم محلی دارد. اگر SQL Server با این Account اجرا شود، Database Engine تقریباً با سطح دسترسی کامل سیستم‌عامل فعالیت می‌کند.

این موضوع در محیط Production یک ریسک امنیتی محسوب می‌شود، زیرا در صورت وجود آسیب‌پذیری در SQL Server، سطح دسترسی مهاجم می‌تواند تا سطح SYSTEM افزایش پیدا کند.

Network Service

قدرت کمتر، امنیت بهتر

Network Service نسبت به Local System محدودتر است و برای سرویس‌هایی طراحی شده که نیاز به ارتباط شبکه دارند اما نباید دسترسی کامل سیستم‌عامل را داشته باشند.

با این حال، Network Service یک محدودیت مهم دارد.

هنگامی که SQL Server با Network Service به منابع شبکه مانند File Server یا NAS متصل می‌شود، هویت آن در شبکه همان Computer Account سرور خواهد بود.

برای مثال:

SQL Server هویت شبکه
SQL01 CONTOSO\SQL01$
SQL02 CONTOSO\SQL02$
SQL03 CONTOSO\SQL03$

در نتیجه در یک سازمان با چند SQL Server، Permissionها باید برای هر Computer Account جداگانه مدیریت شوند.

مقایسه Virtual Account و gMSA

Virtual Account و gMSA هر دو یک مشکل مهم را حل می‌کنند:

حذف مدیریت دستی Password

اما معماری آن‌ها کاملاً متفاوت است.

Virtual Account

نمونه:

NT SERVICE\MSSQLSERVER

Virtual Account یک Identity محلی است که توسط Windows ساخته و مدیریت می‌شود.

ویژگی‌ها:

  • بدون Password
  • مدیریت خودکار توسط سیستم‌عامل
  • مناسب Serverهای مستقل
  • مناسب محیط‌های کوچک و ساده

اما Virtual Account یک هویت واقعی در Active Directory نیست و برای سناریوهای پیچیده شبکه محدودیت دارد.

gMSA

نمونه:

CONTOSO\gmsa_sql$

gMSA یک Service Account واقعی در Active Directory است که Password آن توسط Domain Controller مدیریت می‌شود.

ویژگی‌ها:

  • بدون نیاز به مدیریت Password
  • مناسب چندین SQL Server
  • سازگار با Kerberos
  • مناسب Always On Availability Group
  • مناسب Failover Cluster
  • مناسب محیط‌های Enterprise

تفاوت اصلی Virtual Account و gMSA

مورد Virtual Account gMSA
محل مدیریت Identity Local Server Active Directory
استفاده در چند سرور محدود بله
Password Management خودکار خودکار
Kerberos محدود عالی
Always On مناسب نیست مناسب
محیط Enterprise محدود انتخاب پیشنهادی

در نتیجه، Virtual Account برای SQL Serverهای مستقل و محیط‌های ساده انتخاب مناسبی است، اما در معماری‌های Enterprise که چندین SQL Server، Cluster یا Availability Group وجود دارد، معمولاً gMSA انتخاب استانداردتر و امن‌تری محسوب می‌شود.

انتخاب Service Account برای SQL Server Production

در محیط Production، انتخاب Account باید بر اساس معماری انجام شود.

SQL Server مستقل بدون Domain

اگر SQL Server:

  • عضو Domain نیست
  • تنها یک سرور وجود دارد
  • نیاز به منابع شبکه محدود است

Virtual Account می‌تواند گزینه مناسبی باشد.

مثال:

NT SERVICE\MSSQLSERVER

مزایا:

  • بدون Password
  • مدیریت آسان
  • امنیت قابل قبول

SQL Server عضو Domain

در محیط Domain، گزینه‌های بیشتری وجود دارد.

معمولاً دو انتخاب مطرح است:

  • Domain Service Account
  • gMSA

برای سازمان‌های کوچک:

CONTOSO\svc_sql

می‌تواند کافی باشد.

اما باید موارد زیر رعایت شود:

  • Password قوی
  • عدم عضویت در Administrator Group
  • تنظیم Password Policy مناسب
  • Audit دوره‌ای

SQL Server Always On Availability Group

در Always On، چندین SQL Server درگیر هستند.

معماری معمول:

SQL Server Role
SQL01 Primary Replica
SQL02 Secondary Replica
SQL03 Secondary Replica

در این سناریو gMSA مزیت زیادی دارد.

دلایل:

  • تمام Replicaها می‌توانند از یک Identity مدیریت‌شده استفاده کنند
  • Password به صورت خودکار تغییر می‌کند
  • Kerberos ساده‌تر تنظیم می‌شود
  • مدیریت Credential کاهش پیدا می‌کند

SQL Server Failover Cluster Instance

در Failover Cluster نیز Service Account اهمیت زیادی دارد.

SQL Server ممکن است روی Nodeهای مختلف اجرا شود:

NODE01 | NODE02

در این شرایط استفاده از Accountهای محلی مانند Virtual Account مناسب نیست.

زیرا Identity باید بین Nodeها قابل استفاده باشد.

معمولاً:

  • gMSA
  • Domain Service Account

انتخاب مناسب‌تری هستند.

Backup روی File Share

یکی از رایج‌ترین مشکلات SQL Server مربوط به Backup روی مسیر شبکه است.

مثلاً:

BACKUP DATABASE Sales
TO DISK='\\BackupServer\SQL\Sales.bak'

موفقیت این عملیات به Identity سرویس SQL Server بستگی دارد.

SQL Server با Virtual Account

مثلاً:

NT SERVICE\MSSQLSERVER

ممکن است نتواند به Share دسترسی پیدا کند.

SQL Server با Network Service

در این حالت دسترسی باید به Computer Account داده شود:

DOMAIN\SQLSERVER01$

SQL Server با gMSA

مجوز به خود gMSA داده می‌شود:

DOMAIN\gmsa_sql$

این مدل در محیط‌های Enterprise قابل مدیریت‌تر است.

سطح دسترسی مورد نیاز SQL Server Service Account

یکی از اشتباهات رایج این است که تصور کنیم SQL Server برای اجرا نیاز به Administrator دارد.

این تصور اشتباه است.

SQL Server باید فقط Permissionهای مورد نیاز خود را داشته باشد.

دسترسی به فایل‌های Database

SQL Server باید بتواند:

  • MDF را بخواند
  • LDF را بنویسد
  • TempDB را مدیریت کند
  • فایل‌های Database را ایجاد کند

مسیرهای معمول:

C:\Program Files\Microsoft SQL Server\

یا:

D:\SQLData\

باید به Service Account مجوز مناسب داده شود.

معمولاً این Permissionها در زمان نصب SQL Server خودکار تنظیم می‌شوند.

دسترسی به Backup Folder

برای Backup محلی:

D:\Backup

Service Account باید:

  • Write
  • Read
  • Modify

داشته باشد.

برای Backup شبکه:

\\BackupServer\SQLBackup

باید Permission روی Share و NTFS تنظیم شود.

Share Permission و NTFS Permission

برای File Share همیشه دو سطح Permission وجود دارد:

Share Permission

مثلاً:

SQL Backup Share

NTFS Permission

روی فولدر واقعی:

D:\SQLBackup

هر دو باید صحیح باشند.

دسترسی Registry

SQL Server برای اجرای صحیح نیاز به دسترسی‌های Registry دارد.

اما این Permissionها معمولاً توسط Installer ایجاد می‌شوند.

نباید به صورت دستی:

Full Control

به Service Account داده شود.

دسترسی Active Directory

در سناریوهایی مانند:

  • Kerberos
  • SPN
  • Always On
  • Replication

SQL Server نیاز به ارتباط با Active Directory دارد.

برای gMSA این فرآیند ساده‌تر است، زیرا Account ذاتاً Domain Identity دارد.

Service Principal Name یا SPN

SPN یکی از بخش‌های مهم در Authentication SQL Server است.

SQL Server برای Kerberos نیاز دارد SPN صحیح ثبت شود.

نمونه:

MSSQLSvc/sql01.contoso.com:1433

اگر Service Account اشتباه انتخاب شود:

  • Kerberos فعال نمی‌شود
  • اتصال به NTLM تغییر می‌کند
  • Linked Server ممکن است خطا دهد

بررسی SPN SQL Server

برای بررسی SPN:

setspn -L DOMAIN\gmsa_sql$

یا:

setspn -L SQLSERVER01

چرا نباید SQL Server را با Administrator اجرا کنیم؟

یکی از بدترین روش‌های نصب SQL Server استفاده از:

DOMAIN\Administrator

به عنوان Service Account است.

مشکلات:

  • Password بسیار حساس
  • دسترسی بیش از حد
  • ریسک امنیتی بالا
  • مشکل Audit
  • نقض استانداردهای امنیتی

در صورت هک SQL Server، مهاجم عملاً یک Administrator Domain در اختیار خواهد داشت.

روش مشاهده Service Account فعلی SQL Server

قبل از تغییر Service Account بهتر است ابتدا بررسی کنیم SQL Server در حال حاضر با چه Accountای اجرا می‌شود.

SQL Server اطلاعات سرویس‌های خود را در Dynamic Management View زیر نگهداری می‌کند:

SELECT 
    servicename,
    service_account,
    startup_type,
    status_desc
FROM sys.dm_server_services;

خروجی نمونه:

servicename service_account status
SQL Server (MSSQLSERVER) NT Service\MSSQLSERVER Running
SQL Server Agent NT Service\SQLSERVERAGENT Running

این Query اطلاعات مهمی مانند موارد زیر را نمایش می‌دهد:

  • نام سرویس
  • Service Account
  • وضعیت اجرا
  • نوع Startup

بررسی Service Account از طریق SQL Server Configuration Manager

روش پیشنهادی Microsoft برای مدیریت Account سرویس‌های SQL Server استفاده از:

SQL Server Configuration Manager

است.

مسیر:

SQL Server Configuration Manager
.SQL Server Services
SQL Server (MSSQLSERVER)
Properties
Log On

در این بخش Account فعلی نمایش داده می‌شود.

چرا نباید از Services.msc برای تغییر Account استفاده کرد؟

بسیاری از مدیران سیستم برای تغییر Account به این مسیر می‌روند:

services.msc

اما برای SQL Server این روش توصیه نمی‌شود.

دلیل آن این است که SQL Server Configuration Manager علاوه بر تغییر Credential، تنظیمات مرتبط دیگری را نیز مدیریت می‌کند، مانند:

  • ثبت SPN
  • تنظیم Permissionهای مورد نیاز
  • مدیریت سرویس‌های وابسته
  • هماهنگی با SQL Server Engine

بنابراین برای SQL Server همیشه از SQL Server Configuration Manager استفاده کنید.

تغییر Service Account در SQL Server Configuration Manager

برای تغییر Account:

باز کردن تنظیمات سرویس

به مسیر زیر بروید:

SQL Server Configuration Manager → SQL Server Services → SQL Server (Instance Name) → Propertie

انتخاب Account جدید

در بخش:

Log On As

گزینه زیر را انتخاب کنید:

Built-in account

یا:

This account

برای Domain Account:

مثال:

CONTOSO\svc_sql

برای gMSA:

مثال:

CONTOSO\gmsa_sql$

Password برای gMSA وارد نمی‌شود.

Restart سرویس SQL Server

بعد از تغییر Account، سرویس SQL Server باید Restart شود.

پس از Restart بررسی کنید:

  • Databaseها Online هستند
  • Jobها اجرا می‌شوند
  • Backupها موفق هستند
  • Applicationها اتصال دارند

بررسی Login مربوط به Service Account در SQL Server

Service Account با SQL Login یا Database User یکسان نیست.

یعنی:

DOMAIN\svc_sql

الزاماً نباید Login داخل SQL Server داشته باشد.

SQL Server Engine از Windows Authentication برای Service Identity استفاده می‌کند، اما این موضوع با Loginهای کاربران متفاوت است.

اشتباهات رایج در انتخاب Service Account

استفاده از Domain Administrator

یکی از خطرناک‌ترین اشتباهات:

CONTOSO\Domain Admin

به عنوان SQL Server Service Account است.

این کار مشکلات امنیتی جدی ایجاد می‌کند.

اگر SQL Server آسیب ببیند، مهاجم می‌تواند به کل Domain دسترسی پیدا کند.

استفاده از یک Account برای تمام سرویس‌ها

برخی سازمان‌ها یک Account مشترک ایجاد می‌کنند:

CONTOSO\sqlservice

و آن را برای:

  • Database Engine
  • SQL Agent
  • Reporting Services
  • Backup Service

استفاده می‌کنند.

این روش توصیه نمی‌شود.

بهتر است سرویس‌های مهم Identity جداگانه داشته باشند.

نمونه معماری بهتر:

Component Recommended Service Account کاربرد
Database Engine gmsa_sql_engine$ اجرای موتور اصلی SQL Server و مدیریت Data File و Transaction Log
SQL Server Agent gmsa_sql_agent$ اجرای Jobها، Maintenance Plan و Taskهای زمان‌بندی شده
SSIS gmsa_sql_ssis$ اجرای Packageهای ETL و انتقال داده
SSRS gmsa_sql_ssrs$ اجرای گزارش‌ها و اتصال به منابع داده

قرار دادن Service Account در Local Administrators

این اشتباه بسیار رایج است.

بعضی مدیران برای حل Permission Error، Account سرویس SQL Server را عضو گروه زیر می‌کنند:

BUILTIN\Administrators

این کار مشکل را حل می‌کند، اما یک ضعف امنیتی ایجاد می‌کند.

SQL Server برای اجرا نیاز به Administrator بودن ندارد.

استفاده از Local System در Production

اگرچه SQL Server با Local System اجرا می‌شود، اما این کار معماری مناسبی نیست.

مشکل اصلی:

SQL Service = SYSTEM Privilege

است.

یعنی Database Engine بیش از نیاز خود قدرت دارد.

عدم طراحی Permission برای Backup

یکی از مشکلات رایج:

Backup روی مسیر شبکه تعریف می‌شود اما Service Account دسترسی ندارد.

مثال:

BACKUP DATABASE ProductionDB
TO DISK='\\NAS01\Backup\DB.bak'

خطای:

Operating system error 5(Access is denied.)

معمولاً به دلیل Permission اشتباه Service Account است.

معماری پیشنهادی Service Account در محیط Enterprise

در یک معماری استاندارد SQL Server، بهتر است هر سرویس Identity مشخص خود را داشته باشد.

نمونه:

Database Engine

CONTOSO\gmsa_sql_engine$

مسئول:

  • اجرای موتور دیتابیس
  • مدیریت Data File
  • مدیریت Transaction Log

SQL Server Agent

CONTOSO\gmsa_sql_agent$

مسئول:

  • اجرای Job
  • Maintenance Plan
  • Alert

SSIS Service

CONTOSO\gmsa_ssis$

مسئول:

  • ETL Process
  • Data Integration

Reporting Services

CONTOSO\gmsa_ssrs$

مسئول:

  • Report Execution
  • Data Source Connection

طراحی Permission بر اساس اصل Least Privilege

یکی از مهم‌ترین اصول امنیتی در SQL Server، اصل Least Privilege یا «کمترین سطح دسترسی مورد نیاز» است.

بر اساس این اصل، Service Account باید فقط دسترسی‌هایی را دریافت کند که برای اجرای وظایف خود نیاز دارد و نباید دسترسی اضافی مانند Administrator داشته باشد.

مدل صحیح:

مرحله توضیح
Service Account هویت اجرای سرویس SQL Server
Required Permission فقط مجوزهای لازم برای انجام وظایف سرویس
Required Resource منابع مورد نیاز مانند Data Folder، Backup Folder یا File Share

نمونه:

سرویس دسترسی مورد نیاز
SQL Server Database Engine دسترسی به مسیر فایل‌های Database و Log
SQL Server Agent دسترسی به Jobها و منابع مورد نیاز Taskها
Backup Process دسترسی Write روی مسیر Backup

مدل اشتباه:

مرحله مشکل
Service Account حساب اجرای سرویس
Local Administrator دسترسی بیش از نیاز
Full Server Access افزایش ریسک امنیتی

قرار دادن Service Account در گروه Local Administrators یکی از خطاهای رایج در طراحی SQL Server است. اگر SQL Server یا یکی از سرویس‌های وابسته دچار آسیب‌پذیری شود، مهاجم می‌تواند از سطح SQL Server به سطح سیستم‌عامل دسترسی گسترده‌تری پیدا کند.

معماری استاندارد باید به این شکل باشد:

Service Account → فقط Permission مورد نیاز → فقط Resource مورد نیاز

نه:

Service Account → Administrator → دسترسی کامل به سرور

رعایت این اصل باعث کاهش سطح حمله، ساده‌تر شدن Audit و افزایش امنیت کلی زیرساخت SQL Server می‌شود.

پیشنهاد برای محیط‌های مختلف

محیط Development

پیشنهاد:

Virtual Account

دلایل:

  • ساده
  • بدون مدیریت Credential
  • مناسب توسعه‌دهنده‌ها

محیط Test

پیشنهاد:

Virtual Account

یا:

Domain Service Account

بسته به نیاز شبکه.

محیط Production کوچک

پیشنهاد:

Dedicated Domain Service Account

با تنظیمات:

  • Password Policy مناسب
  • عدم عضویت در Administrator
  • Audit دوره‌ای

محیط Production Enterprise

پیشنهاد:

gMSA

به خصوص برای:

  • Always On Availability Group
  • Failover Cluster
  • Multiple SQL Servers
  • Hybrid Environment

چک‌لیست انتخاب Service Account برای SQL Server

قبل از انتخاب Account این موارد بررسی شود:

آیا SQL Server عضو Domain است؟

اگر خیر:

Virtual Account معمولاً گزینه مناسب‌تری است.

اگر بله:

gMSA یا Domain Account بررسی شود.

آیا SQL Server به منابع شبکه دسترسی دارد؟

مانند:

اگر بله، Identity شبکه اهمیت زیادی دارد.

آیا چند SQL Server دارید؟

اگر تعداد سرورها زیاد است:

gMSA مدیریت ساده‌تری دارد.

آیا Always On یا Cluster استفاده می‌کنید؟

در این حالت معمولاً باید از:

  • gMSA
  • Domain Service Account

استفاده شود.

آیا Password Management مشکل ایجاد می‌کند؟

اگر پاسخ مثبت است:

gMSA بهترین گزینه است.

جمع‌بندی نهایی

Service Account در SQL Server یکی از بخش‌های مهم طراحی امنیت و معماری زیرساخت است. انتخاب اشتباه آن ممکن است باعث ایجاد مشکلات امنیتی، خطاهای دسترسی، مشکل در Backup و اختلال در قابلیت‌های Enterprise شود.

به صورت خلاصه:

Local System

برای SQL Server Production توصیه نمی‌شود، زیرا سطح دسترسی بسیار بالایی دارد.

Network Service

امن‌تر از Local System است، اما در محیط‌های بزرگ محدودیت مدیریت دارد.

Virtual Account

برای محیط‌های ساده و Serverهای مستقل گزینه مناسبی است.

Domain Service Account

در بسیاری از سازمان‌ها قابل استفاده است، اما نیازمند مدیریت Credential است.

gMSA

بهترین انتخاب برای محیط‌های Enterprise، Always On، Cluster و معماری‌های مدرن SQL Server است.

در طراحی حرفه‌ای SQL Server باید همیشه این اصل رعایت شود:

سرویس SQL Server باید فقط به اندازه نیاز خود دسترسی داشته باشد، نه بیشتر.

انتخاب صحیح Service Account یکی از اولین قدم‌ها برای ساخت یک SQL Server امن، پایدار و قابل مدیریت است.

نیاز به طراحی امن SQL Server در محیط سازمانی دارید؟

انتخاب صحیح Service Account تنها یک تنظیم ساده در زمان نصب SQL Server نیست؛ بلکه بخشی از معماری امنیت، دسترس‌پذیری و پایداری پایگاه داده سازمان شما است.

تیم توسعه فناوری اطلاعات لاندا با تجربه در طراحی و بهینه‌سازی زیرساخت‌های SQL Server، می‌تواند در زمینه‌های زیر همراه سازمان‌ها باشد:

  • طراحی معماری استاندارد SQL Server
  • بررسی و اصلاح تنظیمات Service Account
  • پیاده‌سازی gMSA در محیط‌های Enterprise
  • تنظیم Kerberos و SPN
  • بهینه‌سازی امنیت و سطح دسترسی SQL Server
  • طراحی Always On Availability Group و راهکارهای High Availability

اگر در حال راه‌اندازی یک SQL Server جدید هستید یا می‌خواهید امنیت و استانداردهای سرورهای فعلی خود را بررسی کنید، با کارشناسان لاندا تماس  بگیرید.

No comment

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

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