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
    指定企业密钥管理提供程序 (EKM) 的名称。有关密钥管理的详细信息,请参阅了解可扩展的密钥管理 (EKM)

注释

凭据是包含连接到 SQL Server 以外的资源时所需的身份验证信息的记录。多数凭据包括一个 Windows 用户和一个密码。

当 IDENTITY 为 Windows 用户时,机密内容可以是密码。机密内容使用服务主密钥进行加密。如果重新生成服务主密钥,则使用新的服务主密钥重新加密机密内容。

创建完凭据之后,您可以使用 CREATE LOGINALTER 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