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

Откуда:
Сообщений: 26
Добрый день !

Делаю так:

Microsoft SQL Server 2016 (RTM) - 13.0.1601.5 (X64) Apr 29 2016 23:23:58 Copyright (c) Microsoft Corporation Express Edition (64-bit) on Windows Server 2012 R2 Datacenter 6.3 <X64> (Build 9600: ) (Hypervisor)

CREATE CERTIFICATE TEST
   WITH SUBJECT = 'TEST',
   START_DATE = '20010101',
   EXPIRY_DATE = '20501231'

DECLARE @rp VARCHAR(255)
SELECT @rp = CONVERT(VARCHAR(255), ENCRYPTBYCERT(CERT_ID('TEST'), 'пороль'))
SELECT CONVERT(VARCHAR(255), DecryptByCert(Cert_Id('TEST'), CONVERT(VARBINARY(255), @rp)))


на SQL 2008 R2, 2012 все работает, на 2016 выдает NULL

В чем проблема ?
9 дек 16, 13:10    [19984509]     Ответить | Цитировать Сообщить модератору
 Re: Шифрование на SQL 2016  [new]
Ololosha99
Guest
demaxim, это сервер 2016 стал умнее и болезненно реагирует на "пороль"
9 дек 16, 13:58    [19984808]     Ответить | Цитировать Сообщить модератору
 Re: Шифрование на SQL 2016  [new]
demaxim
Member

Откуда:
Сообщений: 26
))) мдя, ошибся
ну а серьезно
9 дек 16, 14:17    [19984914]     Ответить | Цитировать Сообщить модератору
 Re: Шифрование на SQL 2016  [new]
Slava_Nik
Member

Откуда: из России
Сообщений: 888
demaxim,
мастер ключ/master key есть ?

и кстати бекап сертификата делали? может не шифрует пока не будет сделан.

дополнительно -попробуйте SP1 установить.
11 дек 16, 21:37    [19990790]     Ответить | Цитировать Сообщить модератору
 Re: Шифрование на SQL 2016  [new]
demaxim
Member

Откуда:
Сообщений: 26
Мастер ключ заново создавал - не работает.
Попробую SP1
15 дек 16, 12:50    [20006607]     Ответить | Цитировать Сообщить модератору
 Re: Шифрование на SQL 2016  [new]
Eleanor
Member

Откуда:
Сообщений: 2912
Попробуйте 255 заменить на max. Так на 2016 возвращает 'пороль'

DECLARE @rp VARCHAR(max)
SELECT @rp = CONVERT(VARCHAR(max), ENCRYPTBYCERT(CERT_ID('TEST'), 'пороль'))
SELECT CONVERT(VARCHAR(max), DecryptByCert(Cert_Id('TEST'), CONVERT(VARBINARY(max), @rp)))
15 дек 16, 14:25    [20007204]     Ответить | Цитировать Сообщить модератору
 Re: Шифрование на SQL 2016  [new]
demaxim
Member

Откуда:
Сообщений: 26
Спасибо, работает !
15 дек 16, 15:03    [20007565]     Ответить | Цитировать Сообщить модератору
 Re: Шифрование на SQL 2016  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3274
CREATE CERTIFICATE (Transact-SQL)
The Private Key must be <= 2500 bytes in encrypted format. Private keys generated by SQL Server are 1024 bits long through SQL Server 2014 and are 2048 bits long beginning with SQL Server 2016. Private keys imported from an external source have a minimum length of 384 bits and a maximum length of 4,096 bits. The length of an imported private key must be an integer multiple of 64 bits. Certificates used for TDE are limited to a private key size of 3456 bits.
Минимум varbinary(256) надо, но лучше, конечно, (max).
16 дек 16, 09:54    [20010059]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить