ورود

View Full Version : سوال: چگونگی تعریف Role ها بازای جداول مورد نظر



Arsham**
سه شنبه 02 آذر 1389, 15:13 عصر
سلام:لبخندساده:
از همه ی دوستان عذر می خوام که یه سوال احتمالا" ساده می پرسم، ولی خودم ضمن تازه کار بودنم یکمی هم گیج شدم.:متعجب:
برای تعیین سطوح کاربران یک وبسایت همه گفته بودن باید از رولهای خوندن اطلاعات، اضافه کردن اطلاعات و ... استفاده کنیم. ولی فرض کنید توی سایتی 5 نوع کاربر داره و همشون هم می تونن بخشی از اطلاعات رو ببینن، بخشی رو اضافه کنن، بخشی رو حذف کنن ... .در این صورت که نمیشه اینجوری از رول ها استفاده کرد، بهتره بگم من نمی دونم چه جوری می شه استفاده کرد.
میشه رول رو طوری تعریف کرد که مثلا فقط روی جداول خاصی کار کنه؟
میشه به زبان ساده من رو راهنمایی کنین:خجالت:

حمیدرضاصادقیان
سه شنبه 02 آذر 1389, 15:58 عصر
دوست عزیز تعیین سطوح دسترسی چند راه داره. یکی اینکه یک جدول داشته باشین و برای هرکاربر دسترسی ها رو مشخص کنید یکی اینکه با استفاده از امکانات خود sql مانند schema,... اشیا رو دسته بندی کرده و دسترسی رو روی اونها اعمال کنید.
به جز این میتونید روی هر شی دسترسی جداگانه ایجاد کنید.
ولی راحتترین راه این هست که یک جدول داشته باشید و نام افراد باشه و برای قسمتهایی که میخواهید دسترسی تعیین کنید.
اگر جستجو هم کنید توضیح بیشتری در این زمینه وجود داره.
موفق باشید

m.hamidreza
سه شنبه 02 آذر 1389, 19:02 عصر
بسته به سناریو روش پیاده سازی میتونه متفاوت و البته کاملتر بشه.
جداول به این صورت میتونن تعریف بشن:

PermissionCategory که در بردارنده گروه سطح دسترسی هاست مانند مدیریت کاربران عادی.
Permission که در بردارنده سطح دسترسی هاست مانند امکان ریسِت پسورد کاربر عادی.
Role که در بردارنده نقش های کاربران هست مانند کاربر عادی یا ادمین.
RolePermission که انتساب هر Permission رو به هر Role انجام میده.
و در آخر User که در بردارنده نام های کاربری هست و یه ID از جدول Role میگیره.
موفق باشید.

Arsham**
چهارشنبه 03 آذر 1389, 09:42 صبح
دوست عزیز تعیین سطوح دسترسی چند راه داره. یکی اینکه یک جدول داشته باشین و برای هرکاربر دسترسی ها رو مشخص کنید یکی اینکه با استفاده از امکانات خود sql مانند schema,... اشیا رو دسته بندی کرده و دسترسی رو روی اونها اعمال کنید.
به جز این میتونید روی هر شی دسترسی جداگانه ایجاد کنید.
ولی راحتترین راه این هست که یک جدول داشته باشید و نام افراد باشه و برای قسمتهایی که میخواهید دسترسی تعیین کنید.

از توجهتون ممنونم :لبخندساده:
امنیت کدوم یک بیشتره؟ اگه از روشی که پیشنهاد دادین استفاده کنم باید توی جدول سطوح دسترسی رو چه جوری تعیین کنم؟ یعنی مثلا بگم کاربر مدیر insert-book,delete-book,add-adminو.... داره؟ یا توی صفحاتم باید چک کنم که کاربری که صفحه ی مورد نظر رو درخواست کرده چه کاربریه و انوقت صفحه براش لود بشه؟
میشه راجع به schema ها بیشتر توضیح بدید من یه search کلی کردم و توضیحاتی راجع بهش خوندم اما درباره ی پیاده سازیش چیزی نمی دونم.

حمیدرضاصادقیان
چهارشنبه 03 آذر 1389, 10:06 صبح
سلام.
روشی که در پست 3 بهش اشاره شده همون موضوعی هست که من بیان کردم فقط کاملتر توضیح دادند.
برای Schema ها اشیا شما رو دسته بندی میکنند. فرض کنید شما یک برنامه مالی دارید می نویسید. این برنامه از قسمتهای انبار- خزانه داری-حسابداری و... تشکیل شده است. حالا برای هرکدوم از این بخشها یک Schema تعریف میکنید و اشیا مرتبط با اونها رو در داخل اون Schema ها قرار میدید.
سپس کاربرایی که در Sql تعریف میکنید مشخص میکنید که این کاربر مثلا به کدوم Schema دسترسی داره و چه کارهایی میتونه انجام بده.

rooshan2008
چهارشنبه 03 آذر 1389, 20:57 عصر
با سلام
معضرت می خوام یه سوال دارم .
مگه کانکشن دسترسی به بانک سایت در واقع localسرور نیست؟
پس اینجوری امنیت زیاد اینجا به این موضوع ربطی نداره درسته؟
در واقع اگه از این روش استفاده کنیم باید به هر کاربری که به سایت وصل میشه یه یوزر پس اسکیوال داده بهش که نشدنی درسته ؟

حمیدرضاصادقیان
چهارشنبه 03 آذر 1389, 21:43 عصر
مگه کانکشن دسترسی به بانک سایت در واقع localسرور نیست؟

ببخشید منظور شما از این جمله چیست؟؟؟



پس اینجوری امنیت زیاد اینجا به این موضوع ربطی نداره درسته؟
در واقع اگه از این روش استفاده کنیم باید به هر کاربری که به سایت وصل میشه یه یوزر پس اسکیوال داده بهش که نشدنی درسته ؟

البته در این زمینه میشه از همون روش تعریف سطوح دسترسی در جداول مختلف استفاده کرد.(منظور در برنامه های تحت وب مخصوصا وب سایتها هست)

rooshan2008
چهارشنبه 03 آذر 1389, 22:08 عصر
با سلام خدمت استاد عزیز
منظورم این بود که کانکشن مربوط به اتصال به بانک ،سمت سرور هست. وقتی سایت رو درست میکنیم بر خلاف برنامه Windows Application رشته اتصال تقریبا ثابته و یک بار ست میشه و هر کلاینت برای اتصال به سرور نیاز به رشته اتصال از همان کلاینت نداره.
اگه این طور باشه با روش Schema باید برای هر کاربر یه یوزر اسکیوال اختصاص بدیم یا اونو عضو Schema مورد نظر قرار بدیم درسته ؟
اگه من اشتباه کردم به بزرگواریتون ببخشید.

حمیدرضاصادقیان
چهارشنبه 03 آذر 1389, 22:34 عصر
سلام.
نه برداشتتون درسته. البته میشه جورایی اینارو بهم مرتبط کرد ولی پیاده سازیش سخت میشه و راه ساده اش همونی هست که در پست شماره 3 توضیح داده شد.