Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / ADP, MS SQL и все такое / 15 сообщений из 15, страница 1 из 1
22.06.2004, 08:58:27
    #32570766
Dr. I M P
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADP, MS SQL и все такое
Есть MS SQL сервер, пользователь (доменный) подключается к нему через ADP, на таблицу (например Table1) у него есть все права доступа (Select, Update и т.д.) - этот пользователь номально работает с ней, добавляет, изменяет, удаляет. Рядом такая же таблица (пусть будет Table2), с такими же правами для этого пльзователя и глюк такой: открывает он ее, видит что в ней, редактирует какое-нибудь поле в строке, переходит на другое поле в этой же строке - все нормально, а как только переходит на другую строку, то данные, которые он изменил, возвращаются в исходное значение. Т.е. не вылазит никаких сообщений, что типа нельзя изменять и т.п. (в других таблицах, если нельзя и попробовать изменить, появляется сообщение про "нельзя" :) )
Что делать и где копать?
...
Рейтинг: 0 / 0
22.06.2004, 09:18:08
    #32570802
paparome
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADP, MS SQL и все такое
Хм.
Триггеры на табле 2 есть?
...
Рейтинг: 0 / 0
22.06.2004, 10:21:37
    #32570950
Dr. I M P
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADP, MS SQL и все такое
paparomeХм.
Триггеры на табле 2 есть?

Есть (БД не я делал, поэтому не знаю зачем они там).

ALTER TRIGGER T_Del
ON dbo.Table1
FOR DELETE
AS
declare @@result int
set @@result = 1
if exists(select * from deleted where datediff(day, Дата, getdate()) > 7)
set @@result = 0
if @@result = 0 and current_user <> 'dbo'
begin
print 'Удаление запрещено!'
rollback transaction
end

ALTER TRIGGER T_Ins
ON dbo.Table1
FOR insert
AS
declare @@result int
set @@result = 1
if exists(select * from inserted where datediff(day, Дата, getdate()) > 7)
set @@result = 0
if @@result = 0 and current_user <> 'dbo'
begin
print 'Добавление запрещено!'
rollback transaction
end

ALTER TRIGGER T_Upd
ON dbo.Table1
FOR UPDATE
AS
declare @@result int
set @@result = 1
if (exists(select * from deleted where datediff(day, Дата, getdate()) > 7)) or (exists(select * from inserted where datediff(day, Дата, getdate()) > 7))
set @@result = 0
if @@result = 0 and current_user <> 'dbo'
begin
print 'Изменение запрещено!'
rollback transaction
end

Но сообщений никаких не показываетсЯ, когда пользователь добавляет или удаляет.
...
Рейтинг: 0 / 0
22.06.2004, 10:26:14
    #32570970
ищ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADP, MS SQL и все такое
вместо print
исп. raiserror('Дата не должна быть меньше последней даты архивации.',16,1)
...
Рейтинг: 0 / 0
22.06.2004, 10:36:07
    #32571004
paparome
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADP, MS SQL и все такое
И после AS во всех триггерах поставь
SET NOCOUNT ON
...
Рейтинг: 0 / 0
22.06.2004, 11:13:17
    #32571098
Dr. I M P
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADP, MS SQL и все такое
paparomeИ после AS во всех триггерах поставь
SET NOCOUNT ON

Поставил SET NOCOUNT ON - не помогает.
Заменил Print на raiserror - начало появляться сообщение что нельзя писать:)

Но....

Увидал одну фишку, которая, как я понимаю, сводит на нет все предыдущие старания:)
Пользователь не может редактировать данные только до 16.06.04, т.е. все, что было добавлено в таблицу позже - редактируется как угодно.
...
Рейтинг: 0 / 0
22.06.2004, 11:19:45
    #32571132
paparome
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADP, MS SQL и все такое
авторУвидал одну фишку, которая, как я понимаю, сводит на нет все предыдущие старания:)
Пользователь не может редактировать данные только до 16.06.04, т.е. все, что было добавлено в таблицу позже - редактируется как угодно.

Судя по триггерам, обычному пользователю разрешено править записи в пределах одной недели (сегодня это [дата]>16.06.2004)

+ Я что-то не понял, вы у нас хотите узнать, зачем в вашей таблице такие триггеры?
...
Рейтинг: 0 / 0
22.06.2004, 11:26:07
    #32571155
Dr. I M P
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADP, MS SQL и все такое
paparome
Судя по триггерам, обычному пользователю разрешено править записи в пределах одной недели (сегодня это [дата]>16.06.2004)

+ Я что-то не понял, вы у нас хотите узнать, зачем в вашей таблице такие триггеры?

:)
Нет, это не моя таблица :)
Не я ее писал и в подобных делах я еще плохо разбираюсь.
Значт триггер дает доступ только к определенным дням? Правильно? Т.е. его надо просто удалить?
...
Рейтинг: 0 / 0
22.06.2004, 11:45:40
    #32571213
ищ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADP, MS SQL и все такое
мне страшно
...
Рейтинг: 0 / 0
22.06.2004, 11:58:37
    #32571254
paparome
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADP, MS SQL и все такое
авторЗначт триггер дает доступ только к определенным дням? Правильно? Т.е. его надо просто удалить?

Эти 3 тириггера "дают доступ" к "определенным" дням (минус неделя от текущего момента) для не привелигированных пользователей (Админ могет все править - что тоже видно в триггере)

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

А если вы их удалите, тогда все будет и добавляться и удаляться без всяких проблем - если вам это надо, тогда удаляейте (но я этого не советовал!!!)
...
Рейтинг: 0 / 0
22.06.2004, 12:03:45
    #32571277
Шайтан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADP, MS SQL и все такое
АХТУНГ!!!

мне ещё страшнее ища

Шайтан
...
Рейтинг: 0 / 0
22.06.2004, 12:23:35
    #32571357
Dr. I M P
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADP, MS SQL и все такое
paparome
Эти 3 тириггера "дают доступ" к "определенным" дням (минус неделя от текущего момента) для не привелигированных пользователей (Админ могет все править - что тоже видно в триггере)

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

А если вы их удалите, тогда все будет и добавляться и удаляться без всяких проблем - если вам это надо, тогда удаляейте (но я этого не советовал!!!)

Большое спасибо!
Чуть позже я попробую.
А на счет обратиться к заазчику или разработчику - у нас шеф где-то по блату достал эту базу, заставил меня всю ее излазить, раздать пользователям и самое, что интересное - разработчиков давно уже в живых, по моему, нет. Т.е. никто не знае откуда эта база :)
Вот такие пироги:(
...
Рейтинг: 0 / 0
22.06.2004, 16:22:18
    #32572091
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADP, MS SQL и все такое
с такими знаниями просто нельзя пытаться что либо менять.

подучись даля начала а потом кромсай.
очень напоминает когда с ломиком в часики


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

нужно выяснить алгоритм работы программы - кто создает триггер и зачем а не крушить ее...
...
Рейтинг: 0 / 0
22.06.2004, 16:30:06
    #32572125
paparome
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADP, MS SQL и все такое
2 АлексейК

Я тоже так думаю (о чем и говорил), но товарищ/господин (не нужное зачеркнуть), решил что надо покромсать, ибо спросить не у кого - разработчики "вне зоны действия сети" :)
...
Рейтинг: 0 / 0
22.06.2004, 17:29:46
    #32572315
Шайтан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADP, MS SQL и все такое
paparome2 АлексейК

Я тоже так думаю (о чем и говорил), но товарищ/господин (не нужное зачеркнуть), решил что надо покромсать, ибо спросить не у кого - разработчики "вне зоны действия сети" :)

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

Шайтан
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / ADP, MS SQL и все такое / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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