Керування обліковими записами користувача (створення, зміна і видалення) звичайно виконує адміністратор бази даних.
Для створення облікового запису користувача використовується команда мови SQL CREATE USER.
Для створення облікового запису користувача необхідно мати системну привілею CREATE USER.
Роль адміністратора бази даних (DBA) призначається користувачеві за допомогою облікового запису SYSTEM. Користувач з цим обліковим записом ставати власником додатка, створюючи об'єкти й облікові записи інших користувачів.
Для створення облікового запису користувача потрібно підключитися до бази даних (до СУРБД Oracle) за допомогою програми SQL*PLUS і видати наступну команду SQL:
SQL> DROP USER leader14;
User dropped.
SQL> CREATE USER leader
2 IDENTIFIED by leader
3 DEFAULT tablespace users
4 TEMPORARY tablespace temp
5 Profile default;
User created.
При створенні облікового запису користувача вказується його пароль, привласнюється використовуване за замовчуванням табличний простір і тимчасовий табличний простір.
У даному коді створення облікового запису користувача фраза IDENTIFIED by говорить про те, що впізнання користувача відбувається по паролю. При використанні впізнання по паролю, слідом за IDENTIFIED by повинний бути приведений пароль (відображається на екрані), що показує, який пароль повинний увести користувач для одержання доступу до бази даних.
Цей метод відрізняється від впізнання операційною системою, у якому користувач орієнтується поза базою даних (IDENTIFIED EXTERNALLY).
Використовуваний за замовчуванням табличний простір (DEFAULT tablespace) застосовується для розміщення створюваних користувачем об'єктів, якщо для них явно не зазначений інший табличний простір.
Тимчасовий табличний простір (TEMPORARY tablespace ) необхідний при використанні команд SQL, яким потрібно виділити деякий тимчасовий сегмент для сортування в ході звичайної SQL команди – обробки даних
При використанні компонента SQL*Plus пароль задається за допомогою ключових слів IDENTIFIED BY.
При створенні нового користувача для нього можна специфікувати квоти для будь-яких табличних просторів.
Кожен користувач має табличний простір, за замовчуванням, що вказується при його створенні фразою DEFAULT TABLESPACE. Коли користувач створює об'єкт і не вказує табличний простір, СУРБД Oracle зберігає цей об'єкт у табличному просторі, за замовчуванням, даного користувача.
Вирішуючи, яке табличний простір призначити користувачеві, пропонується врахувати наступні рекомендації:
· установлювати табличний простір, за замовченням, лише в тому випадку, якщо користувач має привілеї на створення об'єктів (таких, як таблиці, представлення, кластери) і має на нього квоту;
· якщо можливо, табличний простір за замовченням повинний бути відмінним від SYSTEM.
При виконанні користувачем пропозиції SQL, що вимагає тимчасового сегмента, Oracle зберігає цей сегмент у тимчасовому табличному просторі даного користувача.
У СУРБД Oracle тимчасовим табличним простором для користувача за замовчуванням призначається табличний простір TEMP. Установити тимчасовий табличний простір можна під час створення користувача, і змінити його пізніше.
При створенні користувача можна призначити для нього квоту для будь-якого табличного простору. Призначення квоти переслідує дві мети:
· якщо користувач має привілеї створювати об'єкти якого-небудь типу, він може створювати об'єкти в зазначеному табличному просторі;
· СУРБД Oracle обмежує кількість пам'яті, що може бути розподілена об'єктам користувача в зазначеному табличному просторі. Це обмеження визначається квотою.
У приведеному вище прикладі створення облікового запису користувача lider, йому привласнене табличний простір за замовчуванням – USERS тимчасовий табличний простір – TEMP. Ці, задані за замовчуванням, табличні простори USERS і TEMP, не створюються окремо. Вони створені при інсталяції СУРБД Oracle, у процесі створення завантажувальної бази даних.
Створення облікового запису користувача, при створених раніше для нього за замовчуванням та тимчасового табличних просторів
При створенні таких облікових записів користувача, табличний простір за замовчуванням DEFAULT tablespace і тимчасовий табличний простір TEMPORARY tablespace створюються окремо, до створення коду облікового запису користувача.
Приклад коду створення облікового запису користувача при раніше створених для нього табличного простору за замовчуванням і тимчасового табличного простору:
SQL> DROP USER leader;
User dropped.
SQL> CREATE USER leader14
2 IDENTIFIED by leader14
3 DEFAULT TABLESPACE user_leader14
4 TEMPORARY TABLESPACE temp_leader14
5 QUOTA 4M on user_lider14
6 PROFILE default;
User created.
КомандаCREATE USER by leader14 (ім'я користувача) в СУРБД Oracle. Усередині бази даних ім'я користувача повинне бути унікальним стосовно інших імен користувачів і ролям; користувач і роль не можуть мати те саме ім'я. Далі, кожен користувач має асоційовану з ним схему. Усередині схеми, кожен об'єкт схеми повинний мати унікальне ім'я. В імені користувача регістр символів не враховується, і воно не може бути зарезервованим словом.
Ім'я користувача повинне починатися з букви. В однобайтових наборах символів довжина імені може бути від 1 до 30 символів, а в багатобайтовых воно обмежується 30 байтами. У базі даних, що використовує мультибайтовий набір символів, корпорація Oracle настійно рекомендує, щоб кожне ім'я користувача містило хоча б один однобайтовий символ.
КомандаIDENTIFIED by leader14 (пароль користувача) в Oracle. У базі даних, що використовує мультибайтовий набір символів, паролі користувачів повинні включати тільки однобайтові символи. Мультибайтові символи в паролях не допускаються. . Він повинний складатися як мінімум із трьох символів, а бажано — із шести і більш. Паролем не може бути слово (сукупність букв) або слово, усередині якого утримується числовий символ. Довжина паролів, як і імен користувачів, обмежується 30 байтами, і вони теж не можуть бути зарезервованими словами.
До створення коду облікового запису користувача з ім'ям leader14 і паролем leader14, були створені наступні табличні простори:
· DEFAULT TABLESPACE user_leader14. Табличний простір за замовчуванням з ім'ям user_leader14, і розміром 5 Мб;
· TEMPORARY TABLESPACE temp_leader14. Тимчасовий табличний простір з ім'ям temp_leader14, і розміром 2 МБ.
Профіль за замовчуванням PROFILE DEFAULT. Профіль керує обсягів ресурсів, що може мати користувач. PROFILE DEFAULT – це стандартна частина будь-якої бази даних. Значення кожного елемента ресурсу в DEFAULT використовуються всіма іншими профілями за замовчуванням, якщо для них не встановлено іншого значення. Значення в профілі DEFAULT установлені на UNLIMITED, якщо для них не зазначено вище. Можна змінювати профіль DEFAULT так само, як і будь-який інший профіль, але його не можна видаляти або знищувати. Цей профіль завжди повинний існувати.
QUOTA Квота — це ліміт на обсяг простору, що можуть займати об'єкти бази даних користувача в табличній області. Призначення квоти переслідує двох мет:
· Якщо користувач має привілеї створювати об'єкти якого-небудь типу, то він зможе створювати об'єкти в зазначеному табличному просторі.
· СУРБД Oracle обмежує кількість пам'яті, що може розподілена об'єктам користувача в зазначеному табличному просторі, це обмеження визначається квотою.
· Щоб користувач міг працювати з усім простором табличної області, потрібно вказати quota unlimited on user_lider14
Зміна облікових записів користувача, приклади зміни табличних просторів
З використанням команди SQL ALTER USER можна змінювати облікові записи користувачів.
Приклад, зміни використання квот на табличний простір привласнений за замовчуванням командою QUOTA 4M on user_leader14 при створенні користувача, на без лімітне використання табличного простору командою QUOTA UNLIMITED on user_leader14, загальним розміром 5 Мб:
SQL> ALTER USER lider14 QUOTA UNLIMITED on user_leader14;
User altered.
Наступний синтаксис дозволяє змінити табличний простір заданий за замовчуванням user_leader14 розміром 5Мб на новий табличний простір з ім'ям user_leader14_10 розміром 10 Мб для користувача leader14:
SQL> ALTER USER leader14 DEFAULT TABLESPACE user_leader14_10;
User altered.
Даний код зміни облікового запису користувача буде виконаний, якщо табличний простір з ім'ям user_leader14_10 буде створено до створення користувача leader14.
Зміна пароля користувача
Однієї з найбільш звичайних прохань, з якими користувачі звертаються до адміністраторів бази даних, є зміна паролів користувачів. Це завдання можна виконати з використанням команди SQL ALTER USER. У даному прикладі виробляється заміна пароля leader14, на пароль alex14 користувача leader14.
SQL> ALTER USER leader14 IDENTIFIED by alex14;
User altered.
Видалення облікових записів користувача
Видалення облікового запису користувача виробляється за допомогою команди SQL DROP USER. Якщо користувач, створив у базі дані об'єкти, то до цієї команди необхідно додати опцію CASCADE. При використанні опції CASCADE до команди DROP USER, виробляється видалення всіх об'єктів, що належать користувачеві бази даних.
SQL> DROP USER leader14;
Ім'я користувача так і залишилося leader14. Змінився тільки пароль користувача з leader14 на alex14.