Oracle, как посмотреть права пользователя

Обновлено: 21.11.2024

Когда несколько пользователей могут получить доступ к объектам базы данных, авторизацией этих объектов можно управлять с привилегиями. У каждого объекта есть владелец. Привилегии определяют, может ли пользователь изменять объект, принадлежащий другому пользователю. Привилегии предоставляются или отменяются администратором экземпляра, пользователем с привилегией ADMIN или, в случае привилегий для определенного объекта, владельцем объекта.

Раздел «Предоставление авторизации объектам с помощью привилегий» в Руководстве по эксплуатации базы данных Oracle TimesTen In-Memory содержит подробное описание того, как предоставлять и отзывать привилегии для различных объектов. Кроме того, в следующих разделах содержится краткий справочник по всем привилегиям, необходимым для выполнения операций TimesTen:

Системные привилегии

Системная привилегия — это право выполнять определенное действие или выполнять действие над любым объектом определенного типа. Объекты включают таблицы, представления, материализованные представления, синонимы, индексы, последовательности, группы кэша, схемы репликации и функции, процедуры и пакеты PL/SQL. Только администратор экземпляра или пользователь с правами ADMIN могут предоставлять или отзывать системные права.

Таблица 7-1 Системные привилегии

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

ИЗМЕНИТЬ ЛЮБУЮ ГРУППУ КЭША

Позволяет пользователю изменять любую группу кеша в базе данных.

ИЗМЕНИТЬ ЛЮБОЙ ИНДЕКС

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

Примечание. Оператор ALTER INDEX отсутствует.

ИЗМЕНИТЬ ЛЮБОЙ МАТЕРИАЛИЗОВАННЫЙ ВИД

Позволяет пользователю изменять любое материализованное представление в базе данных.

Примечание. Оператор ALTER MATERIALIZED VIEW отсутствует.

ИЗМЕНИТЬ ЛЮБУЮ ПРОЦЕДУРУ

Позволяет пользователю изменять любую процедуру, функцию или пакет PL/SQL в базе данных.

ИЗМЕНИТЬ ЛЮБУЮ ПОСЛЕДОВАТЕЛЬНОСТЬ

Позволяет пользователю изменять любую последовательность в базе данных.

Примечание. Оператор ALTER SEQUENCE отсутствует.

ИЗМЕНИТЬ ЛЮБУЮ ТАБЛИЦУ

Позволяет пользователю изменять любую таблицу в базе данных.

Позволяет пользователю изменять любое представление в базе данных.

Примечание. Оператор ALTER VIEW отсутствует.

Позволяет пользователю выполнять операции, связанные с группами кеша.

СОЗДАТЬ ЛЮБУЮ КЭШ-ГРУППУ

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

СОЗДАТЬ ЛЮБОЙ ИНДЕКС

Позволяет пользователю создать индекс для любой таблицы или материализованного представления в базе данных.

СОЗДАТЬ ЛЮБОЕ МАТЕРИАЛИЗОВАННОЕ ПРЕДСТАВЛЕНИЕ

Позволяет пользователю создать материализованное представление, принадлежащее любому пользователю в базе данных.

СОЗДАТЬ ЛЮБУЮ ПРОЦЕДУРУ

Позволяет пользователю создать процедуру, функцию или пакет PL/SQL, принадлежащие любому пользователю в базе данных.

СОЗДАТЬ ЛЮБУЮ ПОСЛЕДОВАТЕЛЬНОСТЬ

Позволяет пользователю создать последовательность, принадлежащую любому пользователю в базе данных.

СОЗДАТЬ ЛЮБОЙ СИНОНИМ

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

СОЗДАТЬ ЛЮБУЮ ТАБЛИЦУ

Позволяет пользователю создать таблицу, принадлежащую любому пользователю в базе данных.

СОЗДАТЬ ЛЮБОЕ ПРЕДСТАВЛЕНИЕ

Позволяет пользователю создать представление, принадлежащее любому пользователю в базе данных.

СОЗДАТЬ КЭШ-ГРУППУ

Позволяет пользователю создать группу кеша, принадлежащую этому пользователю.

СОЗДАТЬ МАТЕРИАЛИЗОВАННОЕ ПРЕДСТАВЛЕНИЕ

Позволяет пользователю создать материализованное представление, принадлежащее этому пользователю.

Позволяет пользователю создать процедуру, функцию или пакет PL/SQL, принадлежащие этому пользователю.

СОЗДАТЬ ОБЩЕСТВЕННЫЙ СИНОНИМ

Позволяет пользователю создать общедоступный синоним.

Позволяет пользователю создать последовательность, принадлежащую этому пользователю.

Позволяет пользователю создать подключение к базе данных.

Позволяет пользователю создать частный синоним.

Позволяет пользователю создать таблицу, принадлежащую этому пользователю.

Позволяет пользователю создать представление, принадлежащее этому пользователю.

УДАЛИТЬ ЛЮБУЮ ТАБЛИЦУ

Позволяет пользователю удалять данные из любой таблицы базы данных.

УДАЛИТЬ ЛЮБУЮ ГРУППУ КЭША

Позволяет пользователю удалить любую группу кеша в базе данных.

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

УДАЛИТЬ ЛЮБОЙ МАТЕРИАЛИЗОВАННЫЙ ПРОСМОТР

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

ПРЕКРАТИТЬ ЛЮБУЮ ПРОЦЕДУРУ

Позволяет пользователю удалить любую процедуру, функцию или пакет PL/SQL в базе данных.

УДАЛИТЬ ЛЮБУЮ ПОСЛЕДОВАТЕЛЬНОСТЬ

Позволяет пользователю удалить любую последовательность из базы данных.

УДАЛИТЬ ЛЮБОЙ СИНОНИМ

Позволяет пользователю удалить синоним, принадлежащий любому пользователю в базе данных.

Позволяет пользователю удалить любую таблицу в базе данных.

Позволяет пользователю удалить любое представление из базы данных.

УДАЛИТЬ ПУБЛИЧНЫЙ СИНОНИМ

Позволяет пользователю удалить общедоступный синоним.

ВЫПОЛНИТЬ ЛЮБУЮ ПРОЦЕДУРУ

Позволяет пользователю выполнять любую процедуру, функцию или пакет PL/SQL в базе данных.

ОЧИСТИТЬ ЛЮБУЮ ГРУППУ КЭША

Позволяет пользователю очистить любую группу кеша в базе данных.

ВСТАВИТЬ ЛЮБУЮ ТАБЛИЦУ

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

ЗАГРУЗИТЬ ЛЮБУЮ ГРУППУ КЭША

Позволяет пользователю загружать любую группу кеша в базу данных.

ОБНОВИТЬ ЛЮБУЮ ГРУППУ КЭША

Позволяет пользователю очистить любую группу кеша в базе данных.

ВЫБЕРИТЕ ЛЮБУЮ ПОСЛЕДОВАТЕЛЬНОСТЬ

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

ВЫБЕРИТЕ ЛЮБУЮ ТАБЛИЦУ

Позволяет пользователю выбирать из любой таблицы, представления, материализованного представления или синонима в базе данных.

ВЫГРУЗИТЬ ЛЮБУЮ ГРУППУ КЭША

Позволяет пользователю выгрузить любую группу кеша в базе данных.

ОБНОВИТЬ ЛЮБУЮ ТАБЛИЦУ

Позволяет пользователю обновлять любую таблицу или синоним в базе данных.

Позволяет пользователю подключаться к базе данных в качестве средства чтения XLA.

Привилегии объекта

Привилегия объекта — это право выполнять определенное действие над объектом или получать доступ к объекту другого пользователя. К объектам относятся таблицы, представления, материализованные представления, индексы, синонимы, последовательности, группы кеша, схемы репликации и функции, процедуры и пакеты PL/SQL.

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

Таблица 7-2 Объектные привилегии

Позволяет пользователю удалять из таблицы.

Пакет, процедура или функция PL/SQL

Позволяет пользователю напрямую выполнять пакет, процедуру или функцию PL/SQL.

Позволяет пользователю очистить группу кеша.

Таблица или материализованное представление

Позволяет пользователю создать индекс для таблицы или материализованного представления.

Таблица или синоним

Позволяет пользователю вставлять в таблицу или в таблицу с помощью синонима.

Позволяет пользователю загрузить группу кеша.

Таблица или материализованное представление

Позволяет пользователю создать зависимость внешнего ключа от таблицы или материализованного представления.

Привилегия REFERENCES для родительской таблицы неявно предоставляет привилегию SELECT для родительской таблицы.

Позволяет пользователю обновить группу кеша.

Таблица, последовательность, представление, материализованное представление или синоним

Позволяет пользователю выбирать из таблицы, последовательности, представления, материализованного представления или синонима.

Привилегия SELECT позволяет пользователю выполнять все операции с последовательностью.

Пользователю может быть предоставлена ​​привилегия SELECT для синонима или представления без явного предоставления привилегии SELECT для исходной таблицы.

Позволяет пользователю выгрузить группу кеша.

Позволяет пользователю обновлять таблицу.

Иерархия прав

Некоторые привилегии дают другие привилегии. Например, привилегия ADMIN предоставляет все остальные привилегии. Системная привилегия CREATE ANY TABLE предоставляет объектную привилегию CREATE TABLE. В Таблице 7-3 показана иерархия привилегий.

Таблица 7-3 Иерархия прав

Все остальные привилегии, включая CACHE_MANAGER

СОЗДАТЬ ЛЮБОЙ ИНДЕКС

ИНДЕКС (любая таблица или материализованное представление)

СОЗДАТЬ ЛЮБОЕ МАТЕРИАЛИЗОВАННОЕ ПРЕДСТАВЛЕНИЕ

СОЗДАТЬ МАТЕРИАЛИЗОВАННОЕ ПРЕДСТАВЛЕНИЕ

СОЗДАТЬ ЛЮБУЮ ПРОЦЕДУРУ

СОЗДАТЬ ЛЮБУЮ ПОСЛЕДОВАТЕЛЬНОСТЬ

СОЗДАТЬ ЛЮБОЙ СИНОНИМ

СОЗДАТЬ ЛЮБУЮ ТАБЛИЦУ

СОЗДАТЬ ЛЮБОЕ ПРЕДСТАВЛЕНИЕ

УДАЛИТЬ ЛЮБУЮ ТАБЛИЦУ

УДАЛИТЬ (любую таблицу)

ВЫПОЛНИТЬ ЛЮБУЮ ПРОЦЕДУРУ

ВЫПОЛНИТЬ (любую процедуру)

ВСТАВИТЬ ЛЮБУЮ ТАБЛИЦУ

INSERT (любая таблица)

ВЫБЕРИТЕ ЛЮБУЮ ПОСЛЕДОВАТЕЛЬНОСТЬ

ВЫБРАТЬ (любая последовательность)

ВЫБЕРИТЕ ЛЮБУЮ ТАБЛИЦУ

SELECT (любая таблица, представление или материализованное представление)

ОБНОВИТЬ ЛЮБУЮ ТАБЛИЦУ

ОБНОВЛЕНИЕ (любая таблица)

Привилегии группы кэширования имеют отдельную иерархию, за исключением того, что ADMIN предоставляет привилегию CACHE_MANAGER.

Привилегия CACHE_MANAGER предоставляет следующие привилегии:

СОЗДАТЬ ЛЮБУЮ КЭШ-ГРУППУ

ИЗМЕНИТЬ ЛЮБУЮ ГРУППУ КЭША

УДАЛИТЬ ЛЮБУЮ ГРУППУ КЭША

ОЧИСТИТЬ ЛЮБУЮ ГРУППУ КЭША

ЗАГРУЗИТЬ ЛЮБУЮ ГРУППУ КЭША

ВЫГРУЗИТЬ ЛЮБУЮ ГРУППУ КЭША

ОБНОВИТЬ ЛЮБУЮ ГРУППУ КЭША

Привилегия CACHE_MANAGER также включает возможность запускать и останавливать агент кэширования и агент репликации, а также выполнять операции сетки кэша.

CREATE ANY CACHE GROUP предоставляет привилегию CREATE CACHE GROUP для любой группы кэширования.

ПУБЛИЧНАЯ роль

Все пользователи базы данных имеют роль PUBLIC. Во вновь созданной базе данных TimesTen по умолчанию PUBLIC имеет привилегии SELECT и EXECUTE для различных системных таблиц и представлений, а также функций, процедур и пакетов PL/SQL. Вы можете увидеть список объектов, используя этот запрос:

Права, предоставленные PUBLIC в рамках создания базы данных, нельзя отозвать. Чтобы увидеть список этих привилегий, используйте этот запрос:

В администрирование привилегий, ролей и профилей пользователей вовлечено множество задач со множеством взаимосвязанных аспектов.Эти необходимые операции и принципы обсуждаются в следующих разделах:

Управление пользователями Oracle

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

Справочник Oracle Database SQL для получения дополнительной информации об операторах SQL, используемых для управления пользователями

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

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

В примере 11-1 создается пользователь и указывается пароль пользователя, табличное пространство по умолчанию, временное табличное пространство, в котором создаются временные сегменты, квоты табличного пространства и профиль.

Пример 11-1 Создание пользователя и предоставление системного права на создание сеанса

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

Как администратор, вы должны создавать свои собственные роли и назначать только те привилегии, которые необходимы. Например, многие пользователи, которым ранее была предоставлена ​​привилегия CONNECT, не нуждались в дополнительных привилегиях, которые предоставляла CONNECT. Вместо этого на самом деле требовалось только CREATE SESSION, и фактически это единственная привилегия, которую в настоящее время сохраняет CONNECT.

Создание собственных ролей дает организации детальный контроль над привилегиями, которые она назначает, и защищает ее в случае изменения Oracle ролей, которые она определяет. Например, роли CONNECT и RESOURCE будут объявлены устаревшими в будущих версиях Oracle.

Этот раздел относится к предыдущему примеру, поскольку в нем обсуждаются следующие аспекты создания пользователя:

Предоставление системных привилегий и ролей на стр. 25-11

Указание имени

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

Настройка аутентификации пользователя

В примере 11-1 новый пользователь должен быть аутентифицирован с использованием базы данных. В этом случае подключающийся пользователь должен указать правильный пароль для базы данных для успешного подключения.

Выбор и указание метода аутентификации пользователя обсуждается в разделе "Методы аутентификации пользователя".

Назначение табличного пространства по умолчанию

У каждого пользователя должно быть табличное пространство по умолчанию. Когда пользователь создает объект схемы и не указывает табличного пространства для него, Oracle Database сохраняет объект в пользовательском табличном пространстве по умолчанию.

Настройкой по умолчанию для табличных пространств по умолчанию для всех пользователей является табличное пространство SYSTEM. Если пользователь не создает объекты и не имеет на это прав, то этот параметр по умолчанию подходит. Однако, если пользователь может создать объект любого типа, вам следует специально назначить пользователю табличное пространство по умолчанию. Использование табличного пространства, отличного от SYSTEM, снижает конкуренцию между объектами словаря данных и пользовательскими объектами за одни и те же файлы данных. Как правило, не рекомендуется хранить пользовательские данные в табличном пространстве SYSTEM.

Во время создания базы данных вы можете создать постоянное табличное пространство по умолчанию, отличное от SYSTEM, которое будет использоваться в качестве стандартного пространства базы данных для постоянных объектов. Отделяя пользовательские данные от системных, вы снижаете вероятность возникновения проблем с табличным пространством SYSTEM, которые в некоторых случаях могут привести к тому, что вся база данных станет нефункциональной. Это постоянное табличное пространство по умолчанию не используется системными пользователями, то есть SYS , SYSTEM и OUTLN , чье постоянное табличное пространство по умолчанию остается SYSTEM . Табличное пространство, обозначенное как постоянное табличное пространство по умолчанию, не может быть удалено. Для достижения этой цели необходимо сначала назначить другое табличное пространство в качестве постоянного табличного пространства по умолчанию. Можно ИЗМЕНИТЬ постоянное табличное пространство по умолчанию на другое табличное пространство, затрагивающее всех пользователей или объекты, созданные после фиксации ALTER DDL.

Вы также можете установить пользовательское табличное пространство по умолчанию во время создания пользователя и изменить его позже с помощью оператора ALTER USER. Изменение пользовательского табличного пространства по умолчанию влияет только на объекты, созданные после изменения параметра.

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

В примере 11-1 табличным пространством по умолчанию для пользователя jward является data_ts , а его квота на это табличное пространство составляет 500 КБ .

Назначение квот табличного пространства

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

Пользователи с правами на создание определенных типов объектов могут создавать эти объекты в указанном табличном пространстве.

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

По умолчанию у пользователя нет квоты на какое-либо табличное пространство в базе данных. Если у пользователя есть привилегия на создание объекта схемы, необходимо назначить квоту, позволяющую пользователю создавать объекты. Как минимум, назначьте пользователям квоту для табличного пространства по умолчанию и дополнительные квоты для других табличных пространств, в которых они могут создавать объекты.

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

Вы можете назначить квоты пользовательскому табличному пространству при создании пользователя или добавить или изменить квоты позже. Если новая квота меньше старой, то выполняются следующие условия:

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

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

Отзыв возможности пользователя создавать объекты в табличном пространстве

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

НЕОГРАНИЧЕННАЯ системная привилегия TABLESPACE

Чтобы разрешить пользователю использовать неограниченное количество любого табличного пространства в базе данных, предоставьте пользователю системную привилегию UNLIMITED TABLESPACE. Это отменяет все явные квоты табличного пространства для пользователя. Если позже вы отзовете эту привилегию, явные квоты снова вступят в силу. Вы можете предоставить это право только пользователям, но не ролям.

Прежде чем предоставлять системную привилегию UNLIMITED TABLESPACE, вы должны рассмотреть последствия этого.

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

Эта привилегия переопределяет все явные квоты табличного пространства для пользователя.

Вы не можете выборочно отозвать доступ к табличному пространству у пользователя с привилегией UNLIMITED TABLESPACE. Вы можете предоставить выборочный или ограниченный доступ только после отзыва привилегии.

Назначение временного табличного пространства

Каждому пользователю также должно быть назначено временное табличное пространство. Когда пользователь выполняет оператор SQL, требующий временного сегмента, Oracle сохраняет этот сегмент во временном табличном пространстве пользователя. Эти временные сегменты создаются системой при сортировке или объединении и принадлежат SYS , у которого есть права доступа к ресурсам во всех табличных пространствах.

В предыдущем операторе CREATE USER временным табличным пространством jward является temp_ts , табличное пространство, созданное явно для содержания только временных сегментов. Такое табличное пространство создается с помощью оператора CREATE TEMPORARY TABLESPACE.

Если временное табличное пространство пользователя не задано явно, то пользователю назначается временное табличное пространство по умолчанию, указанное при создании базы данных или позже с помощью инструкции ALTER DATABASE. Если нет явно назначенного временного табличного пространства по умолчанию, то по умолчанию используется табличное пространство SYSTEM или другое постоянное табличное пространство по умолчанию, установленное системным администратором. Не рекомендуется хранить пользовательские данные в табличном пространстве SYSTEM. Кроме того, назначение табличного пространства для использования в качестве временного табличного пространства устраняет конкуренцию файлов между временными сегментами и другими типами сегментов.

Если ваше табличное пространство SYSTEM управляется локально, то пользователям должно быть назначено конкретное временное табличное пространство по умолчанию (локально управляемое). Им может быть запрещено по умолчанию использовать табличное пространство SYSTEM, поскольку временные объекты нельзя размещать в постоянных локально управляемых табличных пространствах.

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

Несколько временных табличных пространств: использование групп табличных пространств

Указание профиля

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

Настройка ролей по умолчанию

Вы не можете установить роли по умолчанию для пользователя в операторе CREATE USER.Когда вы впервые создаете пользователя, параметр роли по умолчанию для пользователя — ALL , что приводит к тому, что все роли, впоследствии предоставленные пользователю, будут ролями по умолчанию. Используйте оператор ALTER USER, чтобы изменить роли пользователя по умолчанию.

Изменение пользователей

Пользователи могут изменять свои собственные пароли. Однако, чтобы изменить любую другую опцию домена безопасности пользователя, вы должны иметь системную привилегию ALTER USER. Администраторы безопасности обычно являются единственными пользователями, имеющими эту системную привилегию, поскольку она позволяет модифицировать любой домен безопасности пользователя. Эта привилегия включает в себя возможность устанавливать квоты табличного пространства для пользователя в любом табличном пространстве в базе данных, даже если пользователь, выполняющий изменение, не имеет квоты для указанного табличного пространства.

Вы можете изменить настройки безопасности пользователя с помощью инструкции ALTER USER. Изменение настроек безопасности пользователя влияет на будущие сеансы пользователя, а не на текущие сеансы.

Следующий оператор изменяет параметры безопасности для пользователя, avyrros :

Здесь оператор ALTER USER изменяет параметры безопасности для пользователя avyrros следующим образом:

Аутентификация изменена на использование учетной записи операционной системы пользователя avyrros .

Табличное пространство по умолчанию и временное табличное пространство явно устанавливаются для пользователя avyrros .

avyrros выделяется 100-мегабайтной квотой для табличного пространства data_ts.

Квота на test_ts отменена для пользователя avyrros .

avyrros назначен профиль клерка.

Изменение механизма аутентификации пользователя

Большинство пользователей, не являющихся администраторами баз данных, по-прежнему могут изменять свои собственные пароли с помощью инструкции ALTER USER следующим образом:

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

Пользователи должны иметь привилегию ALTER USER для переключения между методами аутентификации. Обычно это право есть только у администратора.

"Методы аутентификации пользователей" для получения информации о методах аутентификации, доступных для пользователей базы данных Oracle

Изменение ролей пользователя по умолчанию

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

Исключение пользователей

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

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

Не пытайтесь удалить пользователя SYS или SYSTEM. Это приведет к повреждению вашей базы данных.

Пользователя, который в данный момент подключен к базе данных, нельзя удалить. Чтобы удалить подключенного пользователя, вы должны сначала завершить пользовательские сеансы с помощью оператора SQL ALTER SYSTEM с предложением KILL SESSION.

Вы можете удалить пользователя из базы данных с помощью инструкции DROP USER. Чтобы удалить пользователя и все объекты пользовательской схемы (если они есть), вы должны иметь системную привилегию DROP USER. Поскольку системная привилегия DROP USER является мощной, администратор безопасности обычно является единственным типом пользователей, у которых есть эта привилегия.

Если схема пользователя содержит какие-либо зависимые объекты схемы, используйте параметр CASCADE, чтобы успешно удалить пользователя и все связанные объекты и внешние ключи, которые зависят от таблиц пользователя. Если вы не укажете CASCADE и схема пользователя содержит зависимые объекты, будет возвращено сообщение об ошибке, и пользователь не будет удален. Прежде чем удалять пользователя, схема которого содержит объекты, тщательно изучите, какие объекты содержит схема пользователя, и последствия их удаления. Обратите внимание на любые неизвестные каскадные эффекты. Например, если вы собираетесь удалить пользователя, владеющего таблицей, проверьте, не зависят ли какие-либо представления или процедуры от этой конкретной таблицы.

Следующий оператор удаляет пользователя, jones и все связанные объекты и внешние ключи, которые зависят от таблиц, принадлежащих jones .

Руководство администратора базы данных Oracle для получения дополнительной информации о завершении сеансов

Просмотр информации о пользователях и профилях базы данных

Большое разнообразие вариантов, доступных для просмотра такой информации, обсуждается в следующих подразделах:

Вы можете управлять привилегиями пользователей следующими способами:

Предоставление и отзыв индивидуальных привилегий. Вы можете предоставить индивидуальные привилегии, например, привилегию на выполнение оператора UPDATE SQL, отдельным пользователям или группам пользователей.

Создание роли и назначение ей привилегий. Роль — это именованная группа связанных привилегий, которые вы предоставляете как группе пользователям или другим ролям.

Создание защищенной роли приложения. Роль защищенного приложения позволяет вам определять условия, определяющие, когда роль базы данных может быть включена.Например, роль безопасного приложения может проверять IP-адрес, связанный с сеансом пользователя, прежде чем разрешить сеансу активировать роль базы данных.

Рекомендации по предоставлению привилегий

Поскольку привилегии — это права на выполнение определенных действий, таких как обновление или удаление таблицы, не предоставляйте пользователям базы данных больше привилегий, чем это необходимо. Введение в управление привилегиями см. в разделе «О привилегиях и ролях пользователей» в Oracle Database 2 Day DBA. Oracle Database 2 Day DBA также предоставляет пример того, как предоставить привилегию.

Другими словами, принцип наименьших привилегий заключается в том, что пользователям предоставляются только те привилегии, которые действительно необходимы для эффективного выполнения их работы. Чтобы реализовать этот принцип, максимально ограничьте следующее:

Количество системных и объектных привилегий, предоставленных пользователям базы данных

Количество людей, которым разрешено подключаться к базе данных с привилегиями SYS

Например, обычно право CREATE ANY TABLE не предоставляется пользователю, у которого нет прав администратора базы данных.

Рекомендации по предоставлению ролей пользователям

Роль — это именованная группа связанных привилегий, которые вы предоставляете как группе пользователям или другим ролям. Чтобы узнать об основах управления ролями, см. «Администрирование ролей» в Oracle Database 2 Day DBA. Кроме того, см. «Пример: создание роли» в Oracle Database 2 Day DBA.

Роли полезны для быстрого и простого предоставления разрешений пользователям. Хотя вы можете использовать роли, определенные в базе данных Oracle, у вас будет больше контроля и преемственности, если вы создадите свои собственные роли, содержащие только привилегии, относящиеся к вашим требованиям. Oracle может изменить или удалить привилегии в роли, определенной базой данных Oracle, как это было с ролью CONNECT, которая теперь имеет только привилегию CREATE SESSION. Раньше у этой роли было восемь других привилегий.

Убедитесь, что определяемые вами роли содержат только права, необходимые для выполнения конкретной работы. Если пользователям вашего приложения не нужны все привилегии, предоставляемые существующей ролью, примените другой набор ролей, который предоставляет только правильные привилегии. Либо создайте и назначьте более строгую роль.

Не предоставляйте мощные привилегии, такие как привилегия CREATE DATABASE LINK, обычным пользователям, таким как пользователь SCOTT . (В частности, не предоставляйте никаких мощных привилегий SCOTT , потому что это хорошо известная учетная запись пользователя по умолчанию, которая может быть уязвима для злоумышленников.) Вместо этого предоставьте привилегию роли базы данных, а затем предоставьте эту роль пользователям, которые должны использовать привилегия. И не забудьте предоставить только минимальные привилегии, необходимые пользователю.

Рекомендации по работе с привилегиями для роли PUBLIC

Вы должны отозвать ненужные привилегии и роли из роли PUBLIC. Роль PUBLIC автоматически присваивается каждой учетной записи пользователя базы данных. По умолчанию ему не назначены привилегии, но у него есть права доступа ко многим объектам Java. Вы не можете удалить роль PUBLIC, и ручное предоставление или отзыв этой роли не имеет значения, потому что учетная запись пользователя всегда будет принимать эту роль. Поскольку все учетные записи пользователей базы данных принимают роль PUBLIC, она не отображается в представлениях словаря данных DBA_ROLES и SESSION_ROLES.

Поскольку все пользователи имеют роль PUBLIC, любой пользователь базы данных может использовать привилегии, предоставленные этой роли. Эти привилегии включают потенциальное предоставление кому-либо с минимальными привилегиями доступа и выполнения функций, к которым этому пользователю в противном случае не было бы разрешен прямой доступ.

Управление доступом к приложениям с помощью ролей безопасного приложения

Роль безопасного приложения — это роль, которую можно включить только с помощью авторизованного пакета PL/SQL. Сам пакет PL/SQL отражает политики безопасности, необходимые для управления доступом к приложению.

Этот раздел содержит:

О ролях безопасного приложения

Роль безопасного приложения — это роль, которую можно включить только с помощью авторизованного пакета PL/SQL. Этот пакет определяет одну или несколько политик безопасности, которые контролируют доступ к приложению. Как роль, так и пакет обычно создаются в схеме создавшего их лица, которым обычно является администратор безопасности. Администратор безопасности — это администратор базы данных, который отвечает за обеспечение безопасности базы данных.

Преимущество использования защищенной роли приложения заключается в том, что вы можете создать дополнительные уровни безопасности для доступа к приложению в дополнение к привилегиям, предоставленным самой роли. Защищенные роли приложений усиливают безопасность, поскольку пароли не встроены в исходный код приложения и не хранятся в таблице. Таким образом, решения, которые принимает база данных, основаны на реализации ваших политик безопасности.Поскольку эти определения хранятся в одном месте, в базе данных, а не в ваших приложениях, вы изменяете эту политику один раз вместо того, чтобы изменять политику в каждом приложении. Независимо от того, сколько пользователей подключается к базе данных, результат всегда один и тот же, поскольку политика привязана к роли.

Роль безопасного приложения состоит из следующих компонентов:

Сама роль безопасного приложения. Вы создаете роль с помощью инструкции CREATE ROLE с предложением IDENTIFIED USING, чтобы связать ее с пакетом PL/SQL. Затем вы предоставляете роли привилегии, которые вы обычно предоставляете роли.

Пакет PL/SQL, процедура или функция, связанная с ролью безопасного приложения. Пакет PL/SQL устанавливает условие, которое либо предоставляет роль, либо отказывает в ней человеку, пытающемуся войти в базу данных. Вы должны создать пакет, процедуру или функцию PL/SQL, используя права вызывающего, а не определяющего. Правильная процедура вызывающего выполняется с привилегиями текущего пользователя, то есть пользователя, который вызывает процедуру. Этому пользователю должна быть предоставлена ​​привилегия EXECUTE для базовых объектов, к которым обращается пакет PL/SQL. Правильные процедуры вызывающей стороны не привязаны к конкретной схеме. Они могут запускаться различными пользователями и позволяют нескольким пользователям управлять своими данными с помощью централизованной логики приложения. Чтобы создать пакет прав вызывающего, используйте предложение AUTHID CURRENT_USER в разделе объявления кода процедуры.

Пакет PL/SQL также должен содержать оператор SET ROLE или вызов DBMS_SESSION.SET_ROLE для включения (или отключения) роли для пользователя.

После создания пакета PL/SQL необходимо предоставить соответствующим пользователям привилегию EXECUTE для пакета.

Способ выполнения пакета PL/SQL при входе пользователя в систему. Чтобы выполнить пакет PL/SQL, вы должны вызвать его непосредственно из приложения, прежде чем пользователь попытается использовать привилегии, предоставляемые ролью. Вы не можете использовать триггер входа в систему для автоматического выполнения пакета PL/SQL при входе пользователя в систему.

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

Вопрос: я хочу отобразить все привилегии пользователя Oracle, включая прямые гранты и ролевые гранты. Как отобразить все, что было предоставлено пользователю?

Ответ. Чтобы получить полные сценарии, загрузите коллекцию сценариев Oracle . Существует множество представлений, содержащих привилегии пользователя:

  • dba_sys_privs
  • dba_tab_privs
  • dba_role_privs
  • табличные_привилегии

Этот запрос показывает все привилегии, предоставленные на уровне таблицы для пользователя с именем 'MYUSER':

выберите
владельца,
имя_таблицы,
select_priv,
insert_priv,
delete_priv,
update_priv,
references_priv,
alter_priv,
index_priv,
от
table_привилегий,
где
получатель = 'USER_A'
по
владельцу,
table_name;

Этот запрос показывает все привилегии роли для пользователя:

выбрать отдельного
владельца,
имя_таблицы,
привилегию,
из
dba_role_privs rp,
role_tab_privs rtp,
где
rp .granted_role = rtp.role
и
rp.grantee = 'MYUSER'
по заказу
владельца,
table_name;

В следующем примере будут показаны все системные и ролевые привилегии для пользователя с именем MYUSER:

выберите
привилегию
из
sys.dba_sys_privs,
где
grantee = 'MYUSER'
объединение
выберите
привилегию
от
dba_role_privs rp
присоединиться
role_sys_privs rsp
на (rp.granted_role = rsp.role)
где rp.grantee = 'MYUER'
/>упорядочить по 1;

Обучение Oracle от Дона Берлесона

Лучшие на сайте «Учебные курсы Oracle» находятся на расстоянии одного телефонного звонка! Вы можете пройти индивидуальное обучение Oracle от Дональда Берлесона прямо в своем магазине!

Бурлесон — американская команда

Примечание. Эта документация по Oracle была создана в качестве справочника по поддержке и обучению Oracle для использования нашими специалистами-консультантами по настройке производительности администраторов баз данных. Не стесняйтесь задавать вопросы на нашем форуме Oracle.

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

Ошибки? Технология Oracle меняется, и мы стараемся обновлять нашу информацию о поддержке BC Oracle.Если вы обнаружите ошибку или у вас есть предложение по улучшению нашего контента, мы будем признательны за ваш отзыв. Просто электронная почта:

и укажите URL-адрес страницы.


Burleson Consulting

Оракул поддержки баз данных

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