Share via


CREATE ASYMMETRIC KEY (Transact-SQL)

在資料庫中建立非對稱金鑰。

主題連結圖示Transact-SQL 語法慣例

語法

CREATE ASYMMETRIC KEY Asym_Key_Name 
   [ AUTHORIZATION database_principal_name ]
   {
      FROM <Asym_Key_Source>
      |
      WITH ALGORITHM = { RSA_512 | RSA_1024 | RSA_2048 }
   }
      [ ENCRYPTION BY PASSWORD = 'password' ] 

<Asym_Key_Source>::=
   FILE = 'path_to_strong-name_file'
   |
   EXECUTABLE FILE = 'path_to_executable_file'
   |
   ASSEMBLY Assembly_Name

引數

  • FROM Asym_Key_Source
    指定載入非對稱金鑰組時所在的來源。
  • AUTHORIZATION database_principal_name
    指定非對稱金鑰的擁有者。該擁有者不能是角色或群組。如果省略了這個選項,該擁有者便是目前的使用者。
  • FILE ='path_to_strong-name_file'
    指定載入金鑰組時所在的強式名稱檔案之路徑。
  • EXECUTABLE FILE ='path_to_executable_file'
    指定載入公開金鑰時所在的組件檔案。
  • ASSEMBLY Assembly_Name
    指定載入公開金鑰時所在的組件之名稱。
  • ENCRYPTION BY PASSWORD ='password'
    指定用來加密私密金鑰的密碼。如果沒有這個子句,則會利用資料庫主要金鑰來加密私密金鑰。password 不可超過 128 個字元。

備註

*「非對稱金鑰」*是資料庫層級的安全性實體。在它的預設格式中,這個實體同時包含公開金鑰和私密金鑰。如果執行時不使用 FROM 子句,CREATE ASYMMETRIC KEY 會產生新金鑰組。如果執行時使用 FROM 子句,CREATE ASYMMETRIC KEY 會從檔案匯入金鑰組,或從組件匯入公開金鑰。

依預設,私密金鑰由資料庫主要金鑰保護。如果尚未建立資料庫主要金鑰,則需要利用密碼保護私密金鑰。如果有資料庫主要金鑰,則密碼是選用的。

私密金鑰的長度可以是 512、1024 或 2048 位元。

權限

需要資料庫的 CREATE ASYMMETRIC KEY 權限。如果指定了 AUTHORIZATION 子句,則需要資料庫主體的 IMPERSONATE 權限或應用程式角色的 ALTER 權限。

範例

A. 建立非對稱金鑰

下列範例會利用 RSA_2048 演算法建立一個名稱為 PacificSales09 的非對稱金鑰,並利用密碼保護私密金鑰。

CREATE ASYMMETRIC KEY PacificSales09 
    WITH ALGORITHM = RSA_2048 
    ENCRYPTION BY PASSWORD = 'bmsA$dk7i82bv55foajsd9764'; 
GO

B. 從檔案建立非對稱金鑰,並提供授權給使用者

下列範例從儲存在檔案中的金鑰組建立非對稱金鑰 PacificSales19,然後授權使用者 SyedAbbas 使用該非對稱金鑰。

CREATE ASYMMETRIC KEY PacificSales19 AUTHORIZATION SyedAbbas  
    FROM FILE = ' c:\PacSales\Managers\SyedAbbasCerts.tmp'  
    ENCRYPTION BY PASSWORD = '35698ofg0sjlkfLKJ4548872$$$2';
GO

請參閱

參考

ALTER ASYMMETRIC KEY (Transact-SQL)
DROP ASYMMETRIC KEY (Transact-SQL)

其他資源

選擇加密演算法
加密階層

說明及資訊

取得 SQL Server 2005 協助