2011-09-21 9 views
7

Estoy tratando de poder ejecutar un dll de .Net a través de SQL utilizando el CLR. Lo estoy haciendo sin éxito.No se puede encontrar la clave asimétrica, porque no existe o no tiene permiso

estoy siguiendo las instrucciones here

Así que estoy haciendo lo siguiente:

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

que funciona muy bien y crea la clave, entonces trato de hacer lo siguiente:

CREATE LOGIN SQLCLR_AsymKeyLogin FROM ASYMMETRIC KEY AKEY_SqlClr 

Y obtengo el error:

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

¿Cómo no puedo tener permisos para esto? He verificado que tengo permisos CREATE LOGIN. ¿Algunas ideas?

+1

Mi memoria sobre este tema es un poco confusa ... ¿Va a crear en la base de datos 'master'? Asegúrese de 'USE maestro;' antes de crear su clave. – vcsjones

Respuesta

9

Los inicios de sesión son los principales del servidor y, como tales, no se pueden crear a partir de las claves almacenadas en las bases de datos del usuario. Debe crear la llave de montaje en la base de datos master:

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