Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Что изменилось в 2016 по сравнению с младшими версиями?  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4006
Ситуация
Есть программа которая отлично работает с версиями 2005-2008-2012, но не работает с 2016.
Совет обратиться к разработчикам, увы, не подходит, так как разработчик компания западная,
до общения с конечным пользователем, несмотря на соблюдение лицензирования, не снисходят.

Тест подключения проходит успешно, но при обращении к базе не видит ни одной таблицы.
Соответственно ничего не работает.
Права у аккаунта подключения полные, выше только у Бога.

Какие есть идеи?
Что кардинально изменилось в версии 2016 из-за чего возникли прпоблемы на ровном месте?
3 сен 19, 15:00    [21962576]     Ответить | Цитировать Сообщить модератору
 Re: Что изменилось в 2016 по сравнению с младшими версиями?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6695
SQL2008,
как выражается отсусвие зрения?
3 сен 19, 15:02    [21962579]     Ответить | Цитировать Сообщить модератору
 Re: Что изменилось в 2016 по сравнению с младшими версиями?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36501
С чего вы взяли, что проблема в сервере, а не разработчики написали в коде программы if mssql_version >= 2016 then become blind?
3 сен 19, 15:04    [21962585]     Ответить | Цитировать Сообщить модератору
 Re: Что изменилось в 2016 по сравнению с младшими версиями?  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4006
TaPaK
SQL2008,
как выражается отсусвие зрения?

В дереве таблиц, которое при нормальном коннекте заполняется, на 2016 просто пустое.
3 сен 19, 15:12    [21962598]     Ответить | Цитировать Сообщить модератору
 Re: Что изменилось в 2016 по сравнению с младшими версиями?  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4006
Гавриленко Сергей Алексеевич
С чего вы взяли, что проблема в сервере, а не разработчики написали в коде программы if mssql_version >= 2016 then become blind?

Не исключаю, но есть один нюанс... Версия программы по иронии судьбы тоже 2016 :)
Было бы очень странно с такой версией иметь отсечку по аналогичному номеру.
3 сен 19, 15:14    [21962601]     Ответить | Цитировать Сообщить модератору
 Re: Что изменилось в 2016 по сравнению с младшими версиями?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6695
SQL2008
TaPaK
SQL2008,
как выражается отсусвие зрения?

В дереве таблиц, которое при нормальном коннекте заполняется, на 2016 просто пустое.


и каким запросом заполняется дерево таблиц?
3 сен 19, 15:15    [21962602]     Ответить | Цитировать Сообщить модератору
 Re: Что изменилось в 2016 по сравнению с младшими версиями?  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4006
На официальном ресурсе попалась такой упоминание

New security features:
  • Always Encrypted: When enabled, only the application that has the encryption key can access the encrypted sensitive data in the SQL Server 2016 database. The key is never passed to SQL Server.
  • Dynamic Data Masking: If specified in the table definition, masked data is hidden from most users, and only users with UNMASK permission can see the complete data.
  • Row Level Security: Data access can be restricted at the database engine level, so users see only what is relevant to them.

    Но подключаясь в студии через этот аккаунт я прекрасно вижу все таблицы. И потом - данная фича по логике должна работать наоборот, по умолчанию все таблицы доступны, а маскировка включается или определяется дополнительно.
  • 3 сен 19, 15:18    [21962605]     Ответить | Цитировать Сообщить модератору
     Re: Что изменилось в 2016 по сравнению с младшими версиями?  [new]
    felix_ff
    Member

    Откуда: Moscow
    Сообщений: 1056
    SQL2008,

    запустите профайлер и посмотрите какие запросы идут к базе, что гадать то на кофейной гуще?

    dynamic masking не об этом
    3 сен 19, 15:22    [21962612]     Ответить | Цитировать Сообщить модератору
     Re: Что изменилось в 2016 по сравнению с младшими версиями?  [new]
    Гавриленко Сергей Алексеевич
    Member

    Откуда: Moscow
    Сообщений: 36501
    Берите профайлер и смотрите, что ваша программа отправляет на один и на другой сервер, может там что-то откопаете.
    3 сен 19, 15:22    [21962613]     Ответить | Цитировать Сообщить модератору
     Re: Что изменилось в 2016 по сравнению с младшими версиями?  [new]
    Yasha123
    Member

    Откуда:
    Сообщений: 1650
    SQL2008
    На официальном ресурсе попалась такой упоминание

    New security features:
  • Always Encrypted: When enabled, only the application that has the encryption key can access the encrypted sensitive data in the SQL Server 2016 database. The key is never passed to SQL Server.
  • Dynamic Data Masking: If specified in the table definition, masked data is hidden from most users, and only users with UNMASK permission can see the complete data.
  • Row Level Security: Data access can be restricted at the database engine level, so users see only what is relevant to them.

    Но подключаясь в студии через этот аккаунт я прекрасно вижу все таблицы. И потом - данная фича по логике должна работать наоборот, по умолчанию все таблицы доступны, а маскировка включается или определяется дополнительно.

  • вы серьезно думаете, что при ресторе базы на новом сервере
    сами собой дописались маски к каким-то полям?
    или что без указания их в явном виде что-то там само собой замаскируется?
    ----------
    как переносили базу?
    что за тип логина(сиквельный/виндовый)?
    3 сен 19, 15:30    [21962619]     Ответить | Цитировать Сообщить модератору
     Re: Что изменилось в 2016 по сравнению с младшими версиями?  [new]
    SQL2008
    Member

    Откуда: Москва
    Сообщений: 4006
    Гавриленко Сергей Алексеевич
    Берите профайлер и смотрите, что ваша программа отправляет на один и на другой сервер, может там что-то откопаете.

    Похоже, что действительно косяк в ПО
    Итак, на работающем сервере список таблиц заполняется вызовом
    exec [МОЯ_БАЗА]..sp_tables_rowset;2 N'dbo',NULL 
    

    На 2016 этого вызова нет вообще :) Как такое может быть? Только кривые ручонки программистов!
    Но на солидную компанию я совсем не мог подумать!
    Вот и верь после этого людям!

    Всем спасибо.
    3 сен 19, 15:39    [21962623]     Ответить | Цитировать Сообщить модератору
     Re: Что изменилось в 2016 по сравнению с младшими версиями?  [new]
    komrad
    Member

    Откуда: Msk -> Utrecht
    Сообщений: 5043
    SQL2008
    exec [МОЯ_БАЗА]..sp_tables_rowset;2 N'dbo',NULL 
    



    любопытно, номер 2 подразумевает вторую версию процы, но sp_helptext выводит только один (первый?) её вариант
    да и object_definition() тоже

    какая-то очень древняя проца, которую даже и не трогают - она есть даже в Azure
    3 сен 19, 16:21    [21962656]     Ответить | Цитировать Сообщить модератору
     Re: Что изменилось в 2016 по сравнению с младшими версиями?  [new]
    SQL2008
    Member

    Откуда: Москва
    Сообщений: 4006
    Я бы еще понял если процедура вызывается, но падает с ошибкой.
    Тогда, имея текст ошибки, можно сделать какие-то выводы о том, почему это происходит.
    А тут даже этого нет.
    Без хрустального шара никак.
    3 сен 19, 16:59    [21962702]     Ответить | Цитировать Сообщить модератору
     Re: Что изменилось в 2016 по сравнению с младшими версиями?  [new]
    Александр Спелицин
    Member

    Откуда: Из ближайшего подмосковья.
    Сообщений: 2479
    SQL2008
    Итак, на работающем сервере список таблиц заполняется вызовом
    exec [МОЯ_БАЗА]..sp_tables_rowset;2 N'dbo',NULL 
    

    На 2016 этого вызова нет вообще :) ...

    Очень просто, значит где-то раньше срабатывает if / exception / ... из-за которого управление в sp_tables_rowset не передается.

    Пробовали явно выставить уровень совместимости для Вашей БД?
    3 сен 19, 17:00    [21962703]     Ответить | Цитировать Сообщить модератору
     Re: Что изменилось в 2016 по сравнению с младшими версиями?  [new]
    SQL2008
    Member

    Откуда: Москва
    Сообщений: 4006
    Александр Спелицин
    SQL2008
    Итак, на работающем сервере список таблиц заполняется вызовом
    exec [МОЯ_БАЗА]..sp_tables_rowset;2 N'dbo',NULL 
    


    На 2016 этого вызова нет вообще :) ...

    Очень просто, значит где-то раньше срабатывает if / exception / ... из-за которого управление в sp_tables_rowset не передается.

    Пробовали явно выставить уровень совместимости для Вашей БД?

    Да. 2005 в оригинале, на 2016 сервере уровень стоит 2008, но... На 2012 работает хоть в 2005, хоть в 2008, хоть в 2012
    3 сен 19, 17:02    [21962707]     Ответить | Цитировать Сообщить модератору
     Re: Что изменилось в 2016 по сравнению с младшими версиями?  [new]
    TaPaK
    Member

    Откуда: Kiev
    Сообщений: 6695
    SQL2008
    Александр Спелицин
    пропущено...

    Очень просто, значит где-то раньше срабатывает if / exception / ... из-за которого управление в sp_tables_rowset не передается.

    Пробовали явно выставить уровень совместимости для Вашей БД?

    Да. 2005 в оригинале, на 2016 сервере уровень стоит 2008, но... На 2012 работает хоть в 2005, хоть в 2008, хоть в 2012

    отрабатывает всё и на 2016 и на 2017
    3 сен 19, 17:17    [21962722]     Ответить | Цитировать Сообщить модератору
     Re: Что изменилось в 2016 по сравнению с младшими версиями?  [new]
    SQL2008
    Member

    Откуда: Москва
    Сообщений: 4006
    Так как я сам не ставил этот софт, то и руководство по установке не читал соответственно.
    А там

    Tested Databases
  • Oracle® 12.1.0.2
  • SQL Server® 2012 SP2 Standard (Express- optional)
  • SAP HANA® 1.00.110.00

    Все мои претензии к фирме разработчику были необоснованы.
    Как говорится RTFM.
    Вопрос закрыт уже окончательно.
  • 3 сен 19, 17:31    [21962741]     Ответить | Цитировать Сообщить модератору
     Re: Что изменилось в 2016 по сравнению с младшими версиями?  [new]
    SQL2008
    Member

    Откуда: Москва
    Сообщений: 4006
    Проблема оказалась не в версии, а в том, что на сервере было отключено TLS 1 и TLS 1.1
    После включения все нормально заработало.
    16 сен 19, 12:39    [21971505]     Ответить | Цитировать Сообщить модератору
     Re: Что изменилось в 2016 по сравнению с младшими версиями?  [new]
    Критик
    Member

    Откуда: Москва / Калуга
    Сообщений: 32496
    Блог
    SQL2008,

    это же двадцатилетнее старье, которое не поддерживает современную криптографию,
    от этих протоколов все отказались еще в прошлом году, а в 2020 они будут признаны окончательно устаревшими,

    у меня на прошлой работе инфобезопасность их использование не допускала
    16 сен 19, 13:39    [21971564]     Ответить | Цитировать Сообщить модератору
     Re: Что изменилось в 2016 по сравнению с младшими версиями?  [new]
    Гавриленко Сергей Алексеевич
    Member

    Откуда: Moscow
    Сообщений: 36501
    SQL2008
    Проблема оказалась не в версии, а в том, что на сервере было отключено TLS 1 и TLS 1.1
    После включения все нормально заработало.
    Это до поры, пока не проэксплоуатируют уязвимости и не пошифруют сетку.
    16 сен 19, 14:05    [21971613]     Ответить | Цитировать Сообщить модератору
     Re: Что изменилось в 2016 по сравнению с младшими версиями?  [new]
    SQL2008
    Member

    Откуда: Москва
    Сообщений: 4006
    Критик
    SQL2008,

    это же двадцатилетнее старье, которое не поддерживает современную криптографию,
    от этих протоколов все отказались еще в прошлом году, а в 2020 они будут признаны окончательно устаревшими,

    у меня на прошлой работе инфобезопасность их использование не допускала

    У нас тоже, поэтому по умолчанию на новых серверах это отключено.
    Но деваться некуда, софт иначе не работает, пришлось включать.
    16 сен 19, 14:23    [21971639]     Ответить | Цитировать Сообщить модератору
     Re: Что изменилось в 2016 по сравнению с младшими версиями?  [new]
    a_voronin
    Member

    Откуда: Москва
    Сообщений: 4023
    Гавриленко Сергей Алексеевич
    Берите профайлер и смотрите, что ваша программа отправляет на один и на другой сервер, может там что-то откопаете.


    Народ кричит, что "XE рулез!!!", а вы про профайлер. Тоже не жалуете XE?
    16 сен 19, 14:40    [21971672]     Ответить | Цитировать Сообщить модератору
     Re: Что изменилось в 2016 по сравнению с младшими версиями?  [new]
    msLex
    Member

    Откуда:
    Сообщений: 7000
    a_voronin
    Гавриленко Сергей Алексеевич
    Берите профайлер и смотрите, что ваша программа отправляет на один и на другой сервер, может там что-то откопаете.


    Народ кричит, что "XE рулез!!!", а вы про профайлер. Тоже не жалуете XE?



    XEvent Profiler
    16 сен 19, 14:47    [21971683]     Ответить | Цитировать Сообщить модератору
    Все форумы / Microsoft SQL Server Ответить