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

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

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

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

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

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

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

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

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

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

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

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


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

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

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
    Сообщений: 1031
    SQL2008,

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

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

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

    Откуда:
    Сообщений: 1440
    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

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

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

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

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

    Откуда: Msk -> Utrecht
    Сообщений: 4964
    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

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

    Откуда: Из ближайшего подмосковья.
    Сообщений: 2475
    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

    Откуда: Москва
    Сообщений: 3978
    Александр Спелицин
    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
    Сообщений: 6498
    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

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

    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]     Ответить | Цитировать Сообщить модератору
    Все форумы / Microsoft SQL Server Ответить