2011-09-21 15 views
7

Próbuję uruchomić bibliotekę .NET przez SQL za pomocą CLR - robię to bez powodzenia.Nie mogę znaleźć klucza asymetrycznego - ponieważ nie istnieje lub nie masz uprawnień

ja postępując zgodnie z instrukcjami here

więc robię, co następuje:

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

które działa prawidłowo i tworzy klucz, wtedy staram się wykonać następujące czynności:

CREATE LOGIN SQLCLR_AsymKeyLogin FROM ASYMMETRIC KEY AKEY_SqlClr 

Pojawia się błąd:

Cannot find the asymmetric key 'AKEY_SqlClr', because it does not exist or you do not have permission.

Jak mogę nie mieć uprawnień do tego? Potwierdziłem, że mam uprawnienia do tworzenia LOGINU. Jakieś pomysły?

+1

Moja pamięć jest nieco mglista ... Czy tworzysz ją w bazie danych 'master'? Przed utworzeniem klucza upewnij się, że "USE master"; – vcsjones

Odpowiedz

9

Loginy są głównymi serwerami i jako takie nie można ich utworzyć z kluczy przechowywanych w bazach danych użytkowników. Musisz utworzyć klucz z zestawu w bazie danych master:

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