CREATE CREDENTIAL (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 LOGIN 或 ALTER 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 帳戶的認證,並將它指派給 User1SQL 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