CREATE ASYMMETRIC KEY (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)