PDA

View Full Version : ROLe



hasankhani
سه شنبه 26 اردیبهشت 1385, 10:42 صبح
با سلام خدمت شما دوستان عزیز به خصوص جناب آقای افرا
می خواستم در مورد ایجاد role ها و طریقه استفاده کردن آنها و امکانات آن از تجربه شما دوستان استفاده کنم.

hmm
چهارشنبه 27 اردیبهشت 1385, 11:06 صبح
اگه چندین کاربر از یه سطح دسترسی خاص استفاده میکنن بجای اینکه شما برای هر کاربر grant ها رو set کنی میتونی به role تعریف کنی و هر grant که میخوای به این role بدی و بعد به هر کدوم از اون کاربر ها grant این role رو معرفی کنی
در مجموع role کار grant دادن با یوزرهای زیاد رو راحتتر میکنه

majid_afra222
چهارشنبه 27 اردیبهشت 1385, 12:23 عصر
سلام
اوراکل برای راحتی و کنترل مدیریت مجوزها از Roleها استفاده میکنه. Roleها گروههای نامداری هستن که با مجوزهای اعطا شده به کاربران یا دیگر Roleها مرتبط هستند، و برای مدیریت راحتتر مجوزها در بانک اطلاعاتی طراحی شدن.

ویژگیهای Role :
- با همان دستوراتی که برای اعطا یا پس گرفتن مجوزهای سیستمی بکار برده می شوند، برای اعطا یا پس گرفتن مجوزها از کاربران استفاده می شوند.
- به هر کاربر یا Role می توانند داده شوند. اما یک Role نمی تواند به خودش اعطا شود و همچنین بصورت چرخشی مجوزها اعطا شوند.
- دارای توصیفات مربوط به خود در Data Dictionary می باشد.
- دارای نام واحد (Unique) می باشد، در username ها و Roleها.
- نمی تواند شامل هر دو مجوز سیستمی و Object بصورت همزمان باشد.
- ممکن است برای هر کاربر دارای مجوز Role بصورت enable یا disable باشد.
- می تواند شامل کلمه عبور برای enable شدن باشد.
- در هیچ اسکیمایی قرار ندارد و کسی صاحب آن نیست.

مزایای استفاده از Roleها :
- مدیریت راحتتر مجوزها :
با استفاده از Roleها بجای اینکه مجموعه ای از مجوزها را به چندین کاربر مختلف بدهیم، مجوز را به یک Role نسبت داده و Role را به هر یک از کاربران اختصاص می دهیم.
- مدیریت پویای مجوزها :
در صورتیکه مجوزی که با یک Roleدر ارتباط است تغییر کند، تمام کاربرانی که به امتیاز آن Role رادارند، بصورت اتوماتیک مجوزهای مجوزهای تغییر داده شده را در اختیار خواهند داشت.
- انتخاب مجوزهای در دسترس
Roleها می توانند enable و یا disable شده و مجوزها را بصورت موقت در دسترس قرار داده یا غیر قابل دسترس کنند.
- بالابردن کارآیی
با disable کردن Roleها، مجوزهای کمتری در زمان اجرای عبارات بررسی می شوند. با استفاده از Roleها تعداد مجوزها داده شده موجود در data dictionary کاهش می یابد.
- امکان تخصیص آنها به سیستم عامل
دستورات سیستم عامل یا برنامه های کاربردی می توانند Roleها را به کاربران موجود در بانک اطلاعاتی تخصیص بدهند.

نحوه ایجاد یک Role


CREATE ROLE role [NOT IDENTIFIED | IDENTIFIED
{BY password | EXTERNALLY | GLOBALLY | USING package}]


اگه خواستید ادامه خواهد داشت ....

hasankhani
شنبه 30 اردیبهشت 1385, 09:29 صبح
با سلام خدمت شما دوستان عزیز
جناب آقایان HMM و افرا از توضیحات شما استفاده کردیم
اقای افرا نیکی و پرسش؟
اگر ادامه دهید ممنون می شوم

majid_afra222
شنبه 30 اردیبهشت 1385, 18:20 عصر
نحوه ایجاد یک Role
با استفاده از عبارت CREATE ROLE می توان Roleها را ایجاد کرد. برای اینکار مجوز CREATE ROLE نیاز می باشد.
در صورتیکه یک Role را بصورت NOT IDENTIFIED یا IDENTIFIED EXTERNALLY یا BY Password تعریف کنید، اوراکل این Role را با گزینه WITH ADMIN OPTION به کاربران اعطا می کند.
برای ایجاد Role از دستور زیر استفاده کنید :


CREATE ROLE role [NOT IDENTIFIED | IDENTIFIED
{BY password | EXTERNALLY | GLOBALLY | USING package}]

که :
role نام Role می باشد.
NOT IDENTIFIED بیانگر اینست که احتیاجی به بررسی صحت مجوزهای کاربر در زمان enable کردن Role نمی باشد.
IDENTIFIED بیانگر اینست که بررسی صحت مجوزهای کاربر در زمان enable کردن Role باید انجام شود.
BY password کلمه عبوری را که کاربر در زمان enable کردن Role باید وارد نماید را تعیین می کند.
EXTERNALLY بیانر اینست که کاربر قبل از enable کردن Role، باید توسط یک سرویس خارجی تایید هویت شود (مثل سیستم عامل یا یک سرویس دهنده دیگر)
GLOBALLY بینگر اینست که کاربر برای استفاده ازRole باید توسط enterprise directory service تایید اعتبار شده باشد، قبل از اینکه Role با استفاده از دستور SET ROLE یا در زمان Login کاربر enable شده باشد.
USING package یک application role ایجاد می کند، که Role می تواند تنها با استفاده از برنامه کاربری استفاده کننده از package تعیین شده enable شود.

استفاده از Enterprise Manager برای ایجاد Role
1- کنسول را اجرا کنید:


%oemapp console

2- کنسول را در حالت standalone اجرا کنید.
3- به بانک اطلاعاتی مورد نظرتان بروید.
4- وارد بانک اطلاعاتی شوید.
5- وارد پوشه Security شوید.
6- روی پوشه Role کلیک راست کرده و گزینه Create را انتخاب کنید.
7- نام Role مورد نظر را وارد کنید.
8- اختیاری، Roleها و مجوزهای مورد نظرتان را به Role جدید نسبت دهید.
9- دکمه Create را کلیک کنید.
نکته : می توانید کنسول را از روی Start Menu نیز اجرا کنید.


Roleها از پیش تعریف شده
زمانیکه اسکریپت ایجاد بانک اطلاعاتی را اجرا می کنید، لیست از Role ها بصورت اتوماتیک برای بانکهای اطلاعاتی اوراکل ایجاد می شوند. Roleهای CONNECT, RESOURCE وDBA برای پشتیبانی و سازگاری با ویرایشهای قبلی سرورهای اوارکل ایجاد می شوند.
Role های EXP_FULL_DATABASE و IMP_FULL_DATABASE برای راحتی و سادگی استفاده از ابزارهای Import و Export ایجاد می شوند.
Role های DELETE_CATALOG_ROLE، EXECUTE_CATALOG_ROLE و SELECT_CATALOG_ROLE برای دسترسی به ویوهای data dictionary و packageها ایجاد می شوند.
این Role ها را می توان به کاربرانی که نقش DBA را ندارند ولی احتیاج به دسترسی به ویوها و جداول موجود در data dictionary را دارند، اعطا کرد.

Role های ویژه دیگر
سرور اوراکل همچنین Role های دیگری را نیز برای اجازه مدیریت بانک اطلاعاتی برای شما ایجاد می کند. در بیشتر سیستمهای عامل، این Role ها را OSOPER و OSDBA می نامند. این نامها ممکن است در سیستم عامل مورد استفاده شما تفاوت داشته باشد.
نکته : در سیستم عامل ویندوز هم گروه کاربری ای به نام ORA_DBA بصورت پیش فرض ساخته می شود که کاربران عضو این گروه میتوانند، به بانک اطلاعاتی محلی خود بدون نیاز به نام کاربری، کلمه عبور و نام سرویس و تنها با مشخص نمودن Role به بانک محلی متصل شوند. برای مثال :


CONNECT / AS SYSDBA

Role های دیگری نیز برای کار با بانک اطلاعاتی ایجاد می شوند. برای مثال AQ_ADMINISTRATOR_ROLE مجوزهای لازم برای مدیریت Advanced Queuing را به کاربر اعطا می کند.
AQ_USER_ROLE نیز Role منسوخی ست که برای سازگاری با نسخه 8.0 باقی مانده است.

اگه زنده بودیم ادامه خواهد داشت ....

hmm
چهارشنبه 03 خرداد 1385, 07:30 صبح
مرسی مجید جان ادامه بده

majid_afra222
پنج شنبه 04 خرداد 1385, 21:34 عصر
سلام
می بخشید دیر شد، ادامه ....

تغییر دادن Role ها
تنها می توان چگونگی تایید اعتبار یک Role را تغییر داد. برای تغییر اطلاعات Role باید Role را با اختیار ADMIN در اختیار داشته باشید یا اینکه مجوز سیستمی ALTER ANY ROLE را داشته باشید.
برای تغییر یک Role از دستور زیر استفاده کنید :


ALTER ROLE role {NOT IDENTIFIED | IDENTIFIED
{BY password |USING package| EXTERNALLY | GLOBALLY }};

که :
role نام Role می باشد.
NOT IDENTIFIED بیانگر اینست که احتیاجی به بررسی صحت مجوزهای کاربر در زمان enable کردن Role نمی باشد.
IDENTIFIED بیانگر اینست که بررسی صحت مجوزهای کاربر در زمان enable کردن Role باید انجام شود.
BY password کلمه عبوری را که کاربر در زمان enable کردن Role باید وارد نماید را تعیین می کند.
EXTERNALLY بیانگر اینست که کاربر قبل از enable کردن Role، باید توسط یک سرویس خارجی تایید هویت شود (مثل سیستم عامل یا یک سرویس دهنده دیگر)
GLOBALLY بیانگر اینست که کاربر برای استفاده ازRole باید توسط enterprise directory service تایید اعتبار شده باشد، قبل از اینکه Role با استفاده از دستور SET ROLE یا در زمان Login کاربر enable شده باشد.

استفاده از Enterprise Manager برای تغییر Role
1. کنسول را اجرا کنید:


%oemapp console

2. کنسول را در حالت standalone اجرا کنید.
3. به بانک اطلاعاتی مورد نظرتان بروید.
4. وارد بانک اطلاعاتی شوید.
5. وارد پوشه Security شوید.
6. وارد پوشه Role شده و Role مورد نظر را انتخاب کنید.
7. تغییرات مورد نظر را اعمال کرده و دکمه Apply را کلیک کنید.
نکته : می توانید کنسول را از روی Start Menu نیز اجرا کنید.


تخصیص دادن Role ها
برای اعطای یک Role به یک کاربر، از دستوری شبیه به دستوری که مجوزهای سیستمی را به کاربران تخصیص می دهیم، استفاده می کنیم :


GRANT role [, role ]...
TO {user|role|PUBLIC}
[, {user|role|PUBLIC} ]...
[WITH ADMIN OPTION]


که :
role Role می باشد که به یک کاربر یا یک Role دیگر اعطا می شود.
PUBLIC Role را به تمام کاربران اعطا می کند.
WITH ADMIN OPTION صاحب امتیاز را قادر می سازد تا Role را به کاربران دیگر یا Role های دیگر اعطا کند.
(در صورتیکه یک Role را با این خصوصیت به کاربری اعطا کنید، صاحب امتیاز می تواند Role را به کاربران دیگر اعطا کرده یا از امتیاز آنرا لغو کند، و حتی Role را حذف کند.)

کاربری را که Role را ایجاد کرده است، بصورت ضمنی Role ایجاد شده، به او با ADMIN OPTION اعطا می شود. کاربری که Role بدون امکان ADMIN OPTION به او اعطا شده است، برای اعطا و لغو امتیاز Role به دیگر کاربران، به مجوز سیستمی GRANT ANY ROLE نیاز دارد.

نکته : تعداد حداکثر Role های enable بانک اطلاعاتی که کاربران می توانند داشته باشند، بوسیله پارامتر MAX_ENABLED_ROLES تعیین می شود.

ادامه دارد.....