|
|
|
отслеживание удаления
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток. Вопрос по аудиту одной из таблиц БД. Есть программа, с которой работают несколько пользователей. Нужно сделать таблицу, в которой будут храниться удаляемые данные+имя компьютера с которого произошло удаление. Где-то нашёл и пользую триггер такого вида: CREATE TRIGGER DelUpdDocStringD ON [dbo].[DocString] FOR DELETE AS DECLARE @NameUs varchar (50) --эта переменная будет использоваться для получения имени компа create table #sp_who2 (SPID int null, STATUS varchar(1000) null, Login varchar(1000) null, HostName varchar(1000) null, BlkBy varchar(1000) null, DbName varchar(1000) null, Command varchar(1000) null, CPUTime int null, DISKIO int, LasTBatch varchar(1000) null, ProgramName varchar(1000) null, SPID2 int ) insert #sp_who2 exec sp_who2 select @NameUs=HostName from #sp_who2 where status='runnable' INSERT INTO tmpDocStringD (IdDoc, <остальные поля из удаляемой таблицы>, DateUpd, NameUs) SELECT NameVidTov, <остальные поля из удаляемой таблицы>, getdate(), @NameUs from Deleted все данные кроме имени компа заносятся нормально. в поле имени компа заносятся, то пустые значения, то " ." и только иногда реальные названия компов, но не тех, что нужно подскажите как поправить или предложите другой вариант. Заранее благодарен. PS предлогали кусок кода, который отслеживает имя компа, запихнуть в транзакцию, но я в этом ни бум-бум. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2010, 11:23 |
|
||
|
отслеживание удаления
|
|||
|---|---|---|---|
|
#18+
Пользователи работают с базой напрямую ? К-л сервера приложений или терминального режима нет ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2010, 12:16 |
|
||
|
отслеживание удаления
|
|||
|---|---|---|---|
|
#18+
LSVПользователи работают с базой напрямую ? К-л сервера приложений или терминального режима нет ? не совсем понял ваш вопрос (особенно "К-л сервера приложений"), но постараюсь ответить есть сервер, на нём стоит SQL Server 2000, есть база данных. у каждого пользователя есть приложение, которое коннектится к базе и работает с ней. терминального режима нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2010, 15:14 |
|
||
|
отслеживание удаления
|
|||
|---|---|---|---|
|
#18+
Вообще, обычно в логи все таки заносится не имя компа, а логин, под которым пользователи к базе цепляются. Ща скуля под рукой нет, но насколько я помню, в sp_who2 со статусом runnable может далеко не один юзер быть, а все, кто там базу курочит в данный момент. А может у вас DNS чудит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2010, 16:03 |
|
||
|
|

start [/forum/topic.php?fid=32&tid=1542594]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
193ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
41ms |
get tp. blocked users: |
2ms |
| others: | 235ms |
| total: | 518ms |

| 0 / 0 |
