خانه SQL Server چگونه می توان داده ها را در SQL Server سرور Mask کرد؟ SQL Server امنیت SQL Server نوشته شده توسط: تیم فنی نیک آموز تاریخ انتشار: ۱۱ آذر ۱۳۹۹ آخرین بروزرسانی: ۲۱ شهریور ۱۴۰۳ زمان مطالعه: 14 دقیقه ۴ (۲) Data Masking در SQL Server نوعی تکنیک امنیتی برای محافظت از اطلاعات حساس و محرمانگی دادههاست. امنیت و محافظت از اطلاعات برای مدیران پایگاه داده و کسانی که با سرورهای دیتابیس کار میکنند، همواره جزو اولویتهاست و این تکنیک امنیتی به کمکشان میآید تا آنها را به این هدف نزدیکتر کند. در این مقاله، میخواهیم شیوۀ ماسک کردن در SQL Server را بررسی کنیم و ببینیم که چگونه میتوان دادهها را در سرور SQL پنهان کنیم. قبل از شروع بسیاری از اوقات، مفاهیم با هم اشتباه گرفته میشوند و مهم است که از این تفاوتها آگاه باشیم: Encrypting! = Masking ماسک کردن در SQL Server چیست؟ Mask به معنای ایجاد یک لایۀ محافظ است؛ پوشاندن، پنهان کردن چیزی یا نشان دادن چیزی که واقعی نیست. Data Masking در SQL Server به پوشاندن دادهها و جایگزین کردن آنها با مقادیر ساختگی گفته میشود و هدف آن جلوگیری از دسترسی غیرمجاز به اطلاعات محرمانه بدون تغییر دادههای اصلی در پایگاه داده است. دادهها براساس نقش یا سطح دسترسی کاربر در طول اجرای کوئریها پنهان میشوند. ماسک کردن در SQL Server برای حفظ امنیت دادهها بسیار مفید و ضروری است. شما میتوانید این کار را از طریق فناوری Dynamic Data Masking انجام دهید. در این حالت حتی اگر دادهها در اختیار کاربران غیرمجاز قرار بگیرد، خطرات امنیتی آنها را تهدید نمیکند. چرا از ماسک کردن در SQL Server استفاده می کنیم؟ ماسک کردن در SQL Server از دسترسی غیرمجاز کاربران به دادههای حساس جلوگیری میکند. با پوشاندن آنها در سطوح مختلف پایگاه داده، کنترل کامل دادهها را در اختیار شما قرار میدهد. در صورتی که قصد دارید امکان دسترسی به دادهها را برای یک کاربر فراهم کنید، باید از مجوز Unmask استفاده کنید. این مجوز میتواند در سطح دیتابیس، جدول یا حتی ستون به کاربر داده شود و نقش او را تغییر دهد. همچنین میتوانید در صورت نیاز، دسترسی او را لغو کنید. Data Masking در SQL Server روشی دقیق برای کنترل و محدود کردن دسترسی به دادههای ذخیرهشده در دیتابیس است و مدیریت امنیت دادهها را بهبود میبخشد. چه زمانی از ماسک کردن در SQL Server استفاده می کنیم؟ پوشاندن داده های حساس در SQL Server در این موقعیتها به کارتان میآید: محیطهای تست و توسعه مراکز تماس و برنامههای مرتبط با دسترسی محدود به دادهها برخی از DBAها با دسترسی محدود تحلیلگران پایگاه داده با دسترسی محدود موارد خارجی که با دادههای ما کار میکنند انواع روش های ماسک کردن در SQL Server ماسک کردن در SQL Server بسیار آسان است و با ستونهایی انجام میشود که دادههای حساس دارند. چهار عملکرد اساسی Data Masking در SQL Server وجود دارد که نمونۀ کدنویسی آنها را در زیر میبینید. USE master; GO -- Create User nonAdminUser IF EXISTS (SELECT TOP 1 1 FROM sys.syslogins WHERE name = 'nonAdminUser') BEGIN DROP LOGIN nonAdminUser; DROP USER nonAdminUser; END GO CREATE LOGIN nonAdminUser ,WITH PASSWORD = N'123456' ,DEFAULT_DATABASE = master ,DEFAULT_LANGUAGE = us_english ,CHECK_EXPIRATION = OFF; CHECK_POLICY = OFF; GO CREATE USER nonAdminUser FOR LOGIN nonAdminUser; ALTER ROLE db_datareader ADD MEMBER nonAdminUser; ALTER ROLE db_datawriter ADD MEMBER nonAdminUser GO -- Create table appliying masking functions DROP TABLE IF EXISTS dbo.UserInfo; GO CREATE TABLE dbo.UserInfo ( ,id INT IDENTITY(1, 1) ,FirstName VARCHAR(15) ,LastName VARCHAR(15) MASKED WITH (FUNCTION = 'default()') ,CreditCard VARCHAR(25) MASKED WITH (FUNCTION = 'partial(4,"XXXXXXX",0)') ,Email VARCHAR(25) MASKED WITH (FUNCTION = 'email()') DocNumber BIGINT MASKED WITH (FUNCTION = 'random(111111, 999999)')); GO INSERT INTO dbo.UserInfo ( ,FirstName ,LastName ,CreditCard ,Email DocNumber ) VALUES ('Mohammad', 'Nozaim', '4940-9898-8989-1234', 'mohammadnozaime@Gmail.com', 123581321); GO SELECT * FROM dbo.UserInfo; GO -- Run simulating a different user connection -- nonAdminUser only have datareader role EXECUTE AS USER = 'nonAdminUser'; SELECT * FROM dbo.UserInfo; REVERT; کاربرد های ماسک کردن در SQL Server پوشاندن داده های حساس در SQL Server یک تکنیک امنیتی داده محسوب میشود و به شما این امکان را میدهد که دادههای حساس را مبهم کنید تا از دید بقیه پنهان شوند. کاربردهای این تکنیک امنیتی به شرح زیر است: حملات امنیتی دیگر تأثیری بر سلامت و امنیت دادههای شما نخواهد داشت. زمانی که میخواهید دادهها را آزمایش کنید و به دادههای اصلی نیازی ندارید، در این شرایط میتوانید از دادههای ماسکشده کپی بگیرید و آنها را با دادههای واقعی جایگزین کنید تا دمو یا آزمایش را با اطمینان خاطر از امنیت دادههای اصلی انجام دهید. این تکنیک تضمین میکند که دادهها به شکل اصلی خود باز نمیگردند و امنیت آنها کاملاً تأمین شده است. از دسترسی غیرمجاز به اطلاعات حساس و شخصی و نشت آنها جلوگیری میشود. بهاشتراکگذاری دادهها با اشخاص ثالث را با اطمینان از پنهان بودن اطلاعات حساس انجام میدهید. پیاده سازی ماسک کردن دیتا در این بخش، شیوۀ ماسک کردن دادهها را در ۳ مرحله شرح میدهیم. مرحلۀ اول: ایجاد جدول جدید در اولین مرحله، یک جدول جدید ایجاد کنید و دادهها را در جدول قرار دهید. در تصویر زیر میبینید که جدول کارکنان ایجاد شده و مقادیری مثل اسم، فامیل، حقوق، ایمیل و شمارۀ تلفن در آن قرار گرفته است. مرحلۀ دوم: ایجاد کاربر جدید در مرحلۀ بعد، یک کاربر جدید را انتخاب کنید و مجوز ورود انتخابی را برای آن کاربر در نظر بگیرید. یعنی میتوانید مشخص کنید که کاربر میتواند کدام جدولها یا ستونها را مشاهده کند. در تصویر زیر، TestUser میتواند تمام دادهها را مشاهده کند، چون کوئری هنوز ماسک نشده است. مرحلۀ سوم: اعمال کردن Masking در این مرحله میخواهیم به عنوان نمونه، دادههای ستون LastName را ماسک کنیم. سینتکس آن به شکل زیر خواهد بود: “Alter table [Table Name] ALTER [Column Name] ADD MASKED WITH (FUNCTION = ‘default()’)”. زمانی که ماسک کردن دیتا اعمال شد، میتوانید برنامه را به عنوان TestUser اجرا کنید و ببینید که دادههای ستون مد نظر کاملاً پوشانده شده است. مثالی از نحوه پیاده سازی ماسک کردن دیتا در SQL Server همانطور که در تصویر زیر میبینید، کاربری که به عنوان «nonAdminUser» فراخوانی میشود، دادههای تغییریافته را بسته به عملکردی که اعمال کردهاید، با Masking Layer یا Random Data مشاهده میکند؛ با استفاده از همان دستور SELECT در جدول. تفاوت ماسک کردن در SQL Server و Encryption تفاوت اصلی پوشاندن دادهها (Mask) با رمزگذاری (Encryption) در بازیابی آنهاست. زمانی که دادهها را رمزگذاری میکنید، به اطلاعاتی ناخوانا تبدیل میشوند و فقط با کلید رمزگذاری میتوانید آنها را به حالت عادی بازگردانید. دادههای واقعی در قالب ناخوانا حفظ میشوند و سرقت اطلاعات در این حالت فایدهای نخواهد داشت. اوضاع برای ماسک کردن در SQL Server متفاوت است. زمانی که دادهها پوشانده میشوند، دادههای واقعی با اطلاعات فرضی جایگزین میشوند و هیچ راهی برای بازگرداندن دادهها به حالت اولیه وجود ندارد. دادههای واقعی دیگر قابل مشاهده و بازیابی نیستند. البته همچنان میتوانید با دادههای پوشاندهشده کار کنید و قابل استفاده هستند، اما دادههای اصلی را دیگر نمیتوانید بازیابی کنید. اگر میخواهید دادههای حساس را ذخیره یا به جای دیگری منتقل کنید، بهتر است از رمزگذاری استفاده کنید. اگر هم قصد دارید بدون افشای دادههای واقعی از آنها استفاده کنید، ماسک کردن دیتا برای شما گزینۀ مناسبتری است. بررسی ماسک شدن دیتا در جداول بعد از اینکه Data Masking در SQL Server را به اتمام رساندید، باید نتایج را آزمایش کنید. یعنی بررسی کنید که آیا دادههای پوشاندهشده همان ساختار و قالب دادههای اصلی را حفظ کردهاند یا خیر. همچنین باید مطمئن شوید که فرایند ماسک کردن دادهها بر یکپارچگی آنها اثری نداشته است. اگر مراحل ذکرشده را به درستی کنید، دادهها به مفاهیمی ناخوانا و بدون معنی تبدیل میشوند. به این ترتیب، میتوانید مطمئن باشید که ماسک شدن دیتا با موفقیت انجام شده است. توابع Mask در SQL Server در تصویر زیر، ۴ تابع ماسک کردن SQL Server را به همراه توضیحات و مثالهای آن مشاهده میکنید. آخرین ملاحظات هرگز فراموش نکنید که Data Masking در SQL Server به طور ۱۰۰% از اطلاعات شما محافظت نمیکند. شما در واقع از Mask برای نمایش دادهها استفاده میکنید و محتوا همانطور که هست، ذخیره میشود. پس از چه چیزی محافظت میکنیم؟ مهم است که ابتدا دادههای حساس را در SQL Server پیدا کنید و سپس آنها را به طور مناسب نشانهگذاری کنید. اگر میخواهید دربارۀ مجوزها و بهترین روشهای ماسک کردن در SQL Server بیشتر بدانید، میتوانید نگاهی به اسناد رسمی بیندازید. چه رتبه ای میدهید؟ میانگین ۴ / ۵. از مجموع ۲ اولین نفر باش دانلود مقاله چگونه می توان داده ها را در SQL Server سرور Mask کرد؟ فرمت PDF 4 صفحه حجم 1 مگابایت دانلود مقاله معرفی نویسنده مقالات 373 مقاله توسط این نویسنده محصولات 0 دوره توسط این نویسنده تیم فنی نیک آموز معرفی محصول مسعود طاهری دوره آموزش امنیت در SQL Server 2022 7.000.000 تومان مقالات مرتبط ۱۹ شهریور SQL Server علت Attach نشدن دیتابیس در SQL Server و راه حل آن تیم فنی نیک آموز ۱۱ شهریور SQL Server پروتکل های SSL و TLS چه تفاوت هایی دارند؟ تیم فنی نیک آموز ۰۸ شهریور SQL Server اهمیت مانیتورینگ در SQL Server چیست؟ | تمام آنچه که باید از مانیتورینگ بدانید تیم فنی نیک آموز ۰۳ شهریور SQL Server اعمال گواهینامه SSL روی SQL Server تیم فنی نیک آموز دیدگاه کاربران لغو پاسخ دیدگاه نام و نام خانوادگی ایمیل ذخیره نام، ایمیل و وبسایت من در مرورگر برای زمانی که دوباره دیدگاهی مینویسم. موبایل برای اطلاع از پاسخ لطفاً مرا با خبر کن ثبت دیدگاه Δ Msef.mail@gmail.com ۱۷ / ۰۹ / ۹۹ - ۱۰:۴۵ جالب بود پاسخ به دیدگاه صفایی ۱۶ / ۰۹ / ۹۹ - ۰۲:۰۳ سلام این امکان روی چه نسخه ای از sql server پشتیبانی می شود پاسخ به دیدگاه مسعود طاهری ۲۲ / ۰۹ / ۹۹ - ۰۶:۴۸ از نسخه ۲۰۱۶ به بعد پاسخ به دیدگاه صفایی ۱۶ / ۰۹ / ۹۹ - ۰۲:۰۳ سلام این امکان روی چه نسخه ای از sql server پشتیبانی می شود پاسخ به دیدگاه