Dot-Net

找不到非對稱密鑰——因為它不存在或者您沒有權限

  • June 7, 2012

我試圖能夠使用 CLR 通過 SQL 執行 .Net dll - 我這樣做沒有成功。

我正在按照此處的說明進行操作

所以我正在做以下事情:

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 權限。有任何想法嗎?

登錄是伺服器主體,因此不能從儲存在使用者數據庫中的密鑰創建。您必須從數據庫中的程序集創建密鑰master

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

引用自:https://stackoverflow.com/questions/7503603