Как отозвать привилегию изменения сеанса в Oracle
Я предоставил CREATE SESSION
привилегию недавно созданного пользователя базы данных, и я предоставил ему SELECT
привилегия на некоторые объекты для разных схем базы данных.
Я нашел схему приложений (SCHEMA#
) в v$session
это отличается от базы данных USERNAME
недавно создан, и хотелось бы разобраться в этом явлении.
Я думаю, что он выполняет alter session set current schema
и я хотел бы знать, можно ли отозвать alter session
привилегия в Oracle 11g.
1 ответ
В Документация дляalter session
в заявлении говорится:
Чтобы включить или отключить средство трассировки SQL, вы должны иметь
ALTER SESSION
системная привилегия.Чтобы включить или отключить возобновляемое выделение пространства, у вас должен быть
RESUMABLE
системная привилегия.Вам не нужны никакие привилегии для выполнения других операций этого оператора, если не указано иное.
Поскольку вам не нужны никакие привилегии для выполнения alter session set current_schema
, вы ничего не можете отозвать, чтобы предотвратить это. Если бы вы действительно предоставилиalter session
- чего вы не сделали, судя по тому, что вы сказали - тогда вы, конечно, все равно можете отозвать это, но это не повлияет на возможность изменения текущей схемы.
Но на самом деле это не проблема и упоминается в руководстве по безопасности как хорошая вещь:
Например, данная схема может владеть объектами схемы для определенного приложения. Если у пользователей приложения есть соответствующие права, они могут подключаться к базе данных, используя типичные имена пользователей базы данных, и использовать приложение и соответствующие объекты. Однако ни один пользователь не может подключиться к базе данных, используя схему, настроенную для приложения. Эта конфигурация предотвращает доступ к связанным объектам через схему и обеспечивает еще один уровень защиты для объектов схемы. В этом случае приложение может выдать
ALTER SESSION SET CURRENT_SCHEMA
оператор для подключения пользователя к правильной схеме приложения.
Ваш недавно созданный пользователь не имеет никаких дополнительных привилегий или возможностей, просто изменив свою текущую схему. Они не "стали" этой схемой; они по-прежнему могут делать только то, что вы указали, предоставляя привилегии выбора для объектов. Они больше ничего не видят и больше не могут делать с видимыми предметами. Они не унаследовали какие-либо привилегии, которые имеет схема, поэтому они не могут, например, создавать или удалять объекты в рамках этой схемы. (Вам придется явно предоставить им дополнительныеany
привилегии, которые, по-видимому, вы не собираетесь делать.)
Что они могут сделать, так это ссылаться на эти объекты, не добавляя к ним префикса имени схемы и не создавая синонимов. Но они по-прежнему могут выбирать только из них (если это единственная предоставленная вами привилегия).