2011-09-21 105 views
7

我想能夠通過SQL使用CLR來運行.NET的DLL - 我這樣做不成功。找不到非對稱密鑰 - 因爲它不存在,或者您沒有權限

我下面的說明here

所以我做了以下內容:

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

的正常工作和創建密鑰,然後我儘量做到以下幾點:

CREATE LOGIN SQLCLR_AsymKeyLogin FROM ASYMMETRIC KEY AKEY_SqlClr 

而我得到的錯誤:

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

我怎麼能沒有這個權限?我已驗證我有CREATE LOGIN權限。有任何想法嗎?

+1

我對此的記憶有點朦朧......您是否在'master'數據庫中創建它?確保在創建密鑰前使用主設備。 – vcsjones

回答

9

登錄是服務器主體,因此它們不能從存儲在用戶數據庫的密鑰來創建。您必須在彙編中創建密鑰master數據庫:

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