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
指定企业密钥管理提供程序 (EKM) 的名称。有关密钥管理的详细信息,请参阅了解可扩展的密钥管理 (EKM)。
注释
凭据是包含连接到 SQL Server 以外的资源时所需的身份验证信息的记录。多数凭据包括一个 Windows 用户和一个密码。
当 IDENTITY 为 Windows 用户时,机密内容可以是密码。机密内容使用服务主密钥进行加密。如果重新生成服务主密钥,则使用新的服务主密钥重新加密机密内容。
创建完凭据之后,您可以使用 CREATE LOGIN 或 ALTER LOGIN,将该凭据映射到 SQL Server 登录名。一个 SQL Server 登录名只能映射到一个凭据,但是单个凭据可以映射到多个 SQL Server 登录名。有关详细信息,请参阅 凭据(数据库引擎)。
可以在 sys.credentials 目录视图中查看有关凭据的信息。
如果该提供程序没有任何登录名映射的凭据,则使用映射到 SQL Server 服务帐户的凭据。
一个登录名可以有多个映射的凭据,只要它们用于不同的提供程序即可。每个登录名的每个提供程序只能有一个映射的凭据。相同的凭据可以映射到其他登录名。
权限
需要 ALTER ANY CREDENTIAL 权限。
示例
以下示例创建名为 AlterEgo 的凭据。凭据包含 Windows 用户 Mary5 和一个密码。
CREATE CREDENTIAL AlterEgo WITH IDENTITY = 'Mary5',
SECRET = '<EnterStrongPasswordHere>';
GO
下例使用一个名为 User1OnEKM 的帐户,它是以前通过 EKM 的管理工具在 EKM 模块中创建的,并带有一个基本帐户类型和密码。服务器上的 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