|
|
|
Триггер на вставку id группы id пользователя в таблицу
|
|||
|---|---|---|---|
|
#18+
Добрый вечер, господа! Обращаюсь с такой просьбой, так как не нашел подходящих примеров. Мне нужны два триггера: 1-ый - который каждый раз при добавлении новой записи в таблицу(table1) вставлял бы в поле(id_group) идентификатор группы пользователей ms sql; 2-ой - который каждый раз при добавлении новой записи в таблицу(table1) вставлял бы в поле(id_user) идентификатор пользователя ms sql. При этом, у таблицы (table1) имеются 2 подчиненные таблицы, в которые тоже, наверное, нужно вставлять те же самые данные. Даже не знаю, надо ли делать триггеры на апдейт или хватит только на инсерт? И надо ли в подчиненные таблицы добавлять эти данные(id_group или id_user), если я потом создам вью, в которой собираюсь разграничить доступ? Сам триггеры никогда не писал и вот хочу поэкспериментировать. Заранее благодарен за помощь и содействие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2014, 20:53 |
|
||
|
Триггер на вставку id группы id пользователя в таблицу
|
|||
|---|---|---|---|
|
#18+
eric555Обращаюсь с такой просьбой, так как не нашел подходящих примеров А по-моему такой неудачный дизайн можно найти на каждом углу. На практике знать кто вставил запись - недостаточно. Поэтому лучше сразу вести полный журнал кто, что и когда делал с записью в отдельной таблице. Возможно даже перечислением изменённых полей и/или новыми-старыми данными. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2014, 21:02 |
|
||
|
Триггер на вставку id группы id пользователя в таблицу
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, А мне не отслеживать нужно, дружище, мне нужно разграничить права. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2014, 21:11 |
|
||
|
Триггер на вставку id группы id пользователя в таблицу
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovПоэтому лучше сразу вести полный журнал кто, что и когда делал с записью в отдельной таблице а разве это не делает сама СУБД? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2014, 21:22 |
|
||
|
Триггер на вставку id группы id пользователя в таблицу
|
|||
|---|---|---|---|
|
#18+
kmawа разве это не делает сама СУБД? У неё лог не бесконечный и как раз в MS SQL в нём вроде бы даже не порыться в отличии от Oracle. А вот есть ли у MS SQL Row Level Security из коробки я и не помню. Впрочем, если уж аффтар со своим вопросом полез в раздел проектирования БД... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2014, 21:39 |
|
||
|
Триггер на вставку id группы id пользователя в таблицу
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovА вот есть ли у MS SQL Row Level Security из коробки я и не помню. Впрочем, если уж аффтар со своим вопросом полез в раздел проектирования БД... Есть! Делается посредством разграничения прав через вьюшки. Я и сам не знал, но вник и разобрался. Только вот триггеры написать не могу:( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2014, 21:44 |
|
||
|
Триггер на вставку id группы id пользователя в таблицу
|
|||
|---|---|---|---|
|
#18+
eric555Только вот триггеры написать не могу:( Тут тебе не повезло: у MS SQL нет before-триггеров. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2014, 21:54 |
|
||
|
Триггер на вставку id группы id пользователя в таблицу
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovТут тебе не повезло: у MS SQL нет before-триггеров. Так почему бы не использовать after insert? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2014, 22:20 |
|
||
|
Триггер на вставку id группы id пользователя в таблицу
|
|||
|---|---|---|---|
|
#18+
eric555Так почему бы не использовать after insert? В котором делать update только что вставленных записей? Да, это высокое извращение. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2014, 22:40 |
|
||
|
Триггер на вставку id группы id пользователя в таблицу
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovВ котором делать update только что вставленных записей? Да, это высокое извращение. Ну, я не силен в триггерах, просто помню, что где-то в книге был триггер, который при создании или обновлении записи , вставлял в строку текущую дату! Это я точно помню! Таким же макаром хочу с id-шниками групп и пользователей сделать. Меня сюда перенаправили с форума "Microsoft SQL Server" и именно там посоветовали пойти таким путем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2014, 22:55 |
|
||
|
Триггер на вставку id группы id пользователя в таблицу
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakoveric555Так почему бы не использовать after insert? В котором делать update только что вставленных записей? Да, это высокое извращение. Ой, да ладно! Обычная практика, если вставка делается не только через ХП. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2014, 10:33 |
|
||
|
Триггер на вставку id группы id пользователя в таблицу
|
|||
|---|---|---|---|
|
#18+
eric555Ну, я не силен в триггерах, просто помню, что где-то в книге был триггер, который при создании или обновлении записи , вставлял в строку текущую дату! Это я точно помню! Таким же макаром хочу с id-шниками групп и пользователей сделать. Ну так, чего именно не получается-то? eric555Меня сюда перенаправили с форума "Microsoft SQL Server" и именно там посоветовали пойти таким путем. Подозреваю, сюда вас направили с этими вопросами (хоть бы ссылку на обсуждение привели):eric555При этом, у таблицы (table1) имеются 2 подчиненные таблицы, в которые тоже, наверное, нужно вставлять те же самые данные. Даже не знаю, надо ли делать триггеры на апдейт или хватит только на инсерт? И надо ли в подчиненные таблицы добавлять эти данные(id_group или id_user), если я потом создам вью, в которой собираюсь разграничить доступ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2014, 10:40 |
|
||
|
Триггер на вставку id группы id пользователя в таблицу
|
|||
|---|---|---|---|
|
#18+
eric555, Чтобы вставлять user_id в поле (в том числе в дочерних таблицах) в MSSQL, триггер не нужен - вполне достаточно прописать default-значение для поля. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2014, 11:41 |
|
||
|
Триггер на вставку id группы id пользователя в таблицу
|
|||
|---|---|---|---|
|
#18+
С учетом возможной потери аксесом идентити (см. ссылку внутри кода) sUserNameInsert, dtDateInsert - кто и когда вставил (первый) sUserNameUpdate, dtDateUpdate - кто и когда последний сохранил Код: sql вместо пользователя надо вставлять группу. Либо потом во вью по пользователю получить группу. Во втором случае бонус - для любой записи информация о том, кто вставил, кто последний сохранил сразу можно выгогять на форму аксеса без доп. затрат. Даже имея не полную исторю аудита такие четыря поля по всех формах уже удобно контролировать работу в многопользовательской среде. Во всех прикладных таблицах набор одинаковых полей для аудита вставляется специальной процедурой Делать одинаковые триггры на все пользовтельские таблицы удобно автоматическим генератором. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2014, 11:45 |
|
||
|
Триггер на вставку id группы id пользователя в таблицу
|
|||
|---|---|---|---|
|
#18+
Ну и тереть эту тему лучше в форумах по MS SQL серверу и аксесу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2014, 11:53 |
|
||
|
Триггер на вставку id группы id пользователя в таблицу
|
|||
|---|---|---|---|
|
#18+
baracs Подозреваю, сюда вас направили с этими вопросами (хоть бы ссылку на обсуждение привели):eric555При этом, у таблицы (table1) имеются 2 подчиненные таблицы, в которые тоже, наверное, нужно вставлять те же самые данные. Даже не знаю, надо ли делать триггеры на апдейт или хватит только на инсерт? И надо ли в подчиненные таблицы добавлять эти данные(id_group или id_user), если я потом создам вью, в которой собираюсь разграничить доступ? Нет, в целом по моей проблеме ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2014, 20:32 |
|
||
|
Триггер на вставку id группы id пользователя в таблицу
|
|||
|---|---|---|---|
|
#18+
Кот Матроскинeric555, Чтобы вставлять user_id в поле (в том числе в дочерних таблицах) в MSSQL, триггер не нужен - вполне достаточно прописать default-значение для поля. Вот об этом я, блин, не подумал, черт побери!!! А что лучше, кстати? Триггером или дефаул-значением? И как прописать функцию на дефаулт-ай ди группы/пользователя? Т.е. сами функции нужны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2014, 20:35 |
|
||
|
Триггер на вставку id группы id пользователя в таблицу
|
|||
|---|---|---|---|
|
#18+
П-ЛВо всех прикладных таблицах набор одинаковых полей для аудита вставляется специальной процедурой Делать одинаковые триггры на все пользовтельские таблицы удобно автоматическим генератором. Вот это не понял. Можно подробнее маленько. И, кстати, выше тут написали про дефаулт-значения. Я о них не подумал что-то. Что посоветуете, Вашими триггерами или дефаулт-значениями вставлять данные id группы и id пользователя. В дальнейшем, я каждую таблицу подключу во вьюху и там пропишу в условие отбора, что текущий подключенный пользователь/группа=id пользователя/id группы. Одна вьюха будет обслуживать несколько отделов. Так каждый пользователь отдела будет видеть только свои внесенные строки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2014, 20:42 |
|
||
|
Триггер на вставку id группы id пользователя в таблицу
|
|||
|---|---|---|---|
|
#18+
eric555Кот Матроскинeric555, Чтобы вставлять user_id в поле (в том числе в дочерних таблицах) в MSSQL, триггер не нужен - вполне достаточно прописать default-значение для поля. Вот об этом я, блин, не подумал, черт побери!!! А что лучше, кстати? Триггером или дефаул-значением? И как прописать функцию на дефаулт-ай ди группы/пользователя? Т.е. сами функции нужны. Default-ом лучше, конечно. Функция для пользователя - User_ID(), Что Вы понимаете под группой пользователя - я, честно говоря, не понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2014, 12:34 |
|
||
|
Триггер на вставку id группы id пользователя в таблицу
|
|||
|---|---|---|---|
|
#18+
Кот МатроскинDefault-ом лучше, конечно. MS SQL не позволяет вставить значения отличные от умолчательных? Или что будет если пользователь напишет "insert (user_id) values ('Вася Пупкин')"?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2014, 15:11 |
|
||
|
Триггер на вставку id группы id пользователя в таблицу
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovКот МатроскинDefault-ом лучше, конечно. MS SQL не позволяет вставить значения отличные от умолчательных? Позволяет, конечно Dimitry SibiryakovИли что будет если пользователь напишет "insert (user_id) values ('Вася Пупкин')"?.. Напишет где? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2014, 15:22 |
|
||
|
Триггер на вставку id группы id пользователя в таблицу
|
|||
|---|---|---|---|
|
#18+
Кот МатроскинНапишет где? В любой утилите, позволяющей ему подключиться к БД и выполнить запрос. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2014, 15:25 |
|
||
|
Триггер на вставку id группы id пользователя в таблицу
|
|||
|---|---|---|---|
|
#18+
Кот МатроскинDimitry Sibiryakovпропущено... MS SQL не позволяет вставить значения отличные от умолчательных? Позволяет, конечно ... хотя при очень большом желании можно сделать check constraint, чтобы таки не позволял. Но на мой взгляд, проблема несколько надумана. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2014, 15:29 |
|
||
|
Триггер на вставку id группы id пользователя в таблицу
|
|||
|---|---|---|---|
|
#18+
Кот МатроскинЧто Вы понимаете под группой пользователя - я, честно говоря, не понял. Группа, в которую входят несколько пользователей MS SQL! А точнее ее ID, чтобы во вью ставить фильтр на доступ к строкам, созданных участниками группы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2014, 19:54 |
|
||
|
Триггер на вставку id группы id пользователя в таблицу
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovКот МатроскинDefault-ом лучше, конечно. MS SQL не позволяет вставить значения отличные от умолчательных? Или что будет если пользователь напишет "insert (user_id) values ('Вася Пупкин')"?.. Ничего не выйдет у пользователя, так как на прямую к таблице у него доступа не будет!!! А будет через вью, где этого поля (user_id) видно не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2014, 19:56 |
|
||
|
Триггер на вставку id группы id пользователя в таблицу
|
|||
|---|---|---|---|
|
#18+
eric555Ничего не выйдет у пользователя, так как на прямую к таблице у него доступа не будет!!! А будет через вью, где этого поля (user_id) видно не будет. А, ну тогда тебе в любом случае придётся писать на этот view instead of триггера, а с ними задача становится тривиальной до банальности. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2014, 20:09 |
|
||
|
Триггер на вставку id группы id пользователя в таблицу
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovА, ну тогда тебе в любом случае придётся писать на этот view instead of триггера, а с ними задача становится тривиальной до банальности. А это (view instead of ) зачем? Можете подробнее? Зачем вообще это нужно? Я просто в первый раз решил озадачить себя всем этим... и вот, тренируюсь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2014, 20:26 |
|
||
|
Триггер на вставку id группы id пользователя в таблицу
|
|||
|---|---|---|---|
|
#18+
eric555Я просто в первый раз решил озадачить себя всем этим... и вот, тренируюсь... Ну так потренируйся заодно и в чтении BOL. Сильно пригодится в жизни. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2014, 20:34 |
|
||
|
Триггер на вставку id группы id пользователя в таблицу
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, А разве просто подключить вьюшку к таблице не получится? Есть, конечно, и подчиненные, но можно же к каждой подключить и везде прописать одно условие отбора для каждой группы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2014, 20:44 |
|
||
|
Триггер на вставку id группы id пользователя в таблицу
|
|||
|---|---|---|---|
|
#18+
eric555Dimitry Sibiryakov, А разве просто подключить вьюшку к таблице не получится?. Вьюшку можно просто подключить к таблице - для просмотра. Но как будет происходить вставка в таблицу, если к ней у пользователя нет доступа? Для того чтобы вставлять во View - нужен триггер instead of. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2014, 11:11 |
|
||
|
Триггер на вставку id группы id пользователя в таблицу
|
|||
|---|---|---|---|
|
#18+
Кот Матроскин, Спасибо, вот теперь понятно предназначение этого триггера! Я попрошу, а можете примерчик подкинуть? Вам нужны какие-то данные от меня? Просто мне очень нужен простой пример:) Кстати, во вью данные вставляются, если вью подключено через ODBC в accdb файл, если через adp, то тогда не дает вставлять данные и пишет, что нет прав на инсерт в таблицу:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2014, 15:32 |
|
||
|
Триггер на вставку id группы id пользователя в таблицу
|
|||
|---|---|---|---|
|
#18+
eric555Я попрошу, а можете примерчик подкинуть? Вам нужны какие-то данные от меня? Просто мне очень нужен простой пример:) Внезапно, первая же ссылка в гугле ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2014, 16:09 |
|
||
|
Триггер на вставку id группы id пользователя в таблицу
|
|||
|---|---|---|---|
|
#18+
Кот Матроскин, Да, я видел эту статью, просто не разобрался в этих триггерах, сложно, так как никогда их не писал...:( ладно.. А скажите пожалуйста, делать мне придется только триггер на инсерт? На апдейт и на дэлит разве не нужно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2014, 17:44 |
|
||
|
Триггер на вставку id группы id пользователя в таблицу
|
|||
|---|---|---|---|
|
#18+
eric555Кот Матроскин, Да, я видел эту статью, просто не разобрался в этих триггерах, сложно, так как никогда их не писал...:( ладно.. А скажите пожалуйста, делать мне придется только триггер на инсерт? На апдейт и на дэлит разве не нужно? Если предполагается обновление данных и удаление из таблицы (может не предполагаться) - то да, нужно, конечно. Просто вставка-то в таблицу понадобится в любом случае :) а удаление и обновление - уже it depends. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2014, 13:49 |
|
||
|
Триггер на вставку id группы id пользователя в таблицу
|
|||
|---|---|---|---|
|
#18+
Кот Матроскин, Еще раз спасибо! Если чего, спрошу вашего совета. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2014, 14:29 |
|
||
|
Триггер на вставку id группы id пользователя в таблицу
|
|||
|---|---|---|---|
|
#18+
Кот Матроскин, Дружище, подскажи пожалуйста, почему через .adp файл не получается вставлять данные во вью? Триггер "instead of insert" для вью написал. adp-шник ругается, говорит, что нет разрешения для вставки в основную таблицу. Права на вью все есть. На основную таблицу все права отобрал. Триггер написан правильно. Если через обычный access-вский файлик (через ODBC) подключить вью и через нее вносить данные, то все нормально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2014, 20:31 |
|
||
|
|

start [/forum/topic.php?all=1&fid=32&tid=1540823]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
74ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
81ms |
get tp. blocked users: |
1ms |
| others: | 11ms |
| total: | 205ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...