برای ایجاد کاربران در اوراکل باید از دستور create user استفاده کنید. پیش از دنبال کردن مطالب، لازم است تا در صورت فراموشی، مطلب tablespace را مطالعه کنید. در این مطلب در کنار دستور create user دستور alter نیز توضیح داده می شود.شکل زیر نمای کلی استفاده از دستور create user را نشان می دهد. زمانی که کاربر را ایجاد می کنیم حداقل مجوزی که باید به آن اعطا شود، مجوزی است که به کاربر اجازه اتصال و ایجاد جلسه (session) را می دهد.

مطابق مثال هایی که خواهیم گفت، خواهید دید که می توانیم کاربر را قفل (lock) کنیم تا نتواند به سیستم وارد شود. در کنار این موارد حتما باید برای کاربر یک tablespace پیشفرض در نظر بگیریم و همچنین باید میزان فضایی را بر روی tablespace به کاربر اختصاص دهیم تا کاربر بتواند اشیا لازم (مانند جدول، ایندکس و غیره) را ایجاد کند.

در دستور CREATE USER، پارامتر user_name نام کاربر را تعیین می کند. عبارت IDENTIFIED BY تعیین می کند که اوراکل چگونه باید کاربر را احراز هویت کند. پیش از این روش های احراز هویت را توضیح دادیم. اگر بخواهیم کاربر از طریق پسورد احراز هویت شود، پس باید از IDENTIFIED BY password استفاده کنیم که به جای password باید پسورد دلخواه را وارد کنیم.

پس اگر به طور مثال بخواهیم کاربری به نام amirnami را ایجاد کنیم که این کاربر توسط پسورد احراز هویت می شود، باید دستور زیر را اجرا کنیم.

برای انکه کاربری بتواند یک جدول را ایجاد کند، به جز داشتن مجوز ایجاد جدول، باید به کاربر میزان فضایی را از کل فضای tablespace اختصاص دهیم. اگر مطالب مربوط به tablespace را به یاد داشته باشید، گفته بودیم که مجموع فضای tablespace برابر با مجموع فضای کل دیتا فایل های اختصاص داده شده به آن tablespace است. همچنین گفتیم که هر tablespace می تواند از یک تا چند دیتا فایل داشته باشد.عبارت default tablespace نام tablespace پیش فرض کاربر را تعیین می کند. همچنین عبارت temporary tablespace نام یا گروهی از tablespace های موقتی (temporary tablespace) را برای کاربر تعیین می کند. پس می توانیم دستور قبلی را به صورت زیر باز نویسی کنیم.

ایجاد کاربر تا اندازه زیادی انجام شد ولی هنوز میزان فضا یا محدودیت استفاده از کل فضای tablespace را برای کاربر مشخص نکرده ایم. عبارت quota میزان فضای یا میزان محدودیت استفاده از کل فضای tablespace توسط کاربر را تعیین می کند. اگر مقدار unlimited را به عبارت quota بدهیم، پس کاربر می تواند نامحدود از فضای tablespace استفاده کند. به طور مثال اگر کل فضا ۵۰ گیگابایت باشد، پس کاربر می تواند از ۵۰ گیگ استفاده کند.

اما قطعا کاربرهای مختلفی داریم که می خواهند داده های خود را درون tablespace ذخیره کنند. برای جلوگیری از بروز کبود فضا برای دیگر کاربرها، باید محدودیت را صراحتا تعیین کنیم. به طور مثال کاربر تنها می تواند ۵ گیگابایت یا ۱۰۰۰ مگابایت را استفاده کند. دستور زیر ۵ گیگابایت را به صورت ‘5g’ نعیین کرده ایم. اگر بخواهیم ۱۰۰۰ مگابایت محدودیت فضا تعیین کنیم، باید از ‘1000m’ استفاده کنیم. پس با اجرای یکی از دو دستور آخر، کاربر باید بتواند جدول و دیگر اشیا را ایجاد کند ولی هنوز کاربر امکان ورود را ندارد زیرا مجوز لازم را دریافت نکرده است. در مورد اعطای مجوز بلافاصله پس از تکمیل راهنمای دستور create user صحبت خواهیم کرد.

عبارت profile نام یک پروفایل از پیش ساخته شده را دریافت و به کاربر اختصاص می دهد. هدف از پروفایل ها محدود کردن استفاده کاربر از منابع پایگاه داده است. در مورد پروفایل ها در چندین مطلب مجزا بعدی به طور کامل صحبت شده است. اما اگر عبارت profile را تعیین نکنیم چه اتفاقی می افتد؟ اوراکل به صورت پیشفرض یک پروفایل به نام default را ایجاد کرده است و اگر صراحتا پروفایل را توسط عبارت profile تعیین نکنیم، اوراکل پروفایل پیشفرض default را به کاربر اختصاص می دهد.

زمانی که می خواهید یک کاربر معمولی یا مدیر مجبور به تغییر گذرواژه خود شود، از عبارت password expire استفاده می کنید تا گذرواژه آن کاربر را منقضی کنید.عبارت account تعیین می کند که آیا حساب کاربری قفل شده باشد یا نه. اگر مقدار lock را تعیین کنیم، حساب کاربری قفل می شود و برای خارج کردن یک حساب کاربری از حالت قفل، باید مقدار unlock را تعیین کنیم.

دستور ALTER USER

شکل  زیر دستور نمای کلی دستور alter user را نشان می دهد. از این دستور برای تغییر دادن یا تنظیم کردن خصوصیت های یک کابر استفاده می شود. در ادامه کاربردهای محتلف دستور alter user را توضیح خواهیم داد. توجه کنید که از این دستور برای تغییر خصوصیت های یک کاربر موجود و از قبل ایجاد شده استفاده می شود.

مثال – تعیین یا تغییر گذرواژه: فرض کنید که حساب کاربری را به نام amirnami دارید ولی در زمان ساخت آن تنها دستور CREATE USER amirnami را انجام داده اید، پسدر واقع گذرواژه ای برای آن تعیین نکرده اید. پس با انجام نخستین دستور زیر، باید گذرواژه ای را برای آن تعیین کنید. حال گمان می خواهید گذرواژه آن را تغییر دهید. پس باید دومین دستور زیر زیر را انجام دهید. توجه کنید که کاربری که دستورهای CREATE TABLE یا ALTER USER را دارد می تواند به ترتیب کاربری را بسازد یا ویژگی های آن را تغییر دهد.

مثال – فرض کنید که در زمان ایجاد کاربر tablespace پیشفرض برای این تعیین نشده است. برای تعیین tablespace باید از عبارت default tablespace از دستور alter tablespace استفاده کنیم. توجه کنید که tablespace ساختار منطقی اوراکل است که یک یا چندین Data File را در بر می گیرد. بنابراین برای اینکه شی های کاربر مانند جدول ها و نماها بتوانند در پایگاه داده نگهداری شوند، باید هر کاربر قابلیت نوشتن روی بخشی از فضای tablespace را داشته باشد. همچنین در دومین دستور، عبارت temporary tablespace در دستور alter user می توانیم برای تعیین tablespace موقتی استفاده کنیم.

همچنین اگر میزان محدودیت را تعیین نکرده اید باید از عبارت quota استفاده کنید. اگر می خواهید محدودیت مصرف فضا نباشد از unlimited استفاده کنید و در غیر این صورت باید صراحتا تعیین کنید.

مثال – تغییر پروفایل:  اگر در زمان ایجاد کاربر پروفایل را تعیین نکرده باشید به صورت پیشفرض پروفایل default به کاربر اختصاص داده می شود. اگر می خواهید آنرا تغییر دهید باید از عبارت profile استفاده کنید.

مثال – منقضی کردن گذرواژه کاربرگفتیم اگر بخواهیم کاربر را مجبور به تغییر گذرواژه کنیم باید از عبارت password expire استفاده کنیم تا گذرواژه کاربر منقضی شود.

مثال – قفل کردن حساب کاربریزمانی که اوراکل را نصب می کنیم یک سری از حساب های کاربری مانند sys و system ایجاد می شوند که شاید تعداد زیادی از آنها (به جز sys و system) را ما نیاز نخواهیم داشت، پس خود اوراکل آنها را به حالت lock قرار می دهد. اما چکونه حساب کاربری را قفل یا از حالت قفل خارج کنیم.در دستور create user و در زمان ایجاد کاربر گفتیم که می توانیم از عبارت account lock|unlock استفاده کنیم ولی اگر کاربر را ایجاد کردیم و عبارت account lock|unlock را مشخص نکردیم پس حساب کاربری قفل نخواهد بود.

مثال – کاربری را بدون تعیین گذرواژه ایجاد کنید. سپس توسط دستور alter user برای آن خصوصیت های مختلف را یکباره تعیین کنید.