Oracle 10g - невидимая колонка? - PullRequest
1 голос
/ 20 января 2009

Можно ли «спрятать» столбец в базе данных Oracle 10g или предотвратить полную вставку данных? Мы бы предпочли, чтобы существующие операторы INSERT все еще работали, но не вставляли информацию для определенного столбца. Кроме того, маскирование столбцов или любой тип шифрования не является предпочтительным.

Не уверен, если это возможно, но заранее спасибо.

Ответы [ 5 ]

3 голосов
/ 20 января 2009

Если все, что вам нужно сделать, это остановить вставку данных, вы можете создать триггер BEFORE INSERT FOR EACH ROW, который уничтожит любое значение, вставленное в столбец перед сохранением строки.

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

2 голосов
/ 11 ноября 2012

Я знаю, как спрятать столбец.

  • Вы используете

    SET UNUSED

    возможность пометить один или несколько столбцов как неиспользуемые.

  • Вы используете DROP

    НЕОБХОДИМЫЕ КОЛОННЫ

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

ALTER TABLE emp
SET UNUSED (фамилия);

и

ALTER TABLE emp
УДАЛИТЬ НЕПРАВИЛЬНЫЕ КОЛОННЫ;

2 голосов
/ 20 января 2009

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

1 голос
/ 30 января 2009

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

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

0 голосов
/ 31 октября 2009

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

grant select on emp to scott;

grant update (column1, column2), insert (column1) on emp to scott
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...