Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
vpozhidaev Member Откуда: Москва Сообщений: 91 |
В базе данных хранятся шифрованные таблицы, работа с которыми осуществляется посредством сертификатов и ключей шифрования. Сотруднику который работает с ними через форму приложения выдается сертификат с паролем. Конекш стринг для сервера через odbc: Provider=SQLOLEDB.1;Integrated Security=SSPI;Data Source=имя сервера;Initial Catalog=бд; Connection Timeout=240;Application Name= приложение. Ключи открываются командой: OPEN SYMMETRIC KEY ключ DECRYPTION by CERTIFICATE серт with password= пароль; при этом используется вложенность ключей вплоть до 3-го уровня. При открытых ключах возможен любой вид работы с шифрованными данными в таблицах, от просмотра до вставки и удаления через приложение. При закрытых ключах сервер возвращает приложению нулловые данные, которые никак не отображаются в форме и соответственно сотрудник не может с ними работать (банально не видит никаких строк). Доступ на уровне менеджмент студии закрыт. А вот в чем самая мякотка. При подобной работе приложение+sql server 2005 все проходит гладко. При подобной работе приложение+sql server 2008/2012 ключи шифрования "отваливаются". То есть сервер закрывает их без команды на их закрытие. При это чаще всего закрывается главные ключ(ключ самого верхнего уровня). Знатоки сервера и шифрования, прошу вашего совета и помощи касательно этой проблемы ключей. Буду рад любому совету и идее как решить эту проблему, сам уже всю голову себе этим поломал... Прошу прощения за корявый язык, если что то непонятно объясню подробней любой вопрос. Спасибо. |
11 окт 12, 21:20 [13305091] Ответить | Цитировать Сообщить модератору |
vpozhidaev Member Откуда: Москва Сообщений: 91 |
Что еще можно сказать, то что нашел на форуме мсдн'а The opened key is bound to the session, not to the execution context (including a module frame) and that it will remain opened until the key is explicitly closed (using CLOSE SYMMETRIC KEY) or the session is terminated. Приложение работает с сервером в рамках одной сессии, вручную (using CLOSE SYMMETRIC KEY) закрытия нет, и сессия точно так же держится. Вот так. |
11 окт 12, 21:40 [13305159] Ответить | Цитировать Сообщить модератору |
jimmers Member Откуда: Санкт-Петербург - New York City Сообщений: 5072 |
Решил? |
2 ноя 12, 22:48 [13417108] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |