Я уже создал сборку с VS 2010 и подписал ее с помощью ключа. Я побежал сценарий, как это показано ниже:Обновление сборки с асимметричным ключом
USE master;
GO
CREATE ASYMMETRIC KEY SQLCLRPSBatch20Key FROM EXECUTABLE FILE = 'C:\Unsafe\MyDLL.dll';
CREATE LOGIN SQLCLRPSBatch20Login FROM ASYMMETRIC KEY SQLCLRPSBatch20Key;
GRANT UNSAFE ASSEMBLY TO SQLCLRPSBatch20Login;
GO
use MyDB;
GO
// create assembly script here to install unsafe assembly
Теперь мне нужно сделать, чтобы это сделать, и создать новый ключ и войти в систему каждый раз, когда я падаю сборку на БД и переустановить его обновить?
Когда я делаю это, я получаю:
Msg 15396, Level 16, State 1, Line 2
An asymmetric key with name 'SQLCLRPSBatch20Key' already exists or this asymmetric key already has been added to the database.
Msg 15151, Level 16, State 1, Line 3
Cannot find the asymmetric key 'SQLCLRPSBatch20Key', because it does not exist or you do not have permission.
Msg 15151, Level 16, State 1, Line 4
Cannot find the login 'SQLCLRPSBatch20Login', because it does not exist or you do not have permission.
Так что я думаю, так как сборка создания и подписаны таким же образом, я просто установить его. Это верно?
О, ладно, так что я просто должен сделать это в первый раз, так как он был подписан с ключом, верно? – cdub
Да. Чтобы убедиться в этом, проверьте sys.crypt_properties перед тем, как выйти из системы, выйти из системы, вернуться в систему и снова проверить ее. Вы увидите, что подпись на вашей сборке сохраняется. –