powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Запрет на удаление
25 сообщений из 42, страница 1 из 2
Запрет на удаление
    #34977702
sadgin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
День добрый,

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

Каким образом это можно сделать?
...
Рейтинг: 0 / 0
Запрет на удаление
    #34977706
Фотография dmidek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть такая переменная user ...
...
Рейтинг: 0 / 0
Запрет на удаление
    #34977707
Jannny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
raise вставить
...
Рейтинг: 0 / 0
Запрет на удаление
    #34977717
Фотография dmidek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Jannny: Все правильно, нам надоело отвечать одинаково и мы теперь
отвечаем "пополам"
...
Рейтинг: 0 / 0
Запрет на удаление
    #34977739
sadgin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А можно пример?
...
Рейтинг: 0 / 0
Запрет на удаление
    #34977752
ant74
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А grant на delete чужому пользователю не давать слишком просто?
...
Рейтинг: 0 / 0
Запрет на удаление
    #34977763
sadgin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Задача стоит именно сделать это через триггеры
...
Рейтинг: 0 / 0
Запрет на удаление
    #34977776
semenar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sadginА можно пример?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
CREATE OR REPLACE TRIGGER trg_del 
before delete on tbl_name for each row
begin 
if  user <> 'puper_user' then 
  raise_application_error(- 20003 ,'Нет удалениям во всем мире!');
end if;
end trg_del;
...
Рейтинг: 0 / 0
Запрет на удаление
    #34977834
sadgin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо :)
...
Рейтинг: 0 / 0
Запрет на удаление
    #34978676
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
semenar sadginА можно пример?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
CREATE OR REPLACE TRIGGER trg_del 
before delete on tbl_name for each row
begin 
if  user <> 'puper_user' then 
  raise_application_error(- 20003 ,'Нет удалениям во всем мире!');
end if;
end trg_del;


And why for each row?

SY.
...
Рейтинг: 0 / 0
Запрет на удаление
    #34978708
semenar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SY semenar sadginА можно пример?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
CREATE OR REPLACE TRIGGER trg_del 
before delete on tbl_name for each row
begin 
if  user <> 'puper_user' then 
  raise_application_error(- 20003 ,'Нет удалениям во всем мире!');
end if;
end trg_del;


And why for each row?

SY.
Согласен, смостырил из того что было под рукой.
...
Рейтинг: 0 / 0
Запрет на удаление
    #34978733
semenar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SY semenar sadginА можно пример?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
CREATE OR REPLACE TRIGGER trg_del 
before delete on tbl_name for each row
begin 
if  user <> 'puper_user' then 
  raise_application_error(- 20003 ,'Нет удалениям во всем мире!');
end if;
end trg_del;


And why for each row?

SY.
У меня просто в каждой строке службное поле usr и конструкция с ипользованием
:new. or :old.
...
Рейтинг: 0 / 0
Запрет на удаление
    #35065028
alexia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос в в тему:
Код: plaintext
  raise_application_error(<-число>, <сообщение>)
Каким образом подбирается значение для <число>? От фонаря или правило какое-то есть?
...
Рейтинг: 0 / 0
Запрет на удаление
    #35065036
Gallagher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ещё правильнее сравнивать не со строкой (которая в случае с именем пользователя должна быть в апперкейсе) а с овнером таблицы имхо
...
Рейтинг: 0 / 0
Запрет на удаление
    #35065045
Фотография Madness
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexiaВопрос в в тему:
Код: plaintext
  raise_application_error(<-число>, <сообщение>)
Каким образом подбирается значение для <число>? От фонаря или правило какое-то есть?А в доку глянуть? Defining Your Own Error Messages
...
Рейтинг: 0 / 0
Запрет на удаление
    #35065055
tru55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexiaВопрос в в тему:
Код: plaintext
  raise_application_error(<-число>, <сообщение>)
Каким образом подбирается значение для <число>? От фонаря или правило какое-то есть?

PL/SQL User’s Guide and Reference


Defining Your Own Error Messages: Procedure RAISE_APPLICATION_ERROR

To call RAISE_APPLICATION_ERROR, use the syntax

raise_application_error(error_number, message[, {TRUE | FALSE}]);

where error_number is a negative integer in the range -20000 .. -20999 and
message is a character string up to 2048 bytes long.
...
Рейтинг: 0 / 0
Запрет на удаление
    #35065066
alexia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Про диапазон я знаю.
Хорошо, вот пример: допустим, выбрал я число -20100. Где гарантия того, что это число уже где-то используется, но для других целей?
...
Рейтинг: 0 / 0
Запрет на удаление
    #35065075
alexia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ошибся немного:
alexia
Хорошо, вот пример: допустим, выбрал я число -20100. Где гарантия того, что это число уже где-то не используется для других целей?
...
Рейтинг: 0 / 0
Запрет на удаление
    #35065085
tru55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexiaПро диапазон я знаю.
Хорошо, вот пример: допустим, выбрал я число -20100. Где гарантия того, что это число уже где-то используется, но для других целей?

Гарантии нет, это вопрос проектирования. Если ошибка выдается наружу и не перехватывается, вопрос числа - десятый. Если ты в своей процедуре (серверной или клиентской) обрабатываешь исключение, ты должен просмотреть все вызываемые процедуры...
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Запрет на удаление
    #39713306
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как запретить для определенной схемы удалять любую таблицу даже если эта таблица находится в этой же схеме?
...
Рейтинг: 0 / 0
Запрет на удаление
    #39713314
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SAS2014Как запретить для определенной схемы удалять любую таблицу даже если эта таблица находится в этой же схеме?
Код: plsql
1.
revoke create session
...
Рейтинг: 0 / 0
Запрет на удаление
    #39713317
Alexander_Ttl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SAS2014, разместить все таблицы в другой схеме и пользоваться синонимами
...
Рейтинг: 0 / 0
Запрет на удаление
    #39713319
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander_TtlSAS2014, разместить все таблицы в другой схеме и пользоваться синонимами
не вариант
...
Рейтинг: 0 / 0
Запрет на удаление
    #39713320
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
база производственная информация привязана к схеме и таблицы
...
Рейтинг: 0 / 0
Запрет на удаление
    #39713321
MirnyiAtom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Создать системный триггер на drop table?
...
Рейтинг: 0 / 0
25 сообщений из 42, страница 1 из 2
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Запрет на удаление
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]