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

Откуда:
Сообщений: 1389
Скажите пожалуйста, как определить время изменения текста хранимых процедур?
Мой насяльника стал палить когда я и что меняю в процедурах. Как он может это сделать? Хочется понять способы и методы. На таблице нет никаких триггеров, как ещё он может это делать?
20 янв 16, 06:54    [18703908]     Ответить | Цитировать Сообщить модератору
 Re: Контроль за БД  [new]
Sertik
Member

Откуда:
Сообщений: 44
DDL триггер, система управления версиями
20 янв 16, 07:03    [18703914]     Ответить | Цитировать Сообщить модератору
 Re: Контроль за БД  [new]
RMagistr2015
Member

Откуда:
Сообщений: 1389
Sertik
DDL триггер, система управления версиями


Спасибо, читаю, а ещё мысли есть какие-нибудь? Ну может специфические там какие-нибудь...
20 янв 16, 07:40    [18703947]     Ответить | Цитировать Сообщить модератору
 Re: Контроль за БД  [new]
o-o
Guest
в дефолтном трэйсе готовое посмотреть.
но можно и брокер натравить на DDL-события,
будет не хуже DDL-триггера и кто не в курсе дел, не заметит
20 янв 16, 08:21    [18704015]     Ответить | Цитировать Сообщить модератору
 Re: Контроль за БД  [new]
Glory
Member

Откуда:
Сообщений: 104760
RMagistr2015
Мой насяльника стал палить когда я и что меняю в процедурах. Как он может это сделать?

sys.objects
Contains a row for each user-defined, schema-scoped object that is created within a database.


create_date
datetime
Date the object was created.

modify_date
datetime
Date the object was last modified by using an ALTER statement. If the object is a table or a view, modify_date also changes when a clustered index on the table or view is created or altered.
20 янв 16, 09:15    [18704136]     Ответить | Цитировать Сообщить модератору
 Re: Контроль за БД  [new]
o-o
Guest
в sys.objects не пишут, кто именно менял процедуру.
а раз начальник указывает на конкретного товарища, то логин откуда-то знает.
в дефолтном трэйсе как раз original login,
его не обманешь, даже если пакостишь в виде execute as
20 янв 16, 09:27    [18704172]     Ответить | Цитировать Сообщить модератору
 Re: Контроль за БД  [new]
Glory
Member

Откуда:
Сообщений: 104760
o-o
в sys.objects не пишут, кто именно менял процедуру.

Если только RMagistr2015 может менять объекты, то зачем начальнику нужно знаеть еще что-то ?
20 янв 16, 09:32    [18704188]     Ответить | Цитировать Сообщить модератору
 Re: Контроль за БД  [new]
o-o
Guest
не всегда можно быть уверенным в том, кто мог.
у нас раньше все подряд были db_owber-ами.
кое-кто воспользовался и выдал себе control on login::sa в ddl-триггере.
представьте себе, выдалось, ибо ребилдят они по ночам под сисадмином, особо не заморачиваясь.
потом произошла революция и всех овнеров истребили. у персонажа теперь только селект на ту базу. но заодно и control на sa.
execute as login = 'sa' и вперед. но в трэйсе будет виндовый логин.
а внешне все пристойно.
ни лишних тебе админов, ни овнеров, ни явного execute
20 янв 16, 09:52    [18704261]     Ответить | Цитировать Сообщить модератору
 Re: Контроль за БД  [new]
Glory
Member

Откуда:
Сообщений: 104760
o-o
не всегда можно быть уверенным в том, кто мог.
у нас раньше все подряд были db_owber-ами.

А вот еще был случай. В одной деревне...
20 янв 16, 09:56    [18704289]     Ответить | Цитировать Сообщить модератору
 Re: Контроль за БД  [new]
o-o
Guest
а в каждой среднестатистической базе всегда л шь один человек с правами, правда?
особенно когда логины исключительно виндовые группы. одночеловековые
20 янв 16, 10:25    [18704410]     Ответить | Цитировать Сообщить модератору
 Re: Контроль за БД  [new]
Glory
Member

Откуда:
Сообщений: 104760
o-o
а в каждой среднестатистической базе всегда л шь один человек с правами, правда?

О, в дело пошла статистика
Ну давайте, приводите вашу статистику
Где собирали ? сколько собирали ?
20 янв 16, 10:33    [18704438]     Ответить | Цитировать Сообщить модератору
 Re: Контроль за БД  [new]
o-o
Guest
да нет, мне просто смешно над серверами с монопользователями/моноразработчиками.
хотя, удобно, не спорю. сразу ясно, кто сделал,
осталось вспомнить, когда это было, но тут нам придет на помощь sys.objects -- реальная замена аудиту
20 янв 16, 10:51    [18704525]     Ответить | Цитировать Сообщить модератору
 Re: Контроль за БД  [new]
Glory
Member

Откуда:
Сообщений: 104760
o-o
хотя, удобно, не спорю. сразу ясно, кто сделал,

Хосподи. А вы почему решили, что начальник знает, кто это сделал то ?
Может он просто каждого _отдельно_ опрашивает
Вот вы что не сознаетесь, если вам начальник задаст прямой вопрос, а не ты ли изменил вчера в 21:51:13 процедуру SuperBalance
20 янв 16, 10:57    [18704559]     Ответить | Цитировать Сообщить модератору
 Re: Контроль за БД  [new]
Glory
Member

Откуда:
Сообщений: 104760
o-o
осталось вспомнить, когда это было, но тут нам придет на помощь sys.objects -- реальная замена аудиту

Ваша беда в том, что вы в темах подменяете вопрос и ръяно начинаете его обсуждать
20 янв 16, 10:58    [18704563]     Ответить | Цитировать Сообщить модератору
 Re: Контроль за БД  [new]
o-o
Guest
а ваша в том, что последнее слово обязано быть за вами.
дефолтный трэйс кретины наверное придумали,
и ALTER туда пишут тоже по совету идиотов.
жизнь сервера намного проще, чем они все думали,
но только когда это выгодно Глори
20 янв 16, 11:05    [18704624]     Ответить | Цитировать Сообщить модератору
 Re: Контроль за БД  [new]
RMagistr2015
Member

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

У нас 3-и программиста БД, сидят под разными логинами, не виндовыми, т.е. при конекте спрашивает кто такой, мы ему логин и пароль и погнали (все в группе db_owner для этой БД)
А начальник спросил именно меня, при всех, и других не спрашивал, т.е. он точно знал что это я поменял.
20 янв 16, 11:05    [18704626]     Ответить | Цитировать Сообщить модератору
 Re: Контроль за БД  [new]
RMagistr2015
Member

Откуда:
Сообщений: 1389
RMagistr2015
Glory,

У нас 3-и программиста БД, сидят под разными логинами, не виндовыми, т.е. при конекте спрашивает кто такой, мы ему логин и пароль и погнали (все в группе db_owner для этой БД)
А начальник спросил именно меня, при всех, и других не спрашивал, т.е. он точно знал что это я поменял.


Других, т.е. себя и другого парня он не спросил ))))
Есть конечно подозрение, что он воспользовался психологическим приёмом, но вот он назвал точное время...
20 янв 16, 11:08    [18704645]     Ответить | Цитировать Сообщить модератору
 Re: Контроль за БД  [new]
Glory
Member

Откуда:
Сообщений: 104760
RMagistr2015
А начальник спросил именно меня, при всех, и других не спрашивал, т.е. он точно знал что это я поменял.

Наверное потому, что эта ваша процедура ?
Или у вас все 3 программиста ну просто абсолютно весь код все базы знают ?
20 янв 16, 11:08    [18704650]     Ответить | Цитировать Сообщить модератору
 Re: Контроль за БД  [new]
RMagistr2015
Member

Откуда:
Сообщений: 1389
Glory
RMagistr2015
А начальник спросил именно меня, при всех, и других не спрашивал, т.е. он точно знал что это я поменял.

Наверное потому, что эта ваша процедура ?
Или у вас все 3 программиста ну просто абсолютно весь код все базы знают ?


Нет конечно, но эта процедура была написана ещё до появления всех нас троих, я там пробелы поставил и сделал alter.
Начальник не знал что именно я изменил.

Я пока читаю про те способы которые народ предложил выше, но может есть ещё способы, в которых можно будет найти ещё и различия в тексте?
Ну какие-нибудь не слишком прозрачные способы?
20 янв 16, 11:12    [18704681]     Ответить | Цитировать Сообщить модератору
 Re: Контроль за БД  [new]
Glory
Member

Откуда:
Сообщений: 104760
RMagistr2015
Нет конечно, но эта процедура была написана ещё до появления всех нас троих, я там пробелы поставил и сделал alter.
Начальник не знал что именно я изменил.

Вас 3ое, включая начальника
Начальник этого не делал, иначе зачем ему задавать такой вопрос.
Остаетесь вы и 2ой программист.
Может он просто начал с вас

RMagistr2015
Я пока читаю про те способы которые народ предложил выше, но может есть ещё способы, в которых можно будет найти ещё и различия в тексте?

Для того, чтобы найти различия двух текстов, нужно как минимум иметь эти два текста. А не один, который сейчас в базе.
20 янв 16, 11:16    [18704705]     Ответить | Цитировать Сообщить модератору
 Re: Контроль за БД  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
RMagistr2015
Начальник не знал что именно я изменил.


Ему это и не нужно знать... даже когда Вы делаете ALTER ничего при этом не меняя - это отражается в метаданных.

IF OBJECT_ID('dbo.test') IS NOT NULL
    DROP PROCEDURE dbo.test
GO

CREATE PROCEDURE dbo.test
AS 
GO

SELECT create_date, modify_date
FROM sys.objects
WHERE [object_id] = OBJECT_ID('dbo.test')
GO

ALTER PROCEDURE dbo.test
AS 
GO

SELECT create_date, modify_date
FROM sys.objects
WHERE [object_id] = OBJECT_ID('dbo.test')
20 янв 16, 11:18    [18704729]     Ответить | Цитировать Сообщить модератору
 Re: Контроль за БД  [new]
RMagistr2015
Member

Откуда:
Сообщений: 1389
Glory
RMagistr2015
Нет конечно, но эта процедура была написана ещё до появления всех нас троих, я там пробелы поставил и сделал alter.
Начальник не знал что именно я изменил.

Вас 3ое, включая начальника
Начальник этого не делал, иначе зачем ему задавать такой вопрос.
Остаетесь вы и 2ой программист.
Может он просто начал с вас

RMagistr2015
Я пока читаю про те способы которые народ предложил выше, но может есть ещё способы, в которых можно будет найти ещё и различия в тексте?

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


Нет, он прям мне сказал, при втором парне, он точно знал
Про наличие текста, я подумал, и в мою голову пришёл вариант, что это можно было бы сделать с помощью тригера, но тригеры на системной таблице я как таковой не нашёл, и вьюшек к этой таблице соответственно, поэтому и поинтересовался, есть ли ещё какие-нибудь хитрые способы, кто их пробовал ну и... совет спросил в общем...
20 янв 16, 11:19    [18704735]     Ответить | Цитировать Сообщить модератору
 Re: Контроль за БД  [new]
RMagistr2015
Member

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

Я запустил ему профайлер на всякий пожарный, что бы понять что он там смотрит
20 янв 16, 11:21    [18704749]     Ответить | Цитировать Сообщить модератору
 Re: Контроль за БД  [new]
Glory
Member

Откуда:
Сообщений: 104760
RMagistr2015
Нет, он прям мне сказал, при втором парне, он точно знал

Вы сейчас пытаетесь установить источник информации своего начальника по суровости его взгляда и использованию щипящих в его предложениях

RMagistr2015
но тригеры на системной таблице я как таковой не нашёл

Мда. На какой еще системной таблице ?
DDL триггера не на системных таблицах - они на базе/сервере
20 янв 16, 11:23    [18704759]     Ответить | Цитировать Сообщить модератору
 Re: Контроль за БД  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
SELECT t.StartTime, t.LoginName
FROM (
    SELECT val = CAST(f.[value] AS NVARCHAR(MAX))
    FROM sys.fn_trace_getinfo(NULL) f
    WHERE f.property = 2
) r
CROSS APPLY sys.fn_trace_gettable(r.val, DEFAULT) t
JOIN sys.trace_events e ON t.EventClass = e.trace_event_id
WHERE e.name = 'Object:Altered'
    AND t.ObjectID = OBJECT_ID('dbo.test')
20 янв 16, 11:23    [18704761]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить