CREATE CREDENTIAL (Transact-SQL)

建立認證。

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

語法

CREATE CREDENTIAL credential_name WITH IDENTITY = 'identity_name'
    [ , SECRET = 'secret' ]
        [ FOR CRYPTOGRAPHIC PROVIDER cryptographic_provider_name ]

引數

  • credential_name
    指定所要建立之認證的名稱。 credential_name 的開頭不能是數字符號 (#)。 系統認證必須以 ## 為開頭。

  • IDENTITY ='identity_name'
    指定連接到伺服器外部時所要使用的帳戶名稱。

  • SECRET ='secret'
    指定外寄驗證所需的秘密。 這個子句是選擇性的。

  • FOR CRYPTOGRAPHIC PROVIDER cryptographic_provider_name
    指定 Enterprise Key Management (EKM) 提供者的名稱。 如需有關金鑰管理的詳細資訊,請參閱<可延伸金鑰管理 (EKM)>。

備註

認證是包含驗證資訊的記錄,該項資訊是連接到 SQL Server 外部資源時所需的資訊。 大部分認證都包含 Windows 使用者和密碼。

當 IDENTITY 是 Windows 使用者時,秘密可以是密碼。 秘密是利用服務主要金鑰來加密的。 如果重新產生服務主要金鑰,便會利用新的服務主要金鑰來重新加密秘密。

建立認證之後,您可以利用 CREATE LOGINALTER LOGIN,將它對應至 SQL Server 登入。 SQL Server 登入只能對應至一個認證,但單一認證則可對應至多個 SQL Server 登入。 如需詳細資訊,請參閱<認證 (Database Engine)>。

您可以在 sys.credentials 目錄檢視中,看到有關認證的資訊。

如果提供者沒有任何登入對應認證,系統就會使用對應至 SQL Server 服務帳戶的認證。

一個登入可以具有多個對應認證,只要這些認證用於不同的提供者即可。 但是,每個登入的每個提供者必須只有一個對應認證。 相同的認證可對應至其他登入。

權限

需要 ALTER ANY CREDENTIAL 權限。

範例

下列範例會建立一個稱為 AlterEgo 的認證。 這個認證包含 Windows 使用者 Mary5 和密碼。

CREATE CREDENTIAL AlterEgo WITH IDENTITY = 'Mary5', 
    SECRET = '<EnterStrongPasswordHere>';
GO

下列範例會透過 EKM 的管理工具 (包含基本帳戶類型和密碼),在 EKM 模組上使用之前建立的帳戶 User1OnEKM。 伺服器上的 sysadmin 帳戶會建立用來連接 EKM 帳戶的認證,並將它指派給 User1 SQL Server 帳戶:

CREATE CREDENTIAL CredentialForEKM
WITH IDENTITY='User1OnEKM'
, SECRET='<EnterStrongPasswordHere>'
  FOR CRYPTOGRAPHIC PROVIDER MyEKMProvider;
GO
/* Modify the login to assign the cryptographic provider credential */
ALTER LOGIN User1
ADD CREDENTIAL CredentialForEKM;
/* Modify the login to assign a non cryptographic provider credential */ 
ALTER LOGIN User1
WITH CREDENTIAL = AlterEgo;
GO

請參閱

參考

ALTER CREDENTIAL (Transact-SQL)

DROP CREDENTIAL (Transact-SQL)

CREATE LOGIN (Transact-SQL)

ALTER LOGIN (Transact-SQL)

sys.credentials (Transact-SQL)

概念

認證 (Database Engine)