2011-09-21 8 views
7

Sto cercando di essere in grado di eseguire una .Net dll tramite SQL utilizzando il CLR - lo sto facendo senza successo.Impossibile trovare la chiave asimmetrica - perché non esiste o non si dispone dell'autorizzazione

sto seguendo le istruzioni here

Così sto facendo quanto segue:

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

che funziona bene e crea la chiave, poi cerco di fare quanto segue:

CREATE LOGIN SQLCLR_AsymKeyLogin FROM ASYMMETRIC KEY AKEY_SqlClr 

E ho ricevuto l'errore:

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

Come potrei non avere permessi a questo? Ho verificato di avere le autorizzazioni CREATE LOGIN. Qualche idea?

+1

La mia memoria su questo è un po 'confuso ... State creando nel database 'master'? Assicurati di usare USE master; prima di creare la tua chiave. – vcsjones

risposta

9

Gli accessi sono principal del server e pertanto non possono essere creati da chiavi memorizzate nei database utente. È necessario creare la chiave dal gruppo in master database:

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