Не удается найти асимметричный ключ - потому что он не существует или у вас нет разрешения - PullRequest
7 голосов
/ 21 сентября 2011

Я пытаюсь запустить dll .Net через SQL с помощью CLR - я делаю это безуспешно.

Я следую инструкциям здесь

Итак, я делаю следующее:

CREATE ASYMMETRIC KEY AKEY_SqlClr FROM EXECUTABLE FILE = 'C:\dlls\mySqlClr.dll'

, который отлично работает и создает ключ, затем я пытаюсь сделать следующее:

CREATE LOGIN SQLCLR_AsymKeyLogin FROM ASYMMETRIC KEY AKEY_SqlClr

И я получаю ошибку:

Не удается найти асимметричный ключ 'AKEY_SqlClr', так как он не существует или у вас нет разрешения.

Как я мог не иметь разрешения на это? Я подтвердил, что у меня есть разрешения CREATE LOGIN. Есть идеи?

1 Ответ

9 голосов
/ 21 сентября 2011

Логины являются принципалами сервера и поэтому не могут быть созданы из ключей, хранящихся в пользовательских базах данных.Вы должны создать ключ из сборки в master базе данных:

use master;
CREATE ASYMMETRIC KEY AKEY_SqlClr FROM EXECUTABLE FILE = 'C:\dlls\mySqlClr.dll';
CREATE LOGIN SQLCLR_AsymKeyLogin FROM ASYMMETRIC KEY AKEY_SqlClr;
...