Oracle как удалить пользователя

Обновлено: 21.11.2024

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

Учетная запись SYSTEM — одна из нескольких предопределенных административных учетных записей, автоматически создаваемых при установке Oracle. SYSTEM может выполнять большинство административных задач, но нас особенно интересует задача управления учетными записями.

Создание пользователя

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

Здесь мы просто создаем учетную запись books_admin, которая ИДЕНТИФИЦИРОВАНА или аутентифицирована с помощью указанного пароля.

Заявление о гранте

Создав новую учетную запись books_admin, мы можем приступить к добавлению привилегий к учетной записи с помощью инструкции GRANT. GRANT — это очень мощная инструкция со многими возможными параметрами, но основная функциональность заключается в управлении привилегиями как пользователей, так и ролей во всей базе данных.

Предоставление ролей

Как правило, сначала нужно назначить права пользователю, привязав учетную запись к различным ролям, начиная с роли CONNECT:

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

Назначение прав

Далее вам нужно убедиться, что у пользователя есть права на фактическое подключение к базе данных и создание сеанса с помощью GRANT CREATE SESSION . Мы также объединим это со всеми привилегиями, используя GRANT ANY PRIVILEGE .

Нам также необходимо убедиться, что у нашего нового пользователя есть дисковое пространство, выделенное в системе для фактического создания или изменения таблиц и данных, поэтому мы предоставим GRANT TABLESPACE следующим образом:

Права доступа к таблице

Хотя это обычно не требуется в более новых версиях Oracle, в некоторых старых установках может потребоваться вручную указать права доступа, которые новый пользователь имеет к определенной схеме и таблицам базы данных.

Например, если мы хотим, чтобы наш пользователь books_admin имел возможность выполнять функции SELECT , UPDATE , INSERT и DELETE для таблицы books, мы можем выполнить следующую инструкцию GRANT:

Это гарантирует, что books_admin сможет выполнять четыре основных оператора для таблицы books, которая является частью схемы схемы.

wikiHow – это вики, похожая на Википедию. Это означает, что многие наши статьи написаны в соавторстве с несколькими авторами. Над созданием этой статьи работали 9 человек, в том числе анонимно, которые со временем редактировали и улучшали ее.

Эта статья была просмотрена 63 901 раз.

Авторизованным приложениям или администраторам баз данных может потребоваться удалить любого пользователя Oracle. В этой статье показано, как можно удалить пользователя Oracle из базы данных.

Подключайтесь к базе данных Oracle под любым пользователем-администратором, у которого есть разрешение на удаление пользователей. Подключение к базе данных Oracle может быть как программным (через приложение), так и вручную (через SQLplus или любую аналогичную утилиту).

Выполните команду «удалить пользователя». Эта команда просто удалит пользователя без удаления каких-либо данных, созданных этим пользователем.

Альтернативно запустите команду "удалить каскад пользователей". Эта команда удалит пользователя, а также все объекты схемы, созданные этим пользователем.

Вам также может понравиться

Как упорядочить в алфавитном порядке в SQL

Об этой статье

wikiHow – это вики, похожая на Википедию. Это означает, что многие наши статьи написаны в соавторстве с несколькими авторами. Над созданием этой статьи работали 9 человек, в том числе анонимно, над ее редактированием и улучшением. Эта статья была просмотрена 63 901 раз.

Вывод: в этом руководстве вы узнаете, как использовать Oracle DROP USER для удаления пользователя из базы данных.

Введение в оператор Oracle DROP USER

Команда DROP USER позволяет удалить пользователя из базы данных Oracle. Если у пользователя есть объекты схемы, оператор DROP USER также может удалить все объекты схемы пользователя вместе с пользователем.

Следующее иллюстрирует основной синтаксис оператора DROP USER:

В этом синтаксисе вам нужно указать пользователя, которого вы хотите удалить, после ключевых слов DROP USER.

Если пользователь, схемы которого содержат такие объекты, как представления и таблицы, необходимо сначала удалить все объекты схемы пользователя, а затем удалить пользователя.

Удаление всех объектов схемы пользователей перед удалением пользователя довольно утомительно. Поэтому Oracle предоставляет вам вариант CASCADE.

Если вы укажете параметр CASCADE, Oracle удалит все объекты схемы пользователя перед удалением пользователя.

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

Если на таблицу удаленного пользователя ссылаются материализованные представления в других схемах, Oracle не будет удалять эти материализованные представления. Однако материализованные представления больше нельзя обновлять, поскольку базовой таблицы больше не существует.

Обратите внимание, что Oracle не удаляет роли, созданные пользователем, даже после удаления пользователя.

Обратите внимание, что если вы попытаетесь удалить пользователя SYS или SYSTEM , ваша база данных будет повреждена.

Примеры инструкции Oracle DROP USER

Давайте рассмотрим несколько примеров удаления пользователя из базы данных.

1) Использование Oracle DROP USER для удаления пользователя, у которого нет объекта схемы

Сначала войдите в базу данных Oracle, используя пользователя или используя SQL*Plus:

В-третьих, удалите пользователя foo с помощью инструкции DROP USER:

Вы должны увидеть следующее сообщение:

Поскольку у пользователя foo нет объектов схемы, его можно удалить без указания параметра CASCADE.

2) Использование Oracle DROP USER для удаления пользователя, у которого есть объекты схемы

Сначала создайте нового пользователя с именем bar и предоставьте ему системные привилегии CREATE SESSION и CREATE TABLE:

Во-вторых, используйте панель пользователя для входа в базу данных Oracle:

В-третьих, создайте новую таблицу с именем t1 в схеме пользователя бара:

В-четвертых, вернитесь к сеансу пользователя ot и удалите панель пользователя:

Oracle выдал следующую ошибку:

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

И повторите оператор DROP USER в сеансе пользователя ot:

Oracle выдал следующее сообщение:

Вы не могли удалить панель пользователя, не указав CASCADE, потому что панель пользователя имеет таблицу t1 в качестве объекта схемы.

В-седьмых, используйте оператор DROP USER с опцией CASCADE, чтобы удалить панель пользователя:

Oracle может удалить панель пользователя, а также таблицу t1 .

В этом руководстве вы узнали, как использовать оператор Oracle DROP USER для удаления пользователя и, при необходимости, удаления всех объектов в схеме пользователя из базы данных Oracle.

+8

У нас есть большое количество пользователей, которые покинули компанию, и их идентификаторы IFS неактивны.

На уровне базы данных Oracle они также неактивны, и наш администратор базы данных хочет их удалить.

Есть ли у кого-нибудь опыт удаления пользователей из базы данных Oracle, но оставления их в IFS как неактивных. Они не владеют никакими схемами, событиями, триггерами, пакетными заданиями и т. д.

Лучший ответ Химаши Абейвикрамы 9 января 2020 г., 20:46

Рекомендуемый способ — удалить пользователей с помощью параметра \u2018Delete Cascade\u2019 ПКМ в окне "Пользователи", который удаляет как пользователя Foundation 1, так и связанную с ним учетную запись Oracle, а также все объекты базы данных, принадлежащие пользователю.

Но вы также можете удалить учетную запись oracle, но оставить учетную запись IFS неактивной, просто удалив пользователя, и это не принесет никакого вреда, пока учетная запись неактивна и у них нет никаких 0 схем, событий, триггеров, пакетные задания и т.д. Вы можете использовать следующую команду, чтобы удалить пользователя из базы данных Oracle.

УДАЛИТЬ ПОЛЬЗОВАТЕЛЯ <имя пользователя>

Надеюсь, это поможет!

На уровне базы данных Oracle они также неактивны, и наш администратор базы данных хочет их удалить.\u00a0

5 ответов

+15

Рекомендуемый способ — удалить пользователей с помощью параметра ПКМ "Удалить каскад" в окне "Пользователи", который удаляет как пользователя Foundation 1, так и связанную с ним учетную запись оракула, а также все объекты базы данных, принадлежащие пользователю.

Но вы также можете удалить учетную запись oracle, но оставить учетную запись IFS неактивной, просто удалив пользователя, и это не принесет никакого вреда, пока учетная запись неактивна и у них нет схем, событий, триггеров, пакетных заданий. , так далее . Вы можете использовать следующую команду, чтобы удалить пользователя из базы данных Oracle.

Надеюсь, это поможет!

Рекомендуемый способ — удалить пользователей с помощью параметра \u2018Delete Cascade\u2019 ПКМ в окне "Пользователи", который удаляет как пользователя Foundation 1, так и связанную с ним учетную запись Oracle, а также все объекты базы данных, принадлежащие пользователю.

Но вы также можете удалить учетную запись oracle, но оставить учетную запись IFS неактивной, просто удалив пользователя, и это не принесет никакого вреда, пока учетная запись неактивна и у них нет никаких 0 схем, событий, триггеров, пакетные задания и т.д. Вы можете использовать следующую команду, чтобы удалить пользователя из базы данных Oracle.

УДАЛИТЬ ПОЛЬЗОВАТЕЛЯ <имя пользователя>

Надеюсь, это поможет!

+8

Спасибо, Химаша. Это именно то, что я думал, что могу сделать, но искал подтверждения.

Но вы также можете удалить учетную запись oracle, но оставить учетную запись IFS неактивной, просто удалив пользователя, и это не принесет никакого вреда, пока учетная запись неактивна и они не владеют никакими схемами, событиями, триггеры, пакетные задания и т.д.

Спасибо, Химаша.\u00a0 Это именно то, что я думал, что смогу сделать, но искал подтверждения.

+15

Я настоятельно рекомендую не удалять учетные записи из Oracle после того, как пользователи использовали IFS в течение определенного периода времени.

Даже если они не владеют какими-либо объектами базы данных с точки зрения схемы, связанные с ними учетные записи IFS (даже если они неактивны) могут использоваться во всей системе с точки зрения утверждений или аспектов управления документами и удаления базовые учетные записи Oracle могут вызвать проблемы в долгосрочной перспективе.

Если у вашего администратора баз данных нет каких-то очень необычных требований, все, что они, вероятно, хотят сделать, это выполнить некоторую уборку, и подвергать риску функциональность вашей ERP-системы только по этой причине — это риск, на который лично я бы не пошел.< /p>

Я настоятельно рекомендую не удалять учетные записи из Oracle после того, как пользователи использовали IFS в течение определенного периода времени.\u00a0

Даже если они не владеют какими-либо объектами базы данных с точки зрения схемы, связанные с ними учетные записи IFS (даже если они неактивны) могут использоваться во всей системе с точки зрения утверждений или аспектов управления документами и удаления базовые учетные записи Oracle могут вызвать проблемы в долгосрочной перспективе.

Если у вашего администратора баз данных нет каких-то очень необычных требований, все, что они, вероятно, хотят сделать, это выполнить некоторую уборку, и подвергать риску функциональность вашей ERP-системы только по этой причине — это риск, на который я лично не пошел бы.< /p>

+15

Здесь я согласен с @NickPorter. Это большой риск, даже если пользователи больше не активны. Мы настоятельно рекомендуем опцию «Удалить каскад». Он может удалить соответствующие данные или, если это невозможно, покажет ошибку. Если отображается ошибка, вам нужно будет вручную удалить указанные данные, а затем снова попытаться удалить пользователя

Читайте также: