آموزش برنامه نوسی

آموزش برنامه نویسی سی شارپ asp,net mvc asp.net core angular emberjs و ...

آموزش برنامه نویسی سی شارپ asp,net mvc asp.net core angular emberjs و ...

نمیدانم چه میخواهم بگویم


<a href="https://www.zangin.ir">بهترین نرم افزار اتوماسیون اداری</a>

مخفی کردن اطلاعات هنگام نمایش

جمعه, ۲۵ اسفند ۱۳۹۶، ۰۱:۳۸ ق.ظ


شاید برای شما پیش اومده باشه که بخواهید هنگام نمایش اطلاعات ، اونها رو مخفی کنید . مثلا بخواهید فقط سه رقم شماره موبایل رو نمایش بدید. یا مثلا حرف اول ایمیل رو نمایش بدین ولی اطلاعات به صورت کاملا صحیح و درست در داخل دیتابیس ذخیره شده باشند. از طریق کنترل دسترسی ها شما نمیتونید این تغییرات رو اعمال کنید.
به عنوان مثال فرض کنید شما قصد دارید شماره های تلفن به شکل زیر نمایش داده بشه
0912XXXXXXXXX
ولی داده های شماره ها به صورت کاملا صحیح در دیتابیس ذخیره شده و کاربر نیز دسترسی Select به این ستون رو داره فقط میخواهیم موقع نمایش اطلاعات به این شکل نمایش داده بشه.
راه اولش این هست سمت Client ودر UI این مورد هندل بشه
راه دوم استفاده از Dynamic Data Masking در SQL Server هست که در این مقاله به شما نحوه استفاده از اون رو آموزش خواهم داد.
برای استفاده از این قابلیت باید در جدول و بر روی فیلد مورد نظر این تغییرات رو اعمال کنید.
اگر جدول جدیدی میخواهید بسازید و نیاز به فعال سازی این قابلیت دارید میتونید از ساختار زیر در هنگام ساخت جدول استفاده کنید.
CREATE TABLE HR.EmployeePersonalData
(empid int NOT NULL PRIMARY KEY,
salary int MASKED WITH (FUNCTION = 'default()') NOT NULL,
email_address varchar(255) MASKED WITH (FUNCTION = 'email()') NULL,
voice_mail_pin smallint MASKED WITH (FUNCTION = 'random(0, 9)') NULL,
company_credit_card_number varchar(30) MASKED WITH (FUNCTION = 'partial(0,"XXXX-",4)') NULL,
home_phone_number varchar(30) NULL
);
GO

اگر جدول وجود داره و نیاز دارید این قابلیت رو به یک فیلد اضافه کنید از شکل زیر استفاده کنید.
ALTER TABLE HR.EmployeePersonalData
ALTER COLUMN home_phone_number
ADD MASKED WITH (FUNCTION = 'partial(4,"-XXX",0)');
GO

همچنین اگر این قابلیت بر روی یک فیلد فعال باشه و شما بخواهید یک کاربر به صورت کامل اطلاعات رو ببینه میتونید با استفاده از دستور زیر بهش دسترسی بدین که کل اطلاعات رو بدون اعمال Masking ملاحظه کنه.
Grant UNMASK TO test_user;
و اگر بخواهید مجدد دسترسی نمایش کل اطلاعات رو ازش بگیرید و به صورت Mask شده دیتاها رو ملاحظه کنه میتونید از دستور زیر استفاده کنید.
Revoke UNMASK TO test_user;
برای توضیحات تکمیل تر به این لینک مراجعه کنید.
https://docs.microsoft.com/en-us/sql/relational-databases/security/dynamic-data-masking

ارادتمند شما
حمیدرضا صادقیان

موافقین ۰ مخالفین ۰ ۹۶/۱۲/۲۵
کدچی

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی