Oracle выполнение команды ос
Oracle рекомендует следующий порядок действий для запуска БД: запуск Database Control, запуск listener-а, запуск БД. Запуск БД также является составным процессом. При запуске более сложного окружения, такого как cluster system или любого другого управляемого Enterprise Manager Grid Control могут быть дополнительные этапы, однако для Single Instance архитектуры этой последовательности вполне достаточно.
Запуск и подключение к Database Control
Для запуска Database Control необходимо запустить программу emctl, расположенную в папке $ORACLE_HOME/bin. Ниже перечислены команды для запуска, остановки и проверки состояния Database Control
emctl start dbconsole
emctl stop dbconsole
ecmtl status dbconsole
Для успешного выполнения этих команд должны быть установлены следующие системные переменные: PATH, ORACLE_HOME и ORACLE_SID. PATH используется операционной системой для поиска пути к программе emctl. ORACLE_HOME и ORACLE_SID используются для поиска командой emctl файлов конфигурации. Эти файлы расположены в трёх местах: папка ORACLE_HOME/sysman/config содержит общие настройки для всех экземпляров Database Control работающих с текущей домашней директорией Oracle. ORACLE_HOME/hostname_sid/sysman/config и ORACLE_HOME/oc4j/j2ee/ OC4J_DBConsole_ hostname_sid/config содержат дополнительные расширенные настройки для каждой БД(hostname – имя компьютера, sid – значение переменной ORACLE_SID).
На рисунке 3-3 показан результат выполнения команды запуска Database Control
Первая попытка запуска была неудачной так как не была установлена переменная ORACLE_SID. Без корректного значения этой переменной emctl не может найти необходимые файлы конфигурации (значение используется в названии папок). Команда проверки состояния ни что иное как запрос по адресу URL; доступность этого URL так же можно проверить в браузере
где hostname – это сетевое имя компьютера на котором запущен Database Control и port – это порт ответственный за входящие подключения. Если у вашего сервера несколько сетевых имён или несколько сетевых интерфейсов – можно использовть любой. Для определения порта можно использовать команду emctl либо посмотреть конфигурационный файл ORACLE_HOME/install/portlist.ini где указаны все порты настроенные OUI и DBCA. При незапущенном listener-е при подключении к Database Control вы увидите окно изображенное на рисунке 3-4.
Запуск listener-а БД
Listener – это процесс который следит за запросами к порту для подключения к базе данных. Запросы к БД (и весь остальной трафик после создания сессии) использует Oracle Net, закрытый протокол Oracle. Oracle Net – это прокотор который работает над любым низлежащим сетевым протоколом, обычно над TCP/IP. Управление listener-ом более детально расммотрим в главе 4, сейчас же рассмотрим как запустить listener. Это можно сделать двумя (в windows тремя) способами: используя программу lsnrctl, с помощью Database Control, запустить windows сервис.
Программа lsnrctl расположена в каталоге ORACLE_HOME/bin. Параметрами могут быть
lsnrctl start [listener name]
lsnrctl status [listener name]
Обратите внимание на первую строчку – там указаны сетевое имя и порт listener-а, а также на пятую снизу строку, которая обозначает что listener будет принимать подключения для сервиса ocp11g который создан для экземпляра ocp11g. Это критически важная информация для подключения к БД. Если БД была успешна создана с помощью DBCA значит listener настроен и запущен. Если нет вы увидите другой ответ команды lsnrctl status, тогда используйте команду lsnrctl для запуска или нажмите кнопку START LISTENER в окне Database Control показанном на рисунке 3-4.
Запуск SQL *Plus
В результате выполнения команды вы подключитесь к командной строке SQL, откуда можно подключиться используя различные параметры.
Запуск и остановка БД
Если быть точным – нельзя запустить и остановить БД: только экземпляр может быть запущен и остановлен, а база данны может быть подключена, открыта, отключена и закрыта. Данные операции можно совершить с помощью SQL *Plus выполнив команды STARTUP и SHUTDOWN или используя Database Control. В Windows это можно сделать также с помощью управления сервисом созданным для экземпляра БД. Системный журнал содержит подробную информацию об этих операциях когда бы они не были вызваны. Запуск и остановка – очень важные операции, информация об их выполнении всегда записывается и они могут быть инициированы только пользователями с особым уровнем доступа.
Подключение с повышенными правами доступа
Обычный пользователь не может запустить или остановить БД – потому что он авторизуется используя словарь данных. Это логически невозможно поскольку в момент запуска словарь данных ещё не доступен. Таким образом для запуска необходимо подключаться к серверу используя механизм внешней авторизации: системная авторизация пользователя как члена группы Oracle, или авторизация с использованием файла паролей. Тип авторизации указывается при выполнении команды CONNECT. Ниже представлены различные комбинации команды CONNECT после подключения к серверу используя программу SQL *Plus с параметром /NOLOG
connect user/pwd[@connect_alias] as sysdba
connect user/pwd[@connect_alias] as sysoper
connect / as sysdba
connect / as sysoper
где user – имя пользователя, pwd – пароль, connect_alias – сетевой идентификатор (рассмотрим в главе 4). Первый пример использует авторизацию с помощью словаря данных, база данных должны быть открыта или команда вернёт ошибку. Любой пользователь после подключения к БД используя данный синтаксис не сможет выполнить команды запуска и остановки базы данных. Два следующих примеры указывают Oracle использовать авторизацию с помощью файла паролей. Последние команды используют авторизацию операционной системы: Oracle проверяет является ли текущий пользователь членом группы Oracle, и если проверка успешна – пользователь подключается к БД как SYSOPER или SYSDBA. Пользователь подключившийся к базе данных любым способом из последних четырёх может выполнить команды запуска и остановки БД вне зависимости от состояния базы данных – она может быть даже не создана на этом этапе.
Если Database Control обнаруживает запущенный listener – то он использует авторизацию через словарь данных или файл паролей (в зависимости от выбора пользователя – рисунок 3-6). Если же listener не запущен (рисунок 3-4) при нажатии на кнопку STARTUP Database Control запрашивает системные имя пользователя и пароль для подключения к серверу.
SYSOPER и SYSDBA
SYSOPER и SYSDBA – это уровни доступа с повышенными полномочиями. Они доступны только при системной авторизации или авторизации с помощью файла паролей. Уровень доступа SYSOPER может выполнять команды
ALTER DATABASE [MOUNT|OPEN|CLOSE|DISMOUNT]
ALTER [DATABASE|TABLESPACE][BEGIN|END] BACKUP
Уровень доступа SYSDBA также может выполнять эти команды, плюс возможность создавать БД, запускать неполное восстановление и давать полномочия SYSOPER и SYSDBA другим пользователям.
Вам может быть интерестно под каким пользователем вы подключаетесь к БД когда используется системная авторизация. Чтобы это выяснить, после подключения к базе данных выполните команду show user (эту команду можно вызвать набрав sho user – не стоит недооценивать сокращения, они могут ускорить время набора команд) – результат показан на рисунке 3-7.
Уровень доступа SYSDBA использует пользоватля SYS – суперпользователя в системе и владельца словаря данных. Уровень доступа SYSOPER подключается как пользователь PUBLIC. PUBLIC – не пользователь в нормальном смысле, это пользователь который используется для задач администрирования, но (по умолчанию) не может просматривать или изменять данные. Подключаться с данными уровнями доступа стоит только для выполнения задач, которые не могут быть выполнены обычными пользователями.
Запуск: NOMOUNT, MOUNT и OPEN
Необходимо помнить что экземпляр БД и база данных это два разных объекта которые могут существовать независимо друг от друга. Когда останавливается экземпляр БД то структуры в памяти и фоновые процессы перестают существовать, однако база данных (содержимое файлов) продолжает. В архитектуре RAC другие экземпляры могут продолжать работать с базой.
Процесс запуска базы данных разбит на шаги: вначале запускается экземпляр БД, затем база данных подключается (mount) и открывается (open) для использования. В любой момент времени база данных может быть в одном из следующих состояний
Когда база данных остановлена (SHUTDOWN) все файлы закрыты и экземпляр не существует. В отключенном состоянии (NOMOUNT) – экземпляр БД построен в памяти (SGA создана и фоновые процессы запущены согдасно файлу параметров), но база данных недоступна и может быть даже ещё не создана. В подключенном состоянии (MOUNT) экземпляр находит и читает файл контроля. В открытом состоянии (OPEN) все файлы найдены и открыты – т.е. база данных доступна для пользователей. Когды вы запускаете команду STARTUP – будут выполнены все шаги, однако команда может быть разбиты на этапы. Напирмер если файл контроля испорчен или копия недоступна – вы не сможете подключить базу данных. Однако вы можете запустить базу в неподключенном режиме (NOMOUNT) и восстановить файл контроля. Точно так же если у вас возникли проблемы с файлами данных или логовов, вы можете попробовать восстановить данные в MOUNT состоянии, перед тем как открывать БД.
Как же экземпляр находит файлы которые ему нужны на каждом из шагов? Начнём с NOMOUNT. Когда вы запускаете команду STARTUP, Oracle будет искать файл параметров в определённом порядке как отображено на рисунке 3-8.
Всего существует три пути и имени файла. На Unix подобных системах это
Во всех случаях – SID это имя экземпляра. Порядок поиска очень важен. Oracle будет использовать первый найденный файл вне зависимости от наличия остальных. Если ни одного файла не существует – экземпляр не будет запущен. В режиме NOMOUNT используются только файл параметров и системный журнал. Значения параметров из файла параметров используются для создания SGA в памяти и запуска фоновых процессов. В системный журнал записывается информация об этот процессе. Где находится системный журнал? Путь можно узнать посмотрев параметр BACKGROUND_DUMP_DEST в файле параметров или выполнив команду
sho parameter background_dump_dest
Если системный журнал существует во время выполнения команды STARTUP то новые данные будут добавляться, иначе будет созда новый файл. Если возникнут какие-либо проблемы во время выполнения команды – так же будут созданы файлы трассировки.
Когда экземпляр запущен в режиме NOMOUNT, переход в состояние MOUNT будет осуществляться путём чтения файла контроля. Oracle находит эти файлы используя параметр CONTROL_FILES, прочитанный во время запуска экземпляра. Если файл контроля (или хотя бы одна копия) не найдены или повреждены, база данных не будет подключена и вы обязаны восстановить их перед подключением. Все копии должны быть доступны и одинаковы для успешного подключения БД.
Как часть процесса подключения, все именя файлов данных и логов и пути к ним считываются из файла контроля, но Oracle просто запоминает эти значения, не пытаясь найти файлы. Поиск и чтение файлов происходит во время открытия базы данных (OPEN). Если какой-либо файл поврежден или отсутствует база данных останется в режиме MOUNT пока вы не исправите ошибки. Более того, все файлы должны быть синхронизированы перед тем как база данных будет открыта. Если последнее выключение было выполнено в определённом порядке, то все буферы из буфера кэша БД записаны на диск процессом DBWn и файлы синхронизированы, и Oracle будет знать при запуске что все подтверждённые транзакции сохранены в файлах данных и нет неподтвержденных транзакций ожидающих отмены. Если же последнее выключение было не запланированным (к примеру от потери питания или системной перезагрузке сервера без правильного выключения экземпляра) то Oracle должен синхроинизировать файлы данных и файлы логов (отменив неподтверждённые транзакции). Процесс который подключает и открывает БД (и синхронизирует данные) называется SMON. Только когда база данных успешно открыта будет возможно подключение пользователей. Процесс запуска графически представлен на рисунке 3-9.
Остановка процесс зеркальный запуску. Вначале закрывается БД (CLOSE), затем отключается (DISMOUNT) и далее останавливается экземпляр. Во время закрытия БД все сессии отключаются: текущие транзакции отменяются процессом PMON, подтверждённые транзакции записываются в файлы данных DBWn и файлы данных и логов закрываются. Во время отключения закрывается файл контроля. И экземпляр останавливается с освобождением памяти и остановкой фоновых процессов.
Выключение: NORMAL, TRANSACTIONAL, IMMEDIATE и ABORT
Существуют параметры которые используются с командой SHUTDOWN – вызов SHUTDOWN команды требует уровня доступа SYSDBA или SYSOPER
NORMAL: это значение по умолчанию. Новые подключения нельзя создать, но все текущие сессии могут работать до конца сессии. Когда все пользователю отключатся база данных будет выключена.
TRANSACTIONAL: новые подключения недоступны; существующие сессии которые не выполняют транзакции отключаются; сессии которые выполняют транзанкцию завершают транзакцию и отключаются. Когда все сессии будут отключены, база данных останавливается.
IMMEDIATE: новые подключения не разрешены. Все активные сессии отключаются. Все активные транзакции отменяются и база данных выключается.
ABORT: это эквивалент отключению питания. Экземпляр останавливается без записи чего либо на диск, закрытия файлов, отмены транзакций.
Параметр “abort” оставляет базу данных в рассинхронизированном состоянии: возможно что подтверждённые транзакции не записаны в файлы данных, так как на момент выключения они были сохранены в памяти и DBWn не записал изменения из буфера в файлы. Также может быть и такое, что неподтверждённые транзакции записаны в файлы данных. Это определение испорченной БД: она содержит некорректные данные. Эти повреждения должны быть восстановлены используя instance recovery. Таким образом можно протестировать что произойдёт если к примерну непредвиденно обесточить сервер в процессе работы БД.
Так как выключение это пошаговый процесс, то возможно управлять этапами используя SQL *Plus и команды
alter database close;
alter database dismount;
Эти команды полная противоположность командам запуска. На практике SHUTDOWN это единственная команда которой пользуются DBA. Пошаговый процесс также недоступен из Database Control.
Зачастую для тех или иных нужд возникает необходимость выполнить команду OS из pl/sql или даже sql внутри Oracle Database.
Ниже описывается один из способов и его применение в задаче определения доступного дискового пространства.
Предлагаемый способ заключается в использование добавленного в 11.2 функционала "Препроцессинг данных внешних таблиц".
- Directory - в ней будет располагаться наш скрипт препроцессинга и на неё будет ссылаться таблица
- external organization table - обращение к которой будет вызывать выполнение скрипта
- script - собственно сам файл который будет выполнять требуемое нам действие в OS
Пример создания требуемых объектов:
-- directory create or replace directory UTIL_DIR as '/u01' / -- table CREATE TABLE T_OS_COMMAND ( v_line varchar2(4000) ) ORGANIZATION external ( TYPE oracle_loader DEFAULT DIRECTORY UTIL_DIR ACCESS PARAMETERS ( RECORDS DELIMITED BY NEWLINE preprocessor UTIL_DIR:'os_command.sh' FIELDS TERMINATED BY "\n" LDRTRIM ) location ( 'os_command.sh') ) /
Лучше всего иметь отдельную directory для наших целей ввиду того что нам потребуется одновременно и права на запись в ней и права на выполнение, а такую комбинацию лучше никому не выдавать.
Оптимальное использование это создание пакета (хоть и в схеме SYS) в спецификации которого описаны процедуры, которым необходимо обращение к OS, а саму реализацию оставить внутри пакета и никого к ней не подпускать.
Далее подразумевается что права на чтение, запись и выполнение к UTIL_DIR у нас имеются, также как и права на select из T_OS_COMMAND.
Для создания файла который будет выполнятся достаточно выполнить в OS (да придется хоть раз выполнить действия в OS прибегнув к более тривиальным методам - например ssh):
$touch /u01/os_command.sh $chmod ug+x /u01/os_command.sh
Данные команды должны быть выполнены от пользователя (либо члена группы) от которых запускается экземпляр БД.
Далее можно приступать к реализации непосредственно методов которым необходим вызов команд OS.
Примером такой реализации может выступать пакет P_SYS_UTILITY. Пожелания по его развитию и участие в оном приветствуются.
Метод Get_Disk_Usage
p_file_name - имя файла или папки для месторасположения которого(-ой) будет произведен расчет. Позволяет передавать имена относящиеся к ASM disk groups.
o_mount_dev - имя устройства в системе на которое смонтировано указанное месторасположение, определяется из вывода команды df. Для ASM будет возвращено имя disk group.
o_used_space - количество байт занятых на устройстве/diskgroup
o_free_space - количество байт доступных на устройстве/diskgroup
Осуществляет вызов df с передачей в качестве параметра имени файла, или обращение к v$asm_diskgroup в случае если имя файла начинается на " + ".
Метод Collect_Usage
Осуществляет сбор информации об использовании пространства внутри БД. Группирует по табличным пространствам, владельцам и типам сегментов. Не берет в учет сегменты типа undo и temp. Сохраняет полученную информацию в таблицу T_SPACE_USAGE. Рекомендуется к ежедневному выполнению.
Метод Get_Forecast
pDT - дата на которую надо спрогнозировать размер
pBASE - количество дней, данные за которые войдут в базу по которой будет строиться прогноз
pTYPE_F - способ прогнозирования - либо на основе ковариация (генеральной) совокупности, либо на основе среднего изменения
pTABLESPACE - табличное пространство по которому производится прогнозирование, если не передавать то по всем
pOWNER - владелец схемы по которому производится прогнозирование, если не передавать то по всем
pTYPE - тип сегментов данных по которому производится прогнозирование, если не передавать то по всем
Выполняет расчет прогнозируемого занимаемого места сегментов согласно указанным критериям. Результат в байтах.
Метод Get_Space_Status
pFOREDAYS - количество дней для прогноза
pFREE_PRCNT - процент доступного пространства (считается от прогнозируемого занятого)
Производит оценку по шкале от 0 до 100 доступного для роста БД пространства.
Также учитывает ограничения на рост файлов внутри БД.
Простой результат позволяет интегрировать вызов функции в системы мониторинга с настройкой порогов критичности.
ps. и да, учитываем, что выдавая права на выполнение и запись мы прокладываем брешь в безопасности.
Объектная библиотека ( Object Library ) - это модуль, который может объединять в себе различные наборы объектов, предназначенных для многократного использования. Объектная библиотека - это очень мощная структура, позволяющая хранить в себе всевозможные объекты и программные единицы. Применяя это средство многократного использования объектов, вы получаете возможность хранить в одном объекте однажды созданные объекты и программные единицы для совместной работы в других модулях. Объектная библиотека не имеет редактируемых свойств, кроме имени. Для включения в библиотеку новых объектов используется метод " Drag -and-Drop" ("перетащить и оставить").
Создание библиотеки
Для того чтобы создать объектную библиотеку и включить в ней различные объекты, выполните следующие действия:
- Находясь в навигаторе объектов, выделите узел "Объектные библиотеки" и нажмите кнопку "Создать", после чего появится узел с именем библиотеки и иконкой в виде книги справа от названия.
- Вызовите палитру свойств библиотеки и назовите ее "My_lib".
- Находясь в узле "Объектные библиотеки", вызовите всплывающее меню и выберите пункт "Объектная библиотека" для открытия окна библиотеки (рис. 12.6).
Вы не можете редактировать или изменять объекты, помещенные в объектную библиотеку, зато вы можете добавить комментарий к объекту, нажав кнопку "Edit Comment ", располагающуюся на верхней палитре инструментов. Чтобы добавить комментарий к объекту, нажмите кнопку "Edit Comment " и в появившемся окне " Comment " введите свой комментарий. Чтобы удалить объект из объектной библиотеки, нажмите кнопку "Удалить объект".
Для повторного использования объекта библиотеки необходимо открыть ее в навигаторе объектов командой меню Файл | Открыть. Чтобы переместить объект в соответствующий модуль из объектной библиотеки, просто перетащите его, не отпуская левую кнопку мыши, в нужное место модуля.
Библиотека PL/SQL
Библиотека - это модуль, в котором объединены многократно использующиеся хранимые программы. Библиотеки позволяют однажды созданную программную единицу использовать совместно различными приложениями. Это средство удобно еще и потому, что имеет различные форматы файлов, специфичных своим содержанием. Ниже перечислены форматы фалов библиотеки и их описание:
- lib_name. PLL - этот файл хранит в себе исходный и специфический для каждой платформы исполняемый код (p-код).
- lib_name.PLX - этот файл хранит в себе только исполняемый код (скомпилированный).
- lib_name. PLD - этот файл хранит в себе исходный текст библиотеки.
Если перед вами стоит задача скрыть исходный код библиотеки, то вам, несомненно, нужно использовать библиотечный файл .PLX, который содержит только исполняемый код.
Создание библиотеки
Для того чтобы создать библиотеку, выполните следующие действия:
- Находясь в Навигаторе Объектов, выделите узел " Библиотеки PL/ SQL " и нажмите кнопку "Создать", после чего все в том же узле создастся новый узел с названием библиотеки.
- Раскройте узел " Библиотеки PL/SQL " и выберите узел "Программы" для создания компонентов библиотеки. Находясь в узле "Программы", нажмите кнопку "Создать" для запуска окна "Новая программа", в котором определите имя и тип создаваемой программной единицы (функция, процедура, пакет). В запустившемся PL/SQL-редакторе наберите и скомпилируйте исходный текст программной единицы.
- Вы также можете вставить уже готовую программную единицу в состав библиотеки, для этого достаточно просто скопировать целевую программу из узла "Программные единицы" модуля.
Когда вы пишете программные единицы для библиотек, вы не можете использовать глобальные и системные переменные , параметры и элементы, так как библиотека не компилируется отдельно от формы. Чтобы это обойти, нужно пользоваться встроенными подпрограммами NAME_IN и COPY для непрямого обращения к вышеперечисленным переменным.
Подключение библиотек к модулю
Теперь, когда мы научились создавать библиотеки, давайте попробуем их в работе. Для того чтобы подключить библиотеку, выполните следующие действия:
OEM (Oracle Enterprise Manager) Enterprise Manager, основанная на Java каркасная система, которая объединяет несколько компонентов, чтобы предоставить пользователям мощный графический интерфейс пользователя.
База данных База данных> Табличное пространство Табличное пространство> Файлы данных Файлы данных.
Табличное пространство является самой большой логической единицей и единицей пространства хранения в базе данных Oracle. Система базы данных выделяет пространство для объектов базы данных через табличное пространство. Табличные пространства физически представлены в виде файлов данных на диске. Каждое табличное пространство состоит из одного или нескольких файлов данных. Файл данных может быть связан только с одним табличным пространством. Это объединение логики и физики.
1. Табличное пространство
1.1 Создать табличное пространство
create tablespace test
autoextend on next 10M
1.2 Изменить размер файла данных
alter database datafile 'E:\oracle\product\10.2.0\oradata\test\test.dbf'
1.3 Создать временное табличное пространство для временного хранения данных
create temporary tablespace test_temp
autoextend on next 32M
extend management local;
1.4 Установите для табличного пространства режим только для чтения или режим чтения-записи
alter tablespace test read only;
alter tablespace test read write;
1.5 Удалить табличное пространство
drop tablespace test including contents and datafiles;
1.6 Добавить файлы данных в табличное пространство
alter tablespace test add datafile 'E:\oracle\product\10.2.0\oradata\test\test02.dbf' size 1M;
1.7 Просмотр табличного пространства и информации о файле данных
select * from v$datafile;
select * from v$tablespace;
2. Создать пользователя
2.1 Создать нового пользователя
create user pao
identified by pao
default tablespace test
temporary tablespace test_temp;
2.2 Изменить пароль пользователя
alter user pao identified by newpassword;
2.3 Удалить пользователя
Удалить пользователя Pao Cascade; (Удалить пользователя и объекты, принадлежащие пользователю)
2.4 Разблокировать пользователя
Сначала войдите в систему с идентификатором DBA,
alter user pao account unlock;
3. Разрешения, роли
Разрешение относится к праву на выполнение определенных команд или доступ к объектам базы данных.
Есть два типа разрешений
Authority Системные полномочия: система устанавливает полномочия пользователя на использование базы данных (системные полномочия предназначены для пользователя)
PerОбзоры объектов: разрешить пользователям выполнять определенные операции с объектами базы данных (такими как таблицы, представления, последовательности и т. Д.) (Для таблиц или представлений).
Роль - это комбинация связанных разрешений. Вы можете предоставлять разрешения ролям, а затем назначать роли пользователям, чтобы упростить управление разрешениями.
RacleOracle предоставляет три стандартные роли:
CONNECT, пользователи с разрешением Connect могут входить только в Oracle, не могут создавать сущности и не могут создавать структуры базы данных;
RESOURCE, роль RESOURCE позволяет пользователям создавать таблицы, процедуры, триггеры, последовательности и другие привилегии;
DBA, роль DBA имеет все системные разрешения, включая неограниченное пространство и возможность предоставлять различные разрешения другим пользователям.
3.1 Предоставление разрешений
grant resource to test;
3.2 Отменить полномочия
revoke resource from test;
3.3 Создание разрешения сеанса
grant create session to test;
revoke create session from test;
3.4 Разрешение на создание таблиц
grant create table to test;
revoke create table from test;
3.5 Разрешение на использование табличных пространств
grant unlimited tablespace to test;
revoke unlimited tablespace from test;
3.6 Предоставить разрешение на создание сеанса всем пользователям, public представляет всех пользователей
grant create session to public;
4. Импорт и экспорт
5. Создание, изменение, удаление таблиц
5.1 Новая таблица
5.2 Добавить столбцы
ALTER TABLE [USER.] table_name ADD column_definition;
5.3 Добавить ограничения
ALTER TABLE [USER.] table_name ADD talbe_constraint;
5.4 Добавить ограничение первичного ключа
5.5 Добавить непустые ограничения
5.6 Добавить уникальные ограничения
5.7 Изменить столбец
5.8 Изменить ограничения
ALTER TABLE table_name ADD [ограничение CONSTRAINT name] ограничение (столбец);
5.9 Добавить ограничения внешнего ключа
5.10 Удалить ограничения внешнего ключа
5.11 Удалить столбец
ALTER TABLE [USER.] table_name DROP COLUMN column_names [CASCADE constraints];
Читайте также: