|
|
|
Триггер на вставку 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 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=38644647&tid=1540823]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 243ms |
| total: | 376ms |

| 0 / 0 |

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