Как создать пользователя в oracle sql developer
Перейти к содержимому

Как создать пользователя в oracle sql developer

  • автор:

Как создать пользователя в oracle sql developer

Продолжаем работать с SQL Plus! Попробуем сделать следующее, войти пользователем SYSTEM с паролем manager, а затем не закрывая плюс сменим действующего пользователя.

Запускаем плюс, вводим пользователя, пароль и название сетевой службы (proba! или что-то еще!), получилось? Замечательно! Теперь проделаем примерно следующее:

SQL> CONNECT SCOTT/TIGER@PROBA Соединено. SQL>

Команда CONNECT производит подключение к серверу требуемой схемы(пользователя) в соответствии с заданной строкой соединения! Вот так:

USER/PASSWORD@NETWORKSERVICE
  • USER — это пользователь(схема в экземпляре БД).
  • PASSWORD — пароль для входа в схему.
  • NETWORKSERVICE — имя службы сформированное программой Net8i.

В предыдущем случае мы зашли в схему(пользователя) SCOTT с паролем доступа TIGER с помощью сетевой службы PROBA. Берите сразу на заметку или на память: в Oracle Server в паролях доступа не допускаются цифровые символы! Так же созданный пользователь, создает схему в экземпляре БД и понятие схема и пользователь в Oracle практически тождественны! Сама строка подключения, вами еще не однократно, будет использоваться в дальнейшем! Теперь, я думаю пришло время, создать собственную схему, тем более она нам понадобиться, в дальнейшем, для того, что бы научиться использовать PL/SQL! Первое и самое простое, действие, для создания нашей схемы, ввести следующее:

SQL> CONNECT SYSTEM/MANAGER@PROBA Соединено.

Для начала заходим на сервер, как администратор.

Вводим ниже приведенную строку, которая создает пользователя MILLER с паролем в системе KOLOBOK (можете написать свое!), который будет жить в табличном пространстве USER владея им целиком и захватив в свое распоряжение еще кусочек табличного пространства TEMP, так на всякий случай, пригодится.

SQL> CREATE USER MILLER IDENTIFIED BY KOLOBOK DEFAULT TABLESPACE USERS 2 QUOTA UNLIMITED ON USERS QUOTA 2M ON TEMP 3 / Пользователь создан.

После нажатия Enter на последней строке видим, что все прошло удачно!

Но, это только полдела, теперь этому пользователю, нужно, дать ряд прав и первостепенное, это создавать сессию с сервером! Теперь введем нижеследующее: Можно по очереди или целиком! Главное, чтобы сработал последний опреатор COMMIT. Иначе наши старания пройдут бесследно!

GRANT CREATE SESSION TO MILLER / GRANT CREATE TABLE TO MILLER / GRANT CREATE PROCEDURE TO MILLER / GRANT CREATE TRIGGER TO MILLER / GRANT CREATE VIEW TO MILLER / GRANT CREATE SEQUENCE TO MILLER / GRANT CREATE VIEW TO MILLER / GRANT DELETE ANY TABLE TO MILLER / GRANT DROP ANY TABLE TO MILLER / GRANT DROP ANY PROCEDURE TO MILLER / GRANT DROP ANY TRIGGER TO MILLER / GRANT DROP ANY VIEW TO MILLER / GRANT ALTER ANY TABLE TO MILLER / GRANT ALTER ANY TABLE TO MILLER / GRANT ALTER ANY PROCEDURE TO MILLER / GRANT ALTER ANY TRIGGER TO MILLER / COMMIT /

В результате получим кучу сообщений типа: «Привилегии предоставлены.»

И последнее: «Фиксация обновлений завершена.»

Операторы GRANT предоставляют пользователю, определенные привилегии. В типах привилегий пока, предметно разбираться не будем, скажу только, что данное мероприятие можно проделать еще проще, если собрать все строки, которые мы вводили в файл, затем использовав команду START или операцию «@»! Можете проделать это сами, предварительно введя, находясь в схеме SYSTEM:

SQL> DROP USER MILLER CASCADE 2/ Пользователь удален.

Затем соберите все строки, в файл, скажем CrMiller.sql, поместите его в каталог, например, Temp, и введите следующее:

SQL> @C:\TEMP\CRMILLER.SQL

Выскочит множество надписей, последняя из которых должна быть: «Фиксация обновлений завершена.» Значит, все прошло нормально и пользователь создан! Дальше в схеме MILLER, мы развернем, ряд оьбектов БД и посмотрим как это будет происходить!

Так же на заметку в заключении SQL Plus, есть еще много внутренних команд, например, очень полезной может оказаться SET TIME ON приглашение примет вот такой вид:

14:09:52 SQL>

Например, можно оценивать время на запрос из таблицы!

Если ввести SET TIME OFF, то все станет по прежнему. Например, если написать SHOW USER (мне напоминает Cisco IOS!), то увидим примерно следующее:

SQL> SHOW USER USER имеет значение "MILLER"

По ходу дела, мы познакомимся с большинством из них!

CREATE USER ОПЕРАТОР

Oracle оператор CREATE USER создает учетную запись базы данных, которая позволяет войти в базу данных Oracle.

Синтаксис

Синтаксис оператора CREATE USER в Oracle/PLSQL:

CREATE USER user_name
IDENTIFIED < BY password
| EXTERNALLY [ AS ‘certificate_DN’ ]
| GLOBALLY [ AS ‘[ directory_DN ]’ ]
>
[ DEFAULT TABLESPACE tablespace
| TEMPORARY TABLESPACE
< tablespace | tablespace_group >
| QUOTA integer [ K | M | G | T | P | E ]
| UNLIMITED >
ON tablespace
[ QUOTA integer [ K | M | G | T | P | E ]
| UNLIMITED >
ON tablespace
]
| PROFILE profile_name
| PASSWORD EXPIRE
| ACCOUNT < LOCK | UNLOCK >
[ DEFAULT TABLESPACE tablespace
| TEMPORARY TABLESPACE
< tablespace | tablespace_group >
| QUOTA integer [ K | M | G | T | P | E ]
| UNLIMITED >
ON tablespace
[ QUOTA integer [ K | M | G | T | P | E ]
| UNLIMITED >
ON tablespace
]
| PROFILE profile
| PASSWORD EXPIRE
| ACCOUNT < LOCK | UNLOCK >]
] ;

Параметры и аргументы

user_name
Имя учетной записи базы данных, которую вы хотите создать.

PROFILE profile_name
Необязательный. Это имя профиля, который вы хотите назначить для учетной записи пользователя, чтобы ограничить объем ресурсов базы данных, присвоенных учетной записи пользователя. Если опустить этот параметр, профиль по умолчанию присваивается пользователю.

PASSWORD EXPIRE
Необязательный. Если этот параметр установлен, то пароль должен быть сброшен до того, как пользователь может войти в базу данных Oracle.

ACCOUNT LOCK
Необязательный. Он отключает доступ к учетной записи пользователя.

ACCOUNT UNLOCK
Необязательный. Включает доступ к учетной записи пользователя.

Пример

Если вы хотите, выполнить простой оператор CREATE USER, который создаст нового пользователя и назначит пароль, вы можете сделать следующее:

Как создать пользователя в oracle sql developer

Думаю, настало время разобраться с тем как же создаются «схемы» в БД Oracle. Под понятием схема имеется ввиду сам созданный аккаунт или говоря прямо — пользователь БД! Целью создания пользователя как раз и является получение схемы БД, с определенными правами и привилегиями. Создание пользователя в БД Oracle достаточно не сложный, но в тоже время довольно концептуальный момент. Для создания пользователя (схемы), применяется команда DDLCREATE USER. Она имеет следующий синтаксис:

------ CREATE USER [пользователь] IDENTIFIED BY [пароль] ---------------------------- ------ DEFAULT TABLESPACE [tablespace] QUOTA целое число [K][M] ON [tablespace] ----- ------ TEMPORARY TABLESPACE [tablespace] QUOTA целое число [K][M] ON [tablespace] --
  • [пользователь] [Username] — Имя пользователя (название схемы).
  • [пароль] [Password] — Пароль для учетной записи.
  • DEFAULT TABLESPACE — Табличное пространство в котором будут находиться создаваемые в данной схеме объекты. Эта настройка не дает пользователю права создавать объекты — здесь устанавливается только значение по умолчанию.
  • TEMPORARY TABLESPACE — Табличное пространство, в котором находятся временные сегменты, используемые в процессе сортировки транзакций.
  • QUOTA — Позволяет пользователю сохранять объекты в указанном табличном пространстве, занимая там место вплоть до определенного в квоте общего размера.

К слову сказать, в чем мы далее и убедимся. Для того, чтобы запросы пользователей могли создавать временные сегменты в табличном пространстве TEMP, им не нужны квоты на дисковое пространство. Попробуем создать пользователя! Запускайте SQL*Plus с пользователем SYS или SYSTEM пароли администраторов смотрите в шаге 5! Из всего выше сказанного, запишем вот такую конструкцию:

CREATE USER DUMMY IDENTIFIED BY DUMB DEFAULT TABLESPACE USERS QUOTA 100M ON USERS TEMPORARY TABLESPACE TEMP QUOTA 10M ON TEMP /

Здесь мы создаем пользователя (схему) DUMMY с паролем DUMB и позволяем ему резвится на 100 Мб пространства USERS и еще немного выделяем из пространства TEMP. Получаем в результате:

SQL> CREATE USER DUMMY IDENTIFIED BY DUMB 2 DEFAULT TABLESPACE USERS QUOTA 100M ON USERS 3 TEMPORARY TABLESPACE TEMP QUOTA 10M ON TEMP 4 / Пользователь создан.

Ок! Пользователь (схема) создан. Наверное, можно уже подключится и начать создавать объекты! Пробуем!

CONNECT DUMMY/DUMB@PROBA

Именное такой синтаксис подключения можно использовать, он еще называется строка коннекта и расписывается вот так:

---- [Username]/[Password]@[Sevice] ------------
SQL> CONNECT DUMMY/DUMB ERROR: ORA-01045: user DUMMY lacks CREATE SESSION privilege; logon denied Предупреждение: Вы больше не соединены с ORACLE.

Опа! Не повезло! Создание пользователя — это еще не все! Теперь ему нужно разрешить самое основное — создавать сессию с сервером. Сделать это можно командой GRANT. Она достаточно объемная и мы ей займемся чуть позже, а пока восстановим подключение:

SQL> CONNECT SYS/MANAGER@PROBA Соединено.

Даем пользователю право создавать сессию с сервером:

SQL> GRANT CREATE SESSION TO DUMMY 2 / Привилегии предоставлены.
SQL> CONNECT DUMMY/DUMB Соединено.

Вот теперь можно немного перевести дух. Итак, мы создали пользователя, определили ему табличные пространства, назначили квоты на них. И даже позволили создавать сессию с сервером. Давайте убедимся, что пользователь создан и чувствует себя нормально. Производим переконнект на админа БД:

SQL> CONNECT SYS/MANAGER@PROBA Соединено.

Дадим такой запрос к представлению DBA_USERS:

SELECT USERNAME, USER_ID, PASSWORD, ACCOUNT_STATUS, DEFAULT_TABLESPACE, TEMPORARY_TABLESPACE, PROFILE FROM DBA_USERS WHERE USERNAME = 'DUMMY' /
SQL> SELECT USERNAME, USER_ID, PASSWORD, ACCOUNT_STATUS, DEFAULT_TABLESPACE, 2 TEMPORARY_TABLESPACE, PROFILE 3 FROM DBA_USERS 4 WHERE USERNAME = 'DUMMY' 5 / USERNAME USER_ID PASSWORD ACCOUNT_STATUS DEFAULT_TABLESPACE TEMPORARY_TABLESPACE PROFILE -------- -------- ---------------- --------------- ------------------ -------------------- ------- DUMMY 64 E888ADB4D5FFE1B2 OPEN USERS TEMP DEFAULT

Кто знаком с криптографией, может на досуге раскусить — E888ADB4D5FFE1B2 или хотя бы провести аналогию с DUMB! Итак, все с нашей схемой в порядке! Осталось только разрешить пользователю создавать объекты БД.

GRANT CREATE TABLE TO DUMMY / GRANT CREATE PROCEDURE TO DUMMY / GRANT CREATE TRIGGER TO DUMMY / GRANT CREATE VIEW TO DUMMY / GRANT CREATE SEQUENCE TO DUMMY /
SQL> GRANT CREATE TABLE TO DUMMY 2 / Привилегии предоставлены. SQL> GRANT CREATE PROCEDURE TO DUMMY 2 / Привилегии предоставлены. SQL> GRANT CREATE TRIGGER TO DUMMY 2 / Привилегии предоставлены. SQL> GRANT CREATE VIEW TO DUMMY 2 / Привилегии предоставлены. SQL> GRANT CREATE SEQUENCE TO DUMMY 2 / Привилегии предоставлены.

Да, так как оператор GRANT это DDL, то COMMIT вызывается не явно! В данном случае мы разрешили пользователю, создавать такие основные объекты БД как — TABLE, PROCEDURE, TRIGGER, VIEW, SEQUENCE. Для начала этого достаточно. А что делать, если пользователю будет необходимо изменять эти объекты? Тогда нужно добавить еще немного прав, на изменение (ALTER) вот так:

GRANT ALTER ANY TABLE TO DUMMY / GRANT ALTER ANY PROCEDURE TO DUMMY / GRANT ALTER ANY TRIGGER TO DUMMY / GRANT ALTER PROFILE TO DUMMY /
SQL> GRANT ALTER ANY TABLE TO DUMMY 2 / Привилегии предоставлены. SQL> GRANT ALTER ANY PROCEDURE TO DUMMY 2 / Привилегии предоставлены. SQL> GRANT ALTER ANY TRIGGER TO DUMMY 2 / Привилегии предоставлены. SQL> GRANT ALTER PROFILE TO DUMMY 2 / Привилегии предоставлены.

Вот теперь он может не только создавать эти объекты, но и изменять их! А, что если пользователю необходимо будет удалить какой-либо объект или удалить записи из таблиц? Тогда нужно добавить права на удаление объектов БД вот так:

GRANT DELETE ANY TABLE TO DUMMY / GRANT DROP ANY TABLE TO DUMMY / GRANT DROP ANY PROCEDURE TO DUMMY / GRANT DROP ANY TRIGGER TO DUMMY / GRANT DROP ANY VIEW TO DUMMY / GRANT DROP PROFILE TO DUMMY /
SQL> GRANT DELETE ANY TABLE TO DUMMY 2 / Привилегии предоставлены. SQL> GRANT DROP ANY TABLE TO DUMMY 2 / Привилегии предоставлены. SQL> GRANT DROP ANY PROCEDURE TO DUMMY 2 / Привилегии предоставлены. SQL> GRANT DROP ANY TRIGGER TO DUMMY 2 / Привилегии предоставлены. SQL> GRANT DROP ANY VIEW TO DUMMY 2 / Привилегии предоставлены. SQL> GRANT DROP PROFILE TO DUMMY 2 / Привилегии предоставлены.

Уфф! Ну вот теперь кажется все! Пользователь действительно полноценный и может работать! Помните в шаге 6 мы с вами это уже проделывали, но тогда я не вдавался в подробности, так как было не до того! А, вот теперь давайте разберемся более детально и продолжим далее.

Создание пользователя с помощью Oracle SQL Developer

Есть множество способов создать пользователя в Oracle 10g Database. Но так как мы будем работать в Oracle SQL Developer – здесь будет описано, как создать пользователя с помощью этого средства.

1. Запустите Oracle SQL Developer из меню Пуск ® Программы ® SQL Developer (возможны отличия в пути).

2. Затем нужно настроить соединение с БД. На вкладке «Connections» нужно нажать «+» — New Connection, в результате появится окно создания нового соединения (рис. 10).

Рисунок 10 — Создание подключения в SQL Deveolper

3. В полях «Connection Name», «Username», «Password» нужно ввести имя соединение, затем имя пользователя – system и пароль, указанный при установке Oracle. На вкладке «Oracle» выбрать «TNS», затем выбрать «Network Alias», в выпадающем списке выбрать настроенную ранее нами сетевую службу ORCL.

4. На вкладке «Connections» нажмите на значок «+» (рис. 11).

Примечание: если Вы не выполняли процедуры сетевой настройки – выполнить этот шаг будет невозможно в том виде, как он здесь описан.

5. Теперь нажмем кнопку «Save» для сохранения настроенного нами соединения в списке «Connections», затем нажмем кнопку «Connect».

6. Нажмите «+» на узле «Other Users», вызовите контекстное меню правой кнопкой мыши на этом узле. Выберете «Create User».

Рисунок 11 — Вкладка «Connections»

7. Введите в поле «User Name» имя создаваемого пользователя, в полях «Enter Password» и «Confirm Password» введите дважды пароль для создаваемого пользователя, в полях «Default Tablepace» и «Temporary Tablespace» выбрать USERS и TEMP соответственно (рис. 12). Перейдите на вкладку «Roles».

8. Выберете в списке роли, отметив их галочками в колонке «Granted» как на рисунке 13. Перейдите на вкладку «System Privileges».

9. Выберете в списке системные привилегии, отметив их галочками в колонке «Granted» как на рисунке 14. Нажмите кнопку «Apply».

10. В результате программа перейдет на вкладку «Results», где будет отображаться ход создания пользователя (рис. 15). На вкладке «SQL» будет сформирован SQL-скрипт для создания пользователя. После вывода результа нажмите кнопку «Close».

Рисунок 12 — Окно создания пользователя вкладка «User»

Рисунок 13 — Окно создания пользователя вкладка «Roles»

Рисунок 14 — Окно создания пользователя вкладка «System Privileges»

Рисунок 15 — Окно создания пользователя вкладка «Results»

Создание пользователя завершено. Пользователь «TEST» появиляся в разделе «Other Users». Как было сказано вначале, есть несколько альтернативных способов создать пользователя. Далее мы кратко опишем способ как это можно сделать в Oracle Enterprise Manager, основанном на web-интерфейсе.

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *