Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Синхронизация времени в MSSQL через интернет  [new]
Игорь888
Guest
Доброе утро.

Если админ или ещё кто меняет время на компьютере, где установлен MSSQL, та же функция GETDATE() возвращает время самого компьютера. Есть ли возможность время получать из интернета, средствами самого MSSQL?
29 сен 15, 07:55    [18207778]     Ответить | Цитировать Сообщить модератору
 Re: Синхронизация времени в MSSQL через интернет  [new]
Jaffar
Member

Откуда:
Сообщений: 633
Игорь888,

Я уж точно не помню, но делается это средствами обычного запроса данных через инет.
есть какая-то процедура - не помню как называется - она может обращаться по заданному адресу и возвращает то что ей вернул сайт. - дальше можно распарсить эту страницу и найти время.
29 сен 15, 08:00    [18207785]     Ответить | Цитировать Сообщить модератору
 Re: Синхронизация времени в MSSQL через интернет  [new]
Glory
Member

Откуда:
Сообщений: 104751
Игорь888
Есть ли возможность время получать из интернета, средствами самого MSSQL?

Если под "встроенными средствами" вы понимате документированную встроенную функцию, то такой возможности нет
Если под "встроенными средствами" вы понимате возможность написать такую функцию самому, то такая возможность еть
29 сен 15, 08:05    [18207793]     Ответить | Цитировать Сообщить модератору
 Re: Синхронизация времени в MSSQL через интернет  [new]
Игорь888
Guest
Glory,

Подозревал, что есть встроенная функция в самом MSSQL.

Если кто-то делал что-то антологичное поделитесь опытом, ссылкой на топик или скриптом, буду очень благодарен.
29 сен 15, 08:35    [18207835]     Ответить | Цитировать Сообщить модератору
 Re: Синхронизация времени в MSSQL через интернет  [new]
Glory
Member

Откуда:
Сообщений: 104751
Игорь888
Подозревал, что есть встроенная функция в самом MSSQL.

Для чего бы серверу баз данных отвечать за машинное время оборудования, на котором он установлен ?


Игорь888
Если кто-то делал что-то антологичное поделитесь опытом, ссылкой на топик или скриптом, буду очень благодарен.

В Гугле забанили ?
29 сен 15, 08:40    [18207843]     Ответить | Цитировать Сообщить модератору
 Re: Синхронизация времени в MSSQL через интернет  [new]
sphinx_mv
Member [заблокирован]

Откуда:
Сообщений: 1672
Игорь888
Доброе утро.

Если админ или ещё кто меняет время на компьютере, где установлен MSSQL, та же функция GETDATE() возвращает время самого компьютера. Есть ли возможность время получать из интернета, средствами самого MSSQL?
Из интернета время никто не берет - с ним время (периодически) синхронизируют.
Настройте службу времени - и будет Вам счастье.
29 сен 15, 09:22    [18207970]     Ответить | Цитировать Сообщить модератору
 Re: Синхронизация времени в MSSQL через интернет  [new]
Служба вресени
Guest
sphinx_mv
Игорь888
Доброе утро.

Если админ или ещё кто меняет время на компьютере, где установлен MSSQL, та же функция GETDATE() возвращает время самого компьютера. Есть ли возможность время получать из интернета, средствами самого MSSQL?
Из интернета время никто не берет - с ним время (периодически) синхронизируют.
Настройте службу времени - и будет Вам счастье.
х-хе )))
ТС "супер-пупер защиту" делает для демо-режима, а Вы - "Настройте службу времени" :)
29 сен 15, 09:47    [18208060]     Ответить | Цитировать Сообщить модератору
 Re: Синхронизация времени в MSSQL через интернет  [new]
Glory
Member

Откуда:
Сообщений: 104751
Служба вресени
ТС "супер-пупер защиту" делает для демо-режима

Evaluation period что ли вычисляет ?
29 сен 15, 09:49    [18208066]     Ответить | Цитировать Сообщить модератору
 Re: Синхронизация времени в MSSQL через интернет  [new]
Игорь888
Guest
Служба вресени
sphinx_mv
пропущено...
Из интернета время никто не берет - с ним время (периодически) синхронизируют.
Настройте службу времени - и будет Вам счастье.
х-хе )))
ТС "супер-пупер защиту" делает для демо-режима, а Вы - "Настройте службу времени" :)


Вы почти угадали)))
Нужно передать продукт, но т.к. за него не расплатились, нужно ввести ограничение по времени. Ищу варианты
29 сен 15, 10:20    [18208194]     Ответить | Цитировать Сообщить модератору
 Re: Синхронизация времени в MSSQL через интернет  [new]
Glory
Member

Откуда:
Сообщений: 104751
Игорь888
Нужно передать продукт, но т.к. за него не расплатились, нужно ввести ограничение по времени. Ищу варианты

Т.е. на машину, у которой нет(ограничен) доступ в интернет, ваш продукт просто не будет устанавливаться ?
29 сен 15, 10:24    [18208214]     Ответить | Цитировать Сообщить модератору
 Re: Синхронизация времени в MSSQL через интернет  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31962
Игорь888
Нужно передать продукт, но т.к. за него не расплатились, нужно ввести ограничение по времени. Ищу варианты
Тогда нужно выносить часть функциональности в CLR код, и там же делать проверку времени. Хоть какая то защита. Иначе найдут и вычистят.
29 сен 15, 10:24    [18208215]     Ответить | Цитировать Сообщить модератору
 Re: Синхронизация времени в MSSQL через интернет  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31962
Glory
Игорь888
Нужно передать продукт, но т.к. за него не расплатились, нужно ввести ограничение по времени. Ищу варианты

Т.е. на машину, у которой нет(ограничен) доступ в интернет, ваш продукт просто не будет устанавливаться ?
А что, для демо - вполне нормальное решение.
Устанавливаться без интернета должен, но работать не должен. Или должен работать неправильно, чуть-чуть и иногда пусть искажает данные. А то слишком легко найти защиту, если просто "не работает".
29 сен 15, 10:27    [18208229]     Ответить | Цитировать Сообщить модератору
 Re: Синхронизация времени в MSSQL через интернет  [new]
Glory
Member

Откуда:
Сообщений: 104751
alexeyvg
Устанавливаться без интернета должен, но работать не должен. Или должен работать неправильно, чуть-чуть и иногда пусть искажает данные. А то слишком легко найти защиту, если просто "не работает".

Если я захочу украсть программу, то мне кажется, что я довольно легко отключу такую проверку от внешнего источника. Например, просто перенаправив запрос на нужный сервер
29 сен 15, 10:32    [18208256]     Ответить | Цитировать Сообщить модератору
 Re: Синхронизация времени в MSSQL через интернет  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31962
Glory
alexeyvg
Устанавливаться без интернета должен, но работать не должен. Или должен работать неправильно, чуть-чуть и иногда пусть искажает данные. А то слишком легко найти защиту, если просто "не работает".

Если я захочу украсть программу, то мне кажется, что я довольно легко отключу такую проверку от внешнего источника. Например, просто перенаправив запрос на нужный сервер
Понятно, любую защиту можно обойти - но с разной трудоёмкостью. Нужно же как минимум знать, что приложение делает запросы, знать, зачем они, что они должны возвращать, и в каком формате.
Вот поэтому я и пишу - делать на CLR, + делать не отключение программы, а некие искажения результатов. + делать случайные отсроченные срабатывания. Типа функция чтения накладной с вероятностью 5% лезет на сервер, проверяет дату, и устанавливает в заголовке программы уведомление о конце лицензии, + искажает выводимый результат.
29 сен 15, 11:10    [18208442]     Ответить | Цитировать Сообщить модератору
 Re: Синхронизация времени в MSSQL через интернет  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
alexeyvg
Glory
пропущено...

Т.е. на машину, у которой нет(ограничен) доступ в интернет, ваш продукт просто не будет устанавливаться ?
А что, для демо - вполне нормальное решение.
Устанавливаться без интернета должен, но работать не должен. Или должен работать неправильно, чуть-чуть и иногда пусть искажает данные. А то слишком легко найти защиту, если просто "не работает".


А потом какие-то менеджеры уволятся, уйдут в запой из-за таких результатов
29 сен 15, 11:27    [18208532]     Ответить | Цитировать Сообщить модератору
 Re: Синхронизация времени в MSSQL через интернет  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Не в курсе, как вы отдаете базу злым юзерам, но может использовать сертификаты с датой?
29 сен 15, 11:33    [18208569]     Ответить | Цитировать Сообщить модератору
 Re: Синхронизация времени в MSSQL через интернет  [new]
igor888
Guest
Winnipuh,

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



не совсем понял про сертификаты с датой... это что?
29 сен 15, 12:24    [18208892]     Ответить | Цитировать Сообщить модератору
 Re: Синхронизация времени в MSSQL через интернет  [new]
Служба,
Guest
igor888,

можно как-то через xp_cmdshell и telnet time.nist.gov 13


или так
	declare @xmlQuery as Int; 
	declare @hr int
	declare @Url as Varchar(MAX);
	declare @t varchar(100)
	declare @src varchar(255), @desc varchar(255);
	declare @TrueDT datetime
	--
	set nocount on
	--
	set @Url = 'http://www.direct-time.ru/track.php?id=time_utc'
	--	
	exec @hr=sp_OACreate 'MSXML2.XMLHTTP', @xmlQuery out;				if @hr <> 0 goto ErrorHandler
	exec @hr=sp_OAMethod @xmlQuery, 'open', NULL, 'get', @Url, 'false'; if @hr <> 0 goto ErrorHandler 
	exec @hr=sp_OAMethod @xmlQuery, 'send';								if @hr <> 0 goto ErrorHandler  

	exec sp_OAMethod @xmlQuery, 'responseText', @t out;					if @hr <> 0 goto ErrorHandler  


--	print @t

	set @TrueDT = dateadd(s, cast(@t as bigint)/1000, '19700101')

	print @TrueDT


	goto ExitProc

ErrorHandler:
	exec sp_OAGetErrorInfo @xmlQuery, @src out, @desc out 
	raiserror('Error Creating COM Component 0x%x, %s, %s',16,1, @hr, @src, @desc)

ExitProc:
	exec sp_OADestroy @xmlQuery;
--	return @hr

Sep 29 2015 11:30AM
29 сен 15, 14:30    [18209668]     Ответить | Цитировать Сообщить модератору
 Re: Синхронизация времени в MSSQL через интернет  [new]
Serg_77m
Member

Откуда: Донецк
Сообщений: 237
Однажды мы для этих целей добавили в одну таблицу материализованное вычисляемое поле, которое дату документа хитрым образом переводило в binary. Причём так, чтобы после даты "Ч" происходило переполнение. Программа продолжала себе дальше работать, но не позволяла вводить документы с датой позже даты "Ч"
29 сен 15, 14:55    [18209812]     Ответить | Цитировать Сообщить модератору
 Re: Синхронизация времени в MSSQL через интернет  [new]
Игорь888
Guest
Serg_77m
Однажды мы для этих целей добавили в одну таблицу материализованное вычисляемое поле, которое дату документа хитрым образом переводило в binary. Причём так, чтобы после даты "Ч" происходило переполнение. Программа продолжала себе дальше работать, но не позволяла вводить документы с датой позже даты "Ч"


Спасибо.
Смотрю в ту же сторону.

Создал таблицу, в которой несколько полей varbinary, на клиенте шифрую данные и записываю в поля, одна из проверок по дате, заключается в том, что если присутствует документ позже определённой даты программа будет блокироваться. Примерно то что предлагаете Вы))))
30 сен 15, 07:56    [18212681]     Ответить | Цитировать Сообщить модератору
 Re: Синхронизация времени в MSSQL через интернет  [new]
sphinx_mv
Member [заблокирован]

Откуда:
Сообщений: 1672
Игорь888
Создал таблицу, в которой несколько полей varbinary, на клиенте шифрую данные и записываю в поля, одна из проверок по дате, заключается в том, что если присутствует документ позже определённой даты программа будет блокироваться. Примерно то что предлагаете Вы))))
Во-во! :)
Осталось только самое малость: решить 2 проблемы - ограничить права DBA на доступ к базе и получить гарантии, что его квалификации окажется недостаточно, чтобы сломать такую защиту...
30 сен 15, 08:37    [18212756]     Ответить | Цитировать Сообщить модератору
 Re: Синхронизация времени в MSSQL через интернет  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Игорь888
Serg_77m
Однажды мы для этих целей добавили в одну таблицу материализованное вычисляемое поле, которое дату документа хитрым образом переводило в binary. Причём так, чтобы после даты "Ч" происходило переполнение. Программа продолжала себе дальше работать, но не позволяла вводить документы с датой позже даты "Ч"


Спасибо.
Смотрю в ту же сторону.

Создал таблицу, в которой несколько полей varbinary, на клиенте шифрую данные и записываю в поля, одна из проверок по дате, заключается в том, что если присутствует документ позже определённой даты программа будет блокироваться. Примерно то что предлагаете Вы))))



1. Как вы предоставляете свою базу в демо варианте юзеру?
2. Как предполагаете после истечения времени поступать:
1) разрешить работать юзеру дальше - как и чем это делается?
2) остановить работу или ограничивать данные или .... ?
30 сен 15, 11:16    [18213529]     Ответить | Цитировать Сообщить модератору
 Re: Синхронизация времени в MSSQL через интернет  [new]
Jaffar
Member

Откуда:
Сообщений: 633
TC`у,

Вообще нужно если уж на то пошло - вшивать "trial period"в клиентскую часть
(в скомпилированный exe`шник - если хотите), а из базы ваши ограничения(даже в виде clr сборки ) очень быстро выкинут - а вам скажут что ваш продукт им не подошел и продолжат им пользоваться бесплатно.
1 окт 15, 09:48    [18218428]     Ответить | Цитировать Сообщить модератору
 Re: Синхронизация времени в MSSQL через интернет  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
sphinx_mv
решить 2 проблемы - ограничить права DBA на доступ к базе



Люди, помогите кто-нибудь. У меня всего одна маленькая проблема: нужно изобрести вечный двигатель
1 окт 15, 22:27    [18223580]     Ответить | Цитировать Сообщить модератору
 Re: Синхронизация времени в MSSQL через интернет  [new]
sphinx_mv
Member [заблокирован]

Откуда:
Сообщений: 1672
Mind
sphinx_mv
решить 2 проблемы - ограничить права DBA на доступ к базе



Люди, помогите кто-нибудь. У меня всего одна маленькая проблема: нужно изобрести вечный двигатель
Сначала - машину времени. На ней мотаемся в будущее за чертежами вечного двигателя... Возвращаемся... Профит!!
2 окт 15, 08:23    [18224215]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить