Oracle как создать пользователя с правами sysdba
Я искал в Google, как создать пользователя и предоставить ему все привилегии.
Я нашел эти два метода:
Так в чем разница между этими двумя методами?
2 ответа
2 метода создания пользователя и предоставления ему некоторых привилегий
Делать то же самое. Он создает пользователя и предоставляет ему роль подключения.
другой исход
Ресурс - это роль в оракуле, которая дает вам право создавать объекты (таблицы, процедуры, некоторые другие, но не представления!). ALL PRIVILEGES предоставляет намного больше системных привилегий.
Чтобы предоставить пользователю все права , запустите первый фрагмент или
Моя проблема заключалась в том, что я не могу создать представление с моим пользователем "scott" в версии oracle 11g. Итак, вот мое решение для этого
Ошибка в моем случае
SQL> create view v1 as select * from books where >
1) откройте свой cmd и измените каталог, в который вы устанавливаете свою базу данных oracle. в моем случае я был загружен на диск E, поэтому мое местоположение - E: \ app \ B_Amar \ product \ 11.2.0 \ dbhome_1 \ BIN> после достижения позиции, вы должны ввести sqlplus sys как sysdba
E: \ app \ B_Amar \ product \ 11.2.0 \ dbhome_1 \ BIN> sqlplus sys как sysdba
2) Введите пароль: здесь вы должны ввести тот пароль, который вы дали во время установки программного обеспечения Oracle.
3) Здесь, на этом этапе, если вы хотите создать нового пользователя, вы можете создать, в противном случае предоставить все привилегии существующему пользователю.
для создания нового пользователя
SQL> create user abc identified by xyz;
Здесь abc - это пользователь, а xyz - пароль.
предоставление всех прав пользователю abc
SQL> grant all privileges to abc;
4) Теперь выйдите из cmd, перейдите в свой SQL PLUS и подключитесь к пользователю, то есть введите свое имя пользователя и пароль. Теперь вы можете с радостью создать представление.
При установке Oracle по умолчанию создаются два пользователя/схемы - SYS и SYSTEM. Я написал "пользователя/схемы" потому, что при создании нового пользователя для него создается одноименная схема. Не сразу понятно чем понятие "пользователь" отличается от понятия "схема". Чтобы понять представьте пользователя Windows (Unix). Пользователь имеет имя ИмяПользователя и принадлежащую ему папку - C:\Users\ИмяПользователя ( /home/ИмяПользователя ). Так вот пользователь Oracle аналогичен пользователю Windows, а схема - аналогична папке пользователя. Точно так же как у пользователя Windows, у пользователя Oracle есть набор прав. Так же как папка пользователя Windows содержит различные файлы, также и схема Oracle содержит различные объекты - таблицы, последовательности, триггеры и др. Если продолжать аналогию, то пользователей SYS и SYSTEM можно считать Администратором Windows или root-пользователем Unix. Они имеют неограниченные права. И работать под ними не рекомендуется. По-этому сначала нужно создать еще одного пользователя.
1. Создание пользователя и предоставление ему прав
Создадим пользователя, например fiftin :
Мы создали пользователя fiftin с паролем 123456 . Он не имеет абсолютно никаких прав. Вы даже не сможете под ним зайти:
Для наделения пользователя правами существует команда GRANT . Например дадим права пользователю fiftin на вход:
Если теперь вы попробуете подключиться как пользователь fiftin у вас это получится. Но это все что разрешено пользователю fiftin. Наделим пользователя правами администратора:
Теперь вы можете подцепиться к БД под fiftin'ом как админ:
Создадим таблицу:
Вставим данные:
2. Права на создание таблиц
Создадим еще одного пользователя - test:
Дадим ему права:
Теперь пользователь test может подключаться и создавать таблицы. Попробуем создать таблицу (не забудьте зайти под test'ом):
Получаем ошибку:
Почему так? Оказывается для того чтобы обычный пользователь (не админ) мог что-либо создать в БД, ему нужно выделить для этого место. Зайдем снова под fiftin'ом и выполним команду:
Этой командой мы выделяем пользователю test 50Мб под его нужды. Попробуйте теперь зайти под пользователем test и создать таблицу и у вас получится.
Базовое использование и управление правами пользователей Oracle и Oracle
1.1. Важность хранения данных различна
Пользователь sys Все базовые таблицы и представления словаря данных oracle хранятся в пользователе sys.Эти базовые таблицы и представления необходимы для работы oracle и поддерживаются самой базой данных и не могут быть изменены вручную любым пользователем. Пользователь sys имеет dba, sysdba, sysoper и другие роли или разрешения и является пользователем с наивысшими разрешениями Oracle.
Системный пользователь используется для хранения внутренних данных второго уровня, таких как некоторые функции Oracle или информация управления инструментами. Системный пользователь имеет обычные разрешения роли dba.
1.2 Разница во власти
Системный пользователь может войти в систему только с обычным идентификатором, если вы не предоставите ему системное разрешение sysdba или системное разрешение sysoper.Пользователь sys имеет системные привилегии "SYSDBA" или "SYSOPER". Вы можете использовать только эти два удостоверения для входа в em, но это не нормально.
Войдите в Oracle как пользователь sys и выполните select * from V_ $ PWFILE_USERS; Вы можете запрашивать пользователей с разрешениями sysdba, например:
Из рисунка выше видно, что система имеет авторизованные разрешения sysdba.
Если система входит в систему нормально, на самом деле это обычный пользователь dba, но если она входит как sysdba, она фактически входит как пользователь sys. Следовательно, после того, как sysdba подключается к базе данных, созданные объекты фактически генерируются в sys. То же самое верно и для других пользователей: если вы войдете в систему как sysdba, вы также войдете в систему как пользователь sys
Нормальный - это нормальный пользователь
Sysdba имеет наивысшие системные полномочия, после входа в систему sys
Sysoper в основном используется для запуска и закрытия базы данных. После входа sysoper пользователь становится общедоступным.
1. Создайте пользователя
Условия У вас должны быть полномочия для создания пользователей, таких как sys, system, sysdba, роль dba и т. Д.
Синтаксис создать пользователя имя_пользователя, идентифицированное паролем
Обратите внимание, что пользователь, созданный в это время, не может войти в систему, и пользователю необходимо предоставить соответствующие разрешения перед входом в систему.
2. Измените атрибуты пользователя.
Условия Необходимо иметь право изменять атрибуты пользователя.
Грамматика alter user user_name attribute + status
3. Удалить пользователей.
Условия Имеют право удалять пользователей
Синтаксис drop user имя_пользователя [каскад] Добавление каскада удалит пользователя и все созданные им объекты
Примечание. Если пользователь создает объект, он должен быть удален каскадом, в противном случае он не может быть удален.Кроме того, нельзя удалить пользователя, который в настоящее время подключен к экземпляру Oracle.
5.1. Классификация
Разрешения Oracle можно разделить на системные и объектные.
Системные разрешения Позволяют пользователям выполнять определенные действия с базой данных, такие как создание таблиц, создание индексов, подключение экземпляров и т. Д.
Разрешения на объекты Позволяют пользователям манипулировать определенными объектами, такими как чтение представлений, обновление определенных столбцов, выполнение хранимых процедур и т. Д.
5.1.1 Системные разрешения
Более ста действующих разрешений (выберите * из system_privilege_map) администраторы баз данных имеют расширенные разрешения.
1. Общие системные разрешения
2. Предоставьте пользователю системные разрешения
Системные разрешения могут быть предоставлены только пользователем dba: sys, system (только эти два пользователя в начале)
Синтаксис: предоставить привилегию [, привилегию . ] пользователю [, пользователю | роли, общедоступному . ] [с опцией администратора];
С опцией администратора пользователи также имеют право назначать разрешения, которые могут быть предоставлены другим
3. Просмотр разрешений системы.
Dba_sys_privs-системные привилегии предоставлены всем пользователям
User_sys_privs - системные привилегии, предоставленные текущему авторизованному пользователю
4. Восстановите системные разрешения
Либо dba, либо авторизованный пользователь может отозвать разрешение
Для использования с администратором опции для предоставления системных разрешений пользователю, для всех пользователей, которым предоставлены одинаковые разрешения этим пользователем, отмена системных разрешений пользователя не будет каскадно отменять те же разрешения этих пользователей.
5.1.2 Права доступа к объекту
1. Разные объекты имеют разные права доступа к объекту. Владелец объекта имеет все права доступа к объекту, а владелец объекта может назначать разрешения извне. ORACLE имеет в общей сложности 8 разрешений на объект.
Разрешения объекта | Таблица | Посмотреть | последовательность | процесс |
Изменить (изменить) | √ | √ | ||
Удалить (удалить) | √ | √ | ||
Выполнить | √ | |||
Индекс | √ | |||
Вставить | √ | √ | ||
Ассоциация (ссылки) | √ | √ | ||
Выбрать | √ | √ | √ | |
Обновить | √ | √ |
2. Предоставьте пользователю права доступа к объекту.
Dba или владелец объекта
Синтаксис grant object_priv | все [(столбцы)] для объекта [с опцией предоставления];
С опцией предоставления: разрешить пользователям снова авторизовать других пользователей
3. Просмотр разрешений объекта
User_sys_privs системные привилегии, принадлежащие пользователю
User_tab_privs Права доступа к объектам, принадлежащие пользователю
4. Разрешения на утилизацию объектов
Либо dba, либо авторизованный пользователь может отозвать разрешение
Если вы отмените права доступа к объекту для пользователя, если пользователь предоставляет такие же разрешения другим пользователям с опцией предоставления, эти разрешения пользователя будут удалены каскадно.
1. Введение в профиль
Как профиль пользователя, Профиль представляет собой именованный набор ограничений пароля и ограничений ресурсов. Профили, являющиеся важной частью стратегии безопасности Oracle, могут использовать их для выполнения основных ограничений ресурсов для пользователей базы данных и управления паролями пользователей. Когда база данных oracle создана, oracle автоматически создаст файл профиля с именем Default. Когда пользователь не укажет профиль, oracle назначит ему значение по умолчанию. Инициализированное значение Default не имеет каких-либо паролей и ограничений ресурсов.
Создать файл профиля
Синтаксис создать параметр имени файла профиля;
Назначьте созданный файл профиля пользователю
Грамматика изменить имя файла профиля имени пользователя;
2. Используйте профиль для управления паролем.
1) Блокировка аккаунта
Политика блокировки учетной записи означает, что после того, как пользователь введет неправильный пароль определенное количество раз подряд, Oracle автоматически заблокирует учетную запись пользователя, и можно указать время блокировки учетной записи. Oracle предоставляет следующие два параметра для блокировки пользователей.
1. failed_login_attempts Ограничивает количество неудачных попыток входа пользователя в базу данных Oracle.
Password_lock_time Определяет количество дней, в течение которых пользователь заблокирован.
Если password_lock_time не указано при создании файла профиля, автоматически будет использоваться значение по умолчанию unlimited. В этом случае dba необходимо вручную разблокировать пользователя, и вы можете использовать другое имя пользователя для разблокировки учетной записи, чтобы разблокировать пользователя.
2) Срок действия пароля
Срок действия пароля означает принуждение пользователей к регулярной смене паролей.По истечении срока действия пароля Oracle Accounting напомнит пользователям о необходимости изменения пароля.
Льготный период пароля относится к льготному периоду после истечения срока действия пароля. Чтобы заставить пользователей регулярно менять свои пароли, Oracle предоставляет следующие два параметра.
1. password_life_time Установите срок действия пароля пользователя в днях.
2. password_grace_time Установите время отсрочки для истечения срока действия пароля.
3) История паролей
История паролей используется для контроля времени повторного использования или времени повторного использования паролей учетных записей. Когда пользователь меняет пароль, Oracle сравнивает старый и новый пароли, чтобы гарантировать, что пользователь не будет повторно использовать пароли, которые использовались в прошлом. Есть два следующих параметра истории паролей.
1. password_reuse_time Время, в течение которого можно повторно использовать пароль, в днях.
Сколько раз пароль должен быть изменен перед повторным использованием 2. password_reuse_max.
3. Поддерживайте файлы профиля
1) Измените файл профиля
Синтаксис alter profile [имя файла ресурсов] ограничение [имя ресурса] Конкретный набор значений;
Например, изменить профиль по умолчанию limitfailed_login_attempts 100;
2) Удалите файл профиля
Синтаксис drop profile [имя файла ресурсов] [каскад];
Если созданный профиль был авторизован для пользователя, используйте каскадный каскад для восстановления соответствующих ограничений.После восстановления информации об ограничениях, пользователь будет ограничен системным профилем по умолчанию. Назначенный профиль необходимо удалить с помощью каскадной опции.
Когда пользователь подключается к БД, он подключается используя пользовательский аккаунт (user account) указывая имя аккаунта и метод аутентификации. Пользовательский аккаунт определяет первоначальные права доступа и атрибуты сессии. С пользовательским аккаунтам свзязывается схема (schema). Термины пользователь, пользовательский аккаунт и схема часто используется вместо друг друга в окружении Oracle, но это не одно и тоже. Пользователь – это человек который подключается к пользовательскому аккаунту устанавливая сессию к экземпляру БД и авторизуется используя имя аккаунта. Схема – это набор объектов принадлежащих пользовательскому аккаунту и мы рассмотрим детальнее в следующей главе. В зависимости от того как создался аккаунт будут установлены определнные аттрибуты для сесиий, некоторые из которых могут быть изменены позднее, во время существования сессии. Некоторые аккаунты создаются во время создания БД и DBA затем создаёт остальные аккаунты.
В некоторых приложениях, каждый пользователь использует свой аккаунт. Т.е. БД знает кто именно владелец каждой сессии. Такая модель хорошо работает для небольших систем но практически невозможна для среды в которой с БД работают сотник и тысячи пользователей. В больших системах пользователи подключаются к БД используя один аккаунт, и это добавляет сложностей для обеспечения безопаности сессии и аудита БД. Мы будем рассматривать модель где каждый пользователь имеет свой аккаунт.
Аттрибуты пользовательского аккаунта
У аккаунта сущуествует набор аттрибутов которые задаются при создании. Эти значения используются для сессии, и некоторые могут быть изменены либо самой сессией, либо DBA изменит значение во время существования сессии. Этими атрибутами являются
- Имя
- Метод аутентификации
- Табличное пространство по умолчанию
- Лимит табличного пространтсва
- Временное табличное пространство
- Статус
Все эти аттрибуты должны указываться в момент создания аккаунта, несмотря на то что только имя и метод аутентификации являются обязательными а для остальных существуют значения по умолчанию.
Имя аккаунта
Имя аккаунта должно быть уникальным для всей БД и соблюдать определенные правила. Имя аккаунта должно начинаться с буквы, длина не более 30 символов и может состоять только из букв, цифр, знака $ и символа подчёркивания. Также именем аккаунта не может быть зарезервированное слово. Символы чувствительны к регистру но будут автоматически преобразованы к верхнему регистру. Все эти правила (за исключением длинны) можно обойти если использовать имя внутри двойных кавычек, как показано на рисунке 6-1.
В первом примере создается аккаунт JOHN. Имя было введено строчными буквами но было преобразовано в прописные как видно в результате выполнения запроса. Второй аккаунт был создан с использованием того же имени и двойных кавычек. Третий и четвертый пример показывают что можно обойти правила неиспользуемых символов и зарезервированных слов используя кавычки.
Имя не может быть изменено после создания. Если необходимо изменить его, то можно удалить старый аккаунт и создать новый. Это критическое действие так как все объекты в схеме аккаунта будут удалены.
Табличные пространтсва по умолчанию и лимиты
У каждого аккаунта есть табличное пространство по умолчанию. Это табличное пространство где создаются объекты схемы (такие как таблицы, индексы) создаваемые этим аккаунтом. Аккаунт может создать объекты (быть владельцем) во всех табличных пространствах к которым у него есть лимит (квота), но если явно не указывать табличное пространтсво при создании объекта – будет использователья табличное пространство аккаунта по умолчанию.
Существует значение по умолчанию для БД которое будет использоваться для всех пользователей созданных без указания табличное пространства. Это значение можно установить во время создания БД или изменить выполнив команду
ALTER DATABASE DEFAULT TABLESPACE tablespace_name ;
Если у БД нет табличного пространства по умолчанию – используется SYSTEM.
На рисунке 6-2 отображено как проверять и устанавливать лимиты
Первая команда проверяет представление DBA_USERS и определяет табличные пространства пользователя JOHN. DBA_USERS хранит по одной строке для каждого пользователя БД. Пользователь JOHN получил значения временного и табличного пространства из значения по умолчанию БД (которые видны в результате выполнения запроса к database_properties).
Две команды ALTER USER позволяют аккаунту JOHN использовать 10 МБ пространтсва в табличном пространстве USERS и неограниченный доступ к пространтсву EXAMPLE. Запрос к DBA_TS_QUOTAS отображает затем эту информацию. -1 обозначает неограниченный лимит. Во время выполнения запроса у аккаунта JOHN нет созданных объектов, и поэтому BYTES=0, что значит пространство ещё не используется.
Before you can create a table, you must have both permission to
execute CREATE TABLE and quota on a tablespace in which to create it.
Most users will not need any quotas, because they will never create
objects. They will only have permissions against objects owned by other
schemas. The few object-owning schemas will probably have QUOTA
UNLIMITED on the tablespaces where their objects reside.
Временное табличное пространтсво
Постоянные объекты (такие как таблицы) хранятся в постоянных табличных пространствах; временные объекты хранятся во временном табличном пространстве. Сессии нужно место во временном табличном пространстве если будет использоваться места больше чем доступно в PGA сессии. Операции которым нужно временное место (в памяти если хватает PGA или во временном таблично пространтсве) включают в себя: сортировку строк, объекдинение таблиц, построение индексов и использование временных таблиц. Каждому аккаунту выделяется временное табличное пространство и все пользовательские сессии подключенные к аккаунту будут использовать одно и тоже временное табличное пространство.
Запрос к представлению DBA_USERS на рисунке 6-2 показывает временное пространство пользователя JOHN, которое также является временным табличным простратсвном по умолчанию для БД.
Управление пространством во временных табличных пространствах полностью автоматическое. Объекты создаются и удаляются при необходимости самой БД. Пользователю не нужен лимит на временное таблично пространство, так как все объекты создаются (и он же является владельцем) аккаунтом SYS, у которого неограниченные лимиты для всех табличных пространств.
Users do not need a quota on their temporary tablespace.
Для изменения временного пространства польователя (что затронет все сессии которые подключается в будущем используя этот аккаунт) используйте команду ALTER USER
ALTER USER username TEMPORARY TABLESPACE tablespace_name;
If many users are logging on to the same user account, they will share the
use of one temporary tablespace. This can be a performance bottleneck, which
may be avoided by using temporary tablespace groups.
Профили
Пользовательские профили управляют настройками паролей и позволяют контролировать использование ресурсов. Более детально профили рассмотрим чуть ниже.
Профили полезны для управления паролями и ресурсами но могут использоваться только в среде где у каждого пользователя свой аккаунт. Если много пользователей подключаются к БД под одним аккаунтом, вы не захотите чтобы аккаунт блокировался если ввёл пароль несколько раз один пользователь, потому что этим вы заблокируете доступ всем остальным пользователям. Так же и использование ресурсов часто лучше управлять на уровне сессии а не на уровне аккаунта в целом.
Статус аккаунта
Каждый аккаунт имеет определённый статус, и значение можно увидеть в столбце ACCOUNT_STATUS представления DBA_USERS. Всего существует 9 статусов
- OPEN – аккаунт готов к использованию
- LOCKED – DBA заблокировал аккаунт, пользовтель не можед подключиться используя заблокированный аккаунт
- EXPIRED – Пароль может иметь ограниченное время действия. В данном статусе время действия пароля истекло. Пользователь не может подключиться к аккаунта пока пароль не будет восстановлен
- EXPIRED & LOCKED – Аккаунт заблокирован и время действия пароля истекло
- EXPIRED (GRACE) – Пароль можно настроить таким образом чтобы он не становился EXPIRED сразу, а ещё был так называемый grace период, во время которого можно подключиться и изменить пароль
- LOCKED (TIMED) – это обозначает что аккаунт заблокирвоан в связи с неудачными попытками подключения. Аккаунт можно настроить на автоматическую блокировку на какое-то время после определённого количества неудачных попыток подключения
- EXPIRED & LOCKED (TIMED)
- EXPIRED (GRACE) & LOCKED
- EXPIRED (GRACE) & LOCKED (TIMED)
Для блокировки или разблокирования аккаунта используются команды
ALTER USER username ACCOUNT LOCK;
ALTER USER username ACCOUNT UNLOCK;
Для запроса изменения пароля пользователем при подключении можно выполнить команду
ALTER USER username PASSWORD EXPIRE;
Эта команда автоматически установит грейс пероид, принуждая пользователя изменить пароль при следующей попытке подключения. Нет команды UNEXPIRE. Единственный способ восстановить аккаунт – это изменить пароль.
Методы аутентификации
Аккаунт должен иметь определённый метод аутентификации: что-то что позволяет определить БД есть ли у пользователя пытающегося создать сессию доступ к аккаунту. Самый простой метод это использование пароля который совпадает с паролем хранящемся в БД, но есть и альтернативы. Возможнные варианты это
- Аутентификация ОС
- Аутентификация с помощью файла паролей
- Аутентификация паролем
- Внешняя аутентификация
- Глобальная аутентификация
Первые два метода используются только администраторами, последняя требует установленного LDAP сервера.
Аутентификация ОС и файлом паролей
Для разрешения аккаунту использования этих методов аутентификации (эти два типа используется вместе) необходимо назначить аккаунта расширенные права SYSDBA или SYSOPER
GRANT [sysdba|sysoprt] TO username;
Назначение этих прав скопирует пароль аккаунта из словаря данных во внешний файл паролей, откуда он может быть считан экземпляром даже если БД ещё не открыта. Это также позволит экземпляру аутентифицировать пользователей путём проверки принадлежит ли пользователь группе-владельцу программ Oracle. После установки БД единственный аккаунт с этими правами – это SYS.
Для использования файла паролей можно использоуть следующий синтаксис
CONNECT username/password[@db_alias] AS [SYSOPER|SYSDBA];
Аутентификация с помощью файла паролей можно использовать для подключения к удалённой БД используя Oracle Net
Чтобы использовать авторизацию ОС пользователсь должен быть авторизован ОС с доступом к исполняемым файлам Oracle и затем можно выполнить команду
CONNECT / AS [SYSOPER|SYSDBA]
Пароли ОС не хранятся Oracle и поэтому не может быть проблем со сменой пароля.
Эквивалентом этой команды может быть подключения через Database Control при выбранном значении SYSDBA в списке Connect As. Для определения у кого есть пава SYSDBA и SYSOPER можно выполнить запрос к представлению V$PWFILE_USERS. Подключение с использованием аутентифкации файлом паролей или ОС всегда доступно вне зависимости от состояния экземпляра и БД и такой вид подключения необходим для выполнения команд STARTUP и SHUTDOWN.
Третий вид привилегий SYSASM но это выходит за рамки этого курса.
Аутентификация паролем
Синтаксис для подключения используя аутентификацию паролем используя SQL *Plus
Или в Database Control выбрать NORMAL в списке Connect As. Когда подключение происходит используя аутентифкацию паролем, экземпляр проверит пароль в строке подключения с паролем который хранится для этого аккаунта в словаре данных. Для того чтобы был доступен такой метод аутентификации БД должна быть открыта; и используя этот метод невозможно выполнять команды STARTUP и SHUTDOWN.Пользователь SYS не имеет прав подключения используя аутентификацию паролем – только через файл паролей, аутентификацию ОС или LDAP.
Начиная с версии 11g пароли чувствительны к регистру. Пароль хранится именно так как был введён без всяких преобразований регистра.
Когда подключение происходит по сети, 11g всегда использует шифрование перед передачей данных. Для шифрованя данных между пользовательским процессом и серверным процессом необходимо Advanced Security Option, но шифрование пароля включено по умолчанию.
Любой пользователь может изменить пароль аккаунта в любое время, а аккаунт с расширенными правами может изменить пароль любого пользователя. Синтаксис команды
ALTER USER username IDENTIFIED BY password;
Внешняя аутентификация
Если аккаунт был создан с директивой внешней аутентификации, Oracle делегирует аутентифкацию внешнему сервису; т.е. не будет запрошен пароль. Если куплена Advanced Security Option, то внешним сервисом может быть сервер Kerberos, сервер RADIUS или сервис аутентификации Windows. Когда пользователь пытается подключиться к аккаунту, вместо аутентификации пользователя, БД будет разрешать (или не разрешать) подключение в зависимости от того авторизован или пользователь во внешнем сервисе. Например если используется Kerberos – БД проверит существует ли у пользователя валидный Kerberos токен. Без Advanced Security Option – единственно доступной формой внешней аутентификации будет аутентификация ОС. Это требует прав SYSDBA или SYSOPER (как описано выше) но может быть использовано и для обычных аккаунтов. Необходимо создать пользователя Oracle с таким же именем как и аккаунт ОС с префиксом указанном в параметре OS_AUTHENT_PREFIX. По умолчанию значение OPS$. Для проверки значения можно использовать запрос
select value from v$parameter where name=’os_authent_prefix’
В Linux/Unix внешняя аутентификация ОС работает очень просто. Предполагая что значение OS_AUTHENT_PREFIX осталось по умолчанию и есть пользователь ОС с именем jwatson, можно создать пользователя Oracle и дать права подключения следующим образом
create user ops$jwatson identified externally;
grant create session to ops$jwatson;
Пользователь подключенный к ОС как jwatson сможет подключиться к БД выполнив команду
из командной строки ОС и будет подключен к БД как пользователь ops$jwatson.
В Windows обычно используется домен и тогда команда создания пользователя будет вида
Using external authentication can be very useful, but only if the users
actually log on to the machine hosting the database. Users will rarely do this,
so the technique is more likely to be of value for accounts used for running
maintenance or batch jobs.
Глобальная аутентификация
Стандартом для управления идентификацией признано использование LDAP серверов. Под глобальным пользователем (global user) подразумевается пользователь определённый в LDAP директории, и глобальная аутентификация (global authentification) значит делегирование аутентификации пользователя серверам LDAP.
Существует два метода для глобальной аутентификации
- Пользователи определены в директории LDAP и в БД. Пользователь будет подключаться к БД используя пользовательский аккаунт с таким же именем как и имя пользователя в LDAP
- Пользователи создаются только в LDAP директории. Все подключения к БД будут созданы используя один аккаунт БД.
Если всё настроено как надо подключение будет создано без запроса пароля.
Создание аккаунтов
У команды CREATE USER всего два обязательных параметра: имя и метод аутентификации. Дополнительно, можно указать табличное пространство по умолчанию и временное табличное пространство, лимиты, профили и команды блокировки аккаута и управления паролем. Пример команды (номера строк добавлены для удобства)
1 create user scott identified by tiger
2 default tablespace users temporary tablespace temp
3 quota 100m on users, quota unlimited on example
4 profile developer_profile
5 password expire
6 account unlock;
Только первая строка обязательна – существуют значения по умолчанию для всего остального. Рассмотрим пример построчно
- Имя и пароль для аутентификации паролем
- Табличное пространство по умолчанию и временное табличное пространство
- Лимиты
- Профиль для управления паролем и ресурсами
- Принудительное изменение пароля при первом подключении
- Аккаунт готов к использованию (команда по умолчанию)
Каждый параметр может быть изменён командой ALTER USER кроме имени. Для смены пароля выполните команду
alter user scott identified by lion;
Смена табличных пространств
alter user scott default tablespace store_data temporary tablespace temp;
alter user scott quota unlimited on store_data, quota 0 on users;
alter user scott profile prod_profile;
Бывает необходимо удалить аккаунт, используется команда
drop user scott;
Эта команда будет выполнена успешно только если у аккаунта нет объектов: схема пуста. Если вы не хотите вначале удалять все объекты пользователя, можно использовать директиву CASCADE
drop user scott cascade;
Для управления пользователя в Database Control из домашней страницы перейдите на вкладку Server и перейдите по ссылке Users в секции Security. В новом окне отобразятся все пользователи остортированные по дате создания. Для сортировки по какому либо столбцу нажмите на заголовок столбца. На рисунке 6-3 отображается окно Database Control
рисунок 6-3 Окно управления пользователя в Database Control
Первый аккаунт на рисунке – PUBLIC. Это формальный пользователь которому необходимо назначить права для применения прав ко всем пользователям. Кнопки CREATE и DELETE позволяют создавать и удалять пользователей.
Для изменения аттрибутов аккаунта можно выделить пользователя и нажать EDIT. Октроется окно Edit User, показанное на рисунке 6-4. Это окно можно использовать для изменения аттрибутов кроме лимитов табличных пространств. Для этого есть отдельное окно. Также здесь можно назначать и удалять права и роли.
Рисунок 6-4 Редактирование аккаунта
Читайте также: