PDA

View Full Version : رمزکردن دیتامدل



m-khorsandi
سه شنبه 20 تیر 1391, 12:32 عصر
سلام
من میخوام ساختار بانک اطلاعاتی رو توی SQL Server رمز کنم تا قابل خوندن نباشه، SQL Server 2005, 2008, 2012 چنین قابلیتی داره؟

مرسی

حمیدرضاصادقیان
سه شنبه 20 تیر 1391, 12:42 عصر
سلام
بله این قابلیت وجود داره.
با استفاده از TDE (http://msdn.microsoft.com/en-us/library/bb934049.aspx) میتوانید اینکارو انجام بدید.
البته با این مورد دیتابیس شما کلا Encrypt خواهد شد و دسترسی attach یا backup/restore روی سیستم دیگه به کاربر نمیده بدون اطلاع از کلید.
همچنین شما میتونید اطلاعات رو نیز در سطح column نیز Encrypt کنید.

m-khorsandi
سه شنبه 20 تیر 1391, 16:22 عصر
Transparent data encryption (TDE) performs real-time I/O encryption and decryption of the data and log files

ظاهرا فقط برای رمز کردن اطلاعات و فایل Log استفاده میشه.

حمیدرضاصادقیان
سه شنبه 20 تیر 1391, 20:16 عصر
بله.
شما میخواهید کسی نتونه ساختار جداول رو ببینه؟
از طریق Encrypt این قابلیت وجود نداره.ولی شما میتونید دسترسی کاربران رو به اون جداول deny کنید یا با استفاده از Trigger های سطح سرور کاربران رو کنترل کنید و بهشون اجازه کاری رو ندید.
همچنین میتوانید توسط audit کنترل کنید که چه اتفاقی روی سرور میافته و براساس اون کارهای خاصی رو انجام بدید.
حالا اگر میشه بیشتر توضیح بدید که دقیقا میخواهید چه کاری انجام بدید و قصدتون از اینکار چیه؟
یعنی میخواهید کاربر نتونه جداول رو تغییر بده و یا...؟

tadeh2010
چهارشنبه 21 تیر 1391, 19:57 عصر
سلام دوستان
با عذر خواهی از جناب خرسندی
جناب صادقیان سوال آخرتان سوال من می باشد اگر می توانید کمکم بکنید
من می خواهم یوزر را بر روی دیتابیسم طوری تعریف بکنم که فقط دیتابیس توسط همان یوزر دیده بشود و attache , deattach بشود
چه بکنم؟

m-khorsandi
پنج شنبه 22 تیر 1391, 10:19 صبح
دقيقاً ميخوام هيچ كاربری نتونه ساختار جداول رو ببينه كه البته اين شامل توابع، پروسيجرها و ... هم ميشه،
و ساير كارها و تغييرات رو با اسكريپت انجام بدم

حمیدرضاصادقیان
شنبه 24 تیر 1391, 12:33 عصر
توابع و Procedure ها و view رو میتوانید با with Encryption هنگام ساخت اونها رمز نگاری کنید که کسی نتونه واردش بشه.
ولی برای جداول دسترسی خاصی نداریم.مگر اینکه دسترسی View کل User هارو محدود کنید و SA هم فقط دست خودتون باشه . البته با استفاده از sp_addExtendedProperty (http://avinashily.blogspot.ch/2011/05/how-to-hide-table-in-sql-server.html) میتوانید یک کاری کنید که در Management Studio نتونه کاربر اونو ببینه ولی اینکه دسترسی نداشته باشه فقط باید user تعریف کنید و دسترسی ها رو محدود کنید.

tadeh2010
شنبه 24 تیر 1391, 21:46 عصر
یوزر را چگونه بایستی تعریف بکنیم که از باز شدن مجدد در سیستمی دیگر جلوگیری نماییم؟

baktash.n81@gmail.com
یک شنبه 25 تیر 1391, 07:52 صبح
یکی از روش هایی که وجود داره اینه که شما همچیز رو Encrypt کنی .... حتی ساختار جداول ولی تا اونجایی که من می دونم SQL همچین امکانی رو مستقیم نمی ده پس خودتون باید زحمتش رو بکشید ... یعنی اسم جداول و فیلد ها و View ها رو Encrypt کنید بعد یه سری متد برای Encrypt و Decrypt تو کد برنامتون بنویسید و به Data Layer اضافه کنید ... حتی کلید این encrypt می تونه بر اساس مشخصات سخت افزاری باشه که بانک و نرم افزارتون جای دیگه نتونه کار کنه ... فقط جوری رفتار کنید که بعد یه تاپیک دیگه اینجا باز کنید بگید کلید Encryption ام رو گم کردم چه جوری می شه اطلاعات رو Decrypt کرد