Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 как узнать сколько триггеров в БД?  [new]
NewIvanovec
Member

Откуда: Msk
Сообщений: 582
Добрый день.

1) Как узнать сколько триггеров в БД?

2) Написал триггер для таблицы, но выдается ошибка в клиентской программе (сторонней) ошибка

USE [ibank2]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Description: <Фиксируем вход "зараженных" юзеров Ibank2>
-- =============================================
ALTER TRIGGER [ibank2].[Tr_audit_virus] ON [ibank2].[ibank2].[login_time]
AFTER Insert
AS
BEGIN
--select 1
exec xp_cmdshell 'NET SEND 192.168.0.88 В Ibank2 зашёл подозрительный пользователь! '


END

К сообщению приложен файл. Размер - 8Kb
10 фев 12, 16:38    [12070869]     Ответить | Цитировать Сообщить модератору
 Re: как узнать сколько триггеров в БД?  [new]
aleks2
Guest
1. Выполнил ли ты, страдалец,
exec xp_cmdshell 'NET SEND 192.168.0.88 В Ibank2 зашёл подозрительный пользователь! '

?

2. Узрел ли ты, страдалец, что эта конструкция возвращает рекордсет?


3. Многие клиенты приходят от этого в изумление.
10 фев 12, 16:47    [12070951]     Ответить | Цитировать Сообщить модератору
 Re: как узнать сколько триггеров в БД?  [new]
NewIvanovec
Member

Откуда: Msk
Сообщений: 582
А если триггер такого вида, то ошибка остаётся тоже.

IF (SELECT client_id FROM INSERTED) = 22
      BEGIN
         INSERT INTO [ubs].[svn].[login_time] ([client_id],
                                               [key_id],
                                               [channel],
                                               [act_time],
                                               [address],
                                               [auth_result],
                                               [credential_type],
                                               [credential_id],
                                               [crypto_type],
                                               [java_version],
                                               [java_vendor],
                                               [hw_info_users_id],
                                               [failure_reason])
            SELECT [client_id],
                   [key_id],
                   [channel],
                   [act_time],
                   [address],
                   [auth_result],
                   [credential_type],
                   [credential_id],
                   [crypto_type],
                   [java_version],
                   [java_vendor],
                   [hw_info_users_id],
                   [failure_reason]
              FROM inserted
      END
10 фев 12, 16:50    [12070984]     Ответить | Цитировать Сообщить модератору
 Re: как узнать сколько триггеров в БД?  [new]
aleks2
Guest
Выполните вставку в таблицу, вызывающую срабатывание триггера, из SSMS.
10 фев 12, 16:53    [12071007]     Ответить | Цитировать Сообщить модератору
 Re: как узнать сколько триггеров в БД?  [new]
NewIvanovec
Member

Откуда: Msk
Сообщений: 582
Всё успешно работает вместе с netsend-ом
10 фев 12, 17:07    [12071126]     Ответить | Цитировать Сообщить модератору
 Re: как узнать сколько триггеров в БД?  [new]
SanyL
Member

Откуда: Москва
Сообщений: 4540
NewIvanovec
Добрый день.

1) Как узнать сколько триггеров в БД?



посмотрите по табличке sys.sysobjects в вашей БД...
10 фев 12, 17:13    [12071172]     Ответить | Цитировать Сообщить модератору
 Re: как узнать сколько триггеров в БД?  [new]
aleks2
Guest
NewIvanovec
Всё успешно работает вместе с netsend-ом

Значит в
[ubs].[svn].[login_time]
есть поле IDENTITY и оно PRIMARY KEY.
10 фев 12, 17:16    [12071197]     Ответить | Цитировать Сообщить модератору
 Re: как узнать сколько триггеров в БД?  [new]
NewIvanovec
Member

Откуда: Msk
Сообщений: 582
aleks2
NewIvanovec
Всё успешно работает вместе с netsend-ом

Значит в
[ubs].[svn].[login_time]
есть поле IDENTITY и оно PRIMARY KEY.


Вот скрипт. Подскажи пожалуйста, где здесь IDENTITY и оно PRIMARY KEY!
USE [UBS]
GO
/****** Объект:  Table [svn].[login_time]    Дата сценария: 02/10/2012 17:28:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [svn].[login_time](
	[client_id] [numeric](20, 0) NOT NULL,
	[key_id] [numeric](20, 0) NULL,
	[channel] [numeric](1, 0) NOT NULL,
	[act_time] [datetime] NOT NULL,
	[address] [varchar](255) NULL,
	[auth_result] [numeric](1, 0) NULL,
	[credential_type] [numeric](1, 0) NULL,
	[credential_id] [numeric](20, 0) NULL,
	[crypto_type] [varchar](20) NULL,
	[java_version] [varchar](20) NULL,
	[java_vendor] [varchar](50) NULL,
	[hw_info_users_id] [numeric](10, 0) NULL,
	[failure_reason] [numeric](1, 0) NULL
) ON [PRIMARY]

GO
SET ANSI_PADDING OFF
10 фев 12, 17:22    [12071246]     Ответить | Цитировать Сообщить модератору
 Re: как узнать сколько триггеров в БД?  [new]
NewIvanovec
Member

Откуда: Msk
Сообщений: 582
SanyL,
Спасибо, помогло.
10 фев 12, 17:24    [12071277]     Ответить | Цитировать Сообщить модератору
 Re: как узнать сколько триггеров в БД?  [new]
SanyL
Member

Откуда: Москва
Сообщений: 4540
незачто
10 фев 12, 17:30    [12071332]     Ответить | Цитировать Сообщить модератору
 Re: как узнать сколько триггеров в БД?  [new]
NewIvanovec
Member

Откуда: Msk
Сообщений: 582
Я думаю триггер не работает т.к. не хватает прав.

Как узнать какие права нужно дать...
10 фев 12, 17:38    [12071406]     Ответить | Цитировать Сообщить модератору
 Re: как узнать сколько триггеров в БД?  [new]
SanyL
Member

Откуда: Москва
Сообщений: 4540
NewIvanovec
Я думаю триггер не работает т.к. не хватает прав.

Как узнать какие права нужно дать...


не хватает прав у кого? у триггера? или ктото залогинился у кого нет прав на логин?
10 фев 12, 17:50    [12071511]     Ответить | Цитировать Сообщить модератору
 Re: как узнать сколько триггеров в БД?  [new]
NewIvanovec
Member

Откуда: Msk
Сообщений: 582
SanyL,

у того, кто залогинился
10 фев 12, 17:54    [12071533]     Ответить | Цитировать Сообщить модератору
 Re: как узнать сколько триггеров в БД?  [new]
SanyL
Member

Откуда: Москва
Сообщений: 4540
NewIvanovec
SanyL,

у того, кто залогинился


не хватает прав на что?
10 фев 12, 17:59    [12071581]     Ответить | Цитировать Сообщить модератору
 Re: как узнать сколько триггеров в БД?  [new]
NewIvanovec
Member

Откуда: Msk
Сообщений: 582
SanyL,

Есть роль в БД ibank2.
Этой роли я дал права как на картинке.
При логине пользователя выдаётся та же ошибка.
Триггер выключен!!!!!

Опишу предметную область: в эту табличку записывается информация о том, что кто-то
из пользователей системы инфицирован.
Для того чтобы знать потенциальные угрозы надо, чтобы сработал триггер.

Почему ошибка такая не понимаю...в правах тут дело или в логике программы...

К сообщению приложен файл. Размер - 35Kb
10 фев 12, 18:08    [12071642]     Ответить | Цитировать Сообщить модератору
 Re: как узнать сколько триггеров в БД?  [new]
NewIvanovec
Member

Откуда: Msk
Сообщений: 582
Изменил триггер: теперь данные добавляются в эту же БД и схему.
Но netsend не работает. Та же ошибка выдаётся.
10 фев 12, 18:25    [12071740]     Ответить | Цитировать Сообщить модератору
 Re: как узнать сколько триггеров в БД?  [new]
Glory
Member

Откуда:
Сообщений: 104751
NewIvanovec
Но netsend не работает. Та же ошибка выдаётся.

Вообще то это ошибка вашего приложения.
10 фев 12, 19:02    [12071898]     Ответить | Цитировать Сообщить модератору
 Re: как узнать сколько триггеров в БД?  [new]
iljy
Member

Откуда:
Сообщений: 8711
NewIvanovec,

вам давно сказали, где искать проблему. Добавьте параметр NO_OUTPUT к вызову xp_cmdshell
10 фев 12, 19:09    [12071934]     Ответить | Цитировать Сообщить модератору
 Re: как узнать сколько триггеров в БД?  [new]
NewIvanovec
Member

Откуда: Msk
Сообщений: 582
Glory,
Приложение работает под пользователем ibank.
Из Managment Studio я работаю под SA.
Какие права мне нужно дать ibank, чтобы он мог слать netsend?
10 фев 12, 19:10    [12071944]     Ответить | Цитировать Сообщить модератору
 Re: как узнать сколько триггеров в БД?  [new]
NewIvanovec
Member

Откуда: Msk
Сообщений: 582
iljy,

Спасибо, что напомнили.
Я сейчас добавил, но не помогло.
10 фев 12, 19:12    [12071950]     Ответить | Цитировать Сообщить модератору
 Re: как узнать сколько триггеров в БД?  [new]
Glory
Member

Откуда:
Сообщений: 104751
NewIvanovec
Приложение работает под пользователем ibank.
Из Managment Studio я работаю под SA.
Какие права мне нужно дать ibank, чтобы он мог слать netsend?

Дело не в правах
Вы сообщение своего приложения читали вообще ?
10 фев 12, 19:15    [12071966]     Ответить | Цитировать Сообщить модератору
 Re: как узнать сколько триггеров в БД?  [new]
NewIvanovec
Member

Откуда: Msk
Сообщений: 582
Glory
NewIvanovec
Приложение работает под пользователем ibank.
Из Managment Studio я работаю под SA.
Какие права мне нужно дать ibank, чтобы он мог слать netsend?

Дело не в правах
Вы сообщение своего приложения читали вообще ?


Мне это сообщение не помогло решить проблему.
Видимо, Вам сообщение что-то большее говорит.

Для ясности скажу, это стороннее приложение, доступ к коду я не имею. Доступ к БД - да.
10 фев 12, 19:22    [12071992]     Ответить | Цитировать Сообщить модератору
 Re: как узнать сколько триггеров в БД?  [new]
Glory
Member

Откуда:
Сообщений: 104751
NewIvanovec
Видимо, Вам сообщение что-то большее говорит.

Если вы найдете все же время прочитать сообщение, то увидите, что там ни слова ни о запросе, ни о правах
А только о том, что какой то метод приложения не найден.
10 фев 12, 21:43    [12072543]     Ответить | Цитировать Сообщить модератору
 Re: как узнать сколько триггеров в БД?  [new]
NewIvanovec
Member

Откуда: Msk
Сообщений: 582
Glory
NewIvanovec
Видимо, Вам сообщение что-то большее говорит.

Если вы найдете все же время прочитать сообщение, то увидите, что там ни слова ни о запросе, ни о правах
А только о том, что какой то метод приложения не найден.


Пусть права, запрос не причём.

Мне нужно послать netsend.
На данный момент триггер записывает строчку в другую табличку. Эту табличку я создал сам.
Табличка в базе данных, которую создавал не я.
Если на свою табличку я вешаю триггер с netsend-ом, то он тоже выдаёт ту же ошибку.
Таким образом, в обеих таблицах триггер, в котором есть netsend, выдаёт ошибку.

Если триггер, netsend вызываю из managment studio, то всё работает без проблем.

Где может быть проблема, которая мешает выполниться netsend-у?!
10 фев 12, 22:53    [12072839]     Ответить | Цитировать Сообщить модератору
 Re: как узнать сколько триггеров в БД?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31965
NewIvanovec
Где может быть проблема, которая мешает выполниться netsend-у?!
Покажите триггер-то, со всеми изменениями.

И что значит "мешает выполниться netsend-у"? Сообщение не посылается, что ли, или всё таки программа не работает? Вы факты точно излагайте, а не передавайте ощущения.
10 фев 12, 23:12    [12072916]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить