چگونه می‌توان داده‌ها را در SQL Server سرور Mask کرد ؟

چگونه می‌توان داده‌ها را در SQL Server سرور Mask کرد ؟

نوشته شده توسط: محمد نوزعیم
۱۱ آذر ۱۳۹۹
زمان مطالعه: 14 دقیقه
۵
(۱)

محافظت از اطلاعات ما ، خصوصاً برای ما که با سرورهای پایگاه داده کار می کنیم ، اجباری است، امنیت جدا از این شغل نیست. Masking گزینه خوبی برای محافظت از اطلاعات حساس است و به همین دلیل اکنون خواهیم دید که چگونه می توان داده ها را در SQL Server پنهان کرد.

قبل از شروع

من دیده ام که بسیاری از اوقات مفاهیم اشتباه گرفته می شوند و ما باید از تفاوت ها آگاه باشیم.

Encrypting != Masking

چگونه کار می کند؟

Mask به معنای واقعی کلمه ، ایجاد یک لایه محافظ است. پوشاندن ، پنهان کردن چیزی، نشان دادن چیزی که واقعی نیست. Masking در SQL Server می تواند بسیار مفید باشد و ما می توانیم این کار را از طریق فناوری به نام Dynamic Data Masking انجام دهیم. سپس می توانیم داده ها را در اختیار کاربران غیرمجاز قرار دهیم.

دوره آموزشی SQL Server ویژه برنامه‌نویسان

Data Masking را در کجا اعمال می کنیم؟

می توانیم درباره برخی سناریوها فکر کنیم :

محیط های تست و توسعه
مراکز تماس و برنامه های مرتبط با دسترسی محدود به داده ها
برخی از DBA ها با دسترسی محدود
تحلیلگران پایگاه داده با دسترسی محدود
موارد خارجی که با داده های ما کار می کنند.

کدنویسی

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

چهار عملکرد اساسی Mask وجود دارد.

;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

همانطور که می بینید کاربری که به عنوان ‘nonAdminUser‘ فراخوانی می شود ، داده های تغییر یافته با Masking Layer یا Random Data را مشاهده می کند (بسته به عملکردی که اعمال کرده اید) با استفاده از همان دستور SELECT در جدول.

توابع Mask در SQL Server

آخرین ملاحظات

هرگز فراموش نکنید که Data Masking در SQL Server به طور ۱۰۰% از اطلاعات شما محافظت نمی کند. به معنای واقعی کلمه شما از Mask برای نمایش داده ها استفاده می کنید ، محتوا همچنان همانطور که هست ذخیره می شود.
از چه چیزی محافظت می کنیم؟ مهم است که ابتدا داده های حساس را در SQL Server پیدا کنید و سپس آنها را به طور مناسب نشانه گذاری کنید.
اگر می خواهید درباره مجوزها و بهترین روش ها بیشتر بدانید ، می توانید نگاهی به اسناد رسمی بی اندازید.

چه رتبه ای می‌دهید؟

میانگین ۵ / ۵. از مجموع ۱

اولین نفر باش

title sign
دانلود مقاله
چگونه می‌توان داده‌ها را در SQL Server سرور Mask کرد ؟
فرمت PDF
4 صفحه
حجم 1 مگابایت
دانلود مقاله
title sign
معرفی نویسنده
محمد نوزعیم
مقالات
1 مقاله توسط این نویسنده
محصولات
0 دوره توسط این نویسنده
محمد نوزعیم
پروفایل نویسنده
title sign
دیدگاه کاربران