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 帐户的凭据,并将其分配给 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)

概念

凭据(数据库引擎)