CREATE CERTIFICATE (Transact

您所在的位置:网站首页 md5加密语法 CREATE CERTIFICATE (Transact

CREATE CERTIFICATE (Transact

2023-05-27 04:46| 来源: 网络整理| 查看: 265

CREATE CERTIFICATE (Transact-SQL) 项目 03/03/2023

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Azure Synapse Analytics

为 SQL Server 中的数据库添加证书。

此功能与使用数据层应用程序框架 (DACFx) 的数据库导出不兼容。 必须在导出之前删除所有证书。

注意

在 SQL Server 2022 (16.x) 中,可以使用公钥对 (PKCS) #12 或个人信息交换 (PFX) 格式,直接在文件或二进制 blob 中备份或还原带有私钥的证书。 在 SQL Server 2022 (16.x) 中,所有系统生成的证书的最小强度为 RSA-3072。

PKCS #12 或 PFX 格式是一种二进制格式,用于将服务器证书、任何中间证书和私钥存储在一个文件中。 PFX 文件通常具有 .pfx 和 .p12 等扩展名。 这使客户无需使用 PVKConverter 等转换工具(对于 PVK 或 DER 格式),从而可以更轻松地遵守禁止 RC4 加密的当前安全最佳做法准则和合规性标准。

Transact-SQL 语法约定

注意

Azure Synapse Analytics 中的无服务器 SQL 池不支持此语法。

语法 -- Syntax for SQL Server and Azure SQL Database CREATE CERTIFICATE certificate_name [ AUTHORIZATION user_name ] { FROM | } [ ACTIVE FOR BEGIN_DIALOG = { ON | OFF } ] ::= ASSEMBLY assembly_name | { [ EXECUTABLE ] FILE = 'path_to_file' [ WITH [FORMAT = 'PFX',] PRIVATE KEY ( ) ] } | { BINARY = asn_encoded_certificate [ WITH PRIVATE KEY ( ) ] } ::= [ ENCRYPTION BY PASSWORD = 'password' ] WITH SUBJECT = 'certificate_subject_name' [ , [ ,...n ] ] ::= { FILE = 'path_to_private_key' [ , DECRYPTION BY PASSWORD = 'password' ] [ , ENCRYPTION BY PASSWORD = 'password' ] } | { BINARY = private_key_bits [ , DECRYPTION BY PASSWORD = 'password' ] [ , ENCRYPTION BY PASSWORD = 'password' ] } ::= START_DATE = 'datetime' | EXPIRY_DATE = 'datetime' -- Syntax for Parallel Data Warehouse CREATE CERTIFICATE certificate_name { | FROM } [ ; ] ::= WITH SUBJECT = 'certificate_subject_name' [ , [ ,...n ] ] ::= { FILE ='path_to_file' WITH PRIVATE KEY ( FILE = 'path_to_private_key' , DECRYPTION BY PASSWORD ='password' ) } ::= START_DATE ='datetime' | EXPIRY_DATE ='datetime'

注意

若要查看 SQL Server 2014 及更早版本的 Transact-SQL 语法,请参阅早期版本文档。

参数

certificate_name 数据库中证书的名称。

AUTHORIZATION user_name 拥有该证书的用户的名称。

ASSEMBLY assembly_name 指定已经加载到数据库中的已签名的程序集。

[ EXECUTABLE ] FILE = 'path_to_file' 指定包含证书的 DER 编码文件的完整路径(包括文件名)。 如果使用 EXECUTABLE 选项,则文件为已使用证书签名的 DLL。 path_to_file 可以是本地路径,也可以是网络位置的 UNC 路径。 在 SQL Server 服务帐户的安全上下文中访问该文件。 该帐户必须具有所需的文件系统权限。

重要

Azure SQL 数据库 不支持通过文件或使用私钥文件创建证书。

BINARY = asn_encoded_certificate 指定为二进制常量的 ASN 编码证书字节数。 适用于:SQL Server 2012 (11.x) 及更高版本。

WITH FORMAT = 'PFX' 适用于:SQL Server 2022 (16.x) 及更高版本 指定从 PFX 文件生成证书。 此子句是可选的。

WITH PRIVATE KEY 指定将证书的私钥加载到 SQL Server 中。 从程序集创建证书时,此子句无效。 若要加载从程序集创建的证书的私钥,请使用 ALTER CERTIFICATE。

FILE ='path_to_private_key' 指定私钥的完整路径(包括文件名)。 path_to_private_key 可以是本地路径,也可以是网络位置的 UNC 路径。 在 SQL Server 服务帐户的安全上下文中访问该文件。 该帐户必须具有所需的文件系统权限。

重要

此选项在包含的数据库或 Azure SQL 数据库 中不可用。

BINARY = private_key_bits 适用对象:SQL Server(从 SQL Server 2012 (11.x) 开始)和 Azure SQL 数据库。

指定为二进制常量的专有键位。 这些位可采用加密形式。 如果加密,则用户必须提供解密密码。 不会对此密码执行密码策略检查。 私钥位应该采用 PVK 文件格式。

DECRYPTION BY PASSWORD = 'key_password' 指定对从文件中检索的私钥进行解密所需的密码。 如果私钥受空密码的保护,则该子句为可选项。 建议不要将私钥保存到无密码保护的文件中。 如果需要密码,但是未指定密码,则该语句将失败。

ENCRYPTION BY PASSWORD = 'password' 指定用于加密私钥的密码。 只有在需要使用密码对证书进行加密时,才使用该选项。 如果省略该子句,则使用数据库主密钥对私钥进行加密。 password 必须符合运行 SQL Server 实例的计算机的 Windows 密码策略要求。 有关详细信息,请参阅 Password Policy。

SUBJECT = 'certificate_subject_name' 根据 X.509 标准中的定义,术语 subject 是指证书的元数据中的字段。 主题的长度应不超过 64 个字符,并且在 Linux 上的 SQL Server 中强制执行此限制。 对于 Windows 上的 SQL Server,主题的长度最多是 128 个字符。 将主题存储到目录中时,如果主题的长度超过 128 个字节,则主题会被截断,但是包含证书的二进制大型对象 (BLOB) 将保留完整的主题名称。

START_DATE = 'datetime' 证书生效的日期。 如果未指定,则将 START_DATE 设置为当前日期。 START_DATE 采用 UTC 时间,并且可以通过可转换为日期和时间的任何格式指定。

EXPIRY_DATE = 'datetime' 证书过期的日期。 如果未指定,则将 EXPIRY_DATE 设置为 START_DATE 一年之后的日期。 EXPIRY_DATE 采用 UTC 时间,并且可以通过可转换为日期和时间的任何格式指定。 SQL Server Service Broker 会检查过期日期。 使用证书进行加密的备份还将检查到期日期,且不会允许使用过期证书创建新备份,但会允许使用过期证书进行还原。 但是,在将证书用于数据库加密或 Always Encrypted 时,不会强制应用到期日期。

ACTIVE FOR BEGIN_DIALOG = { ON | OFF } 使证书可用于 Service Broker 对话会话的发起方。 默认值为 ON。

备注

证书是一个数据库级的安全对象,它遵循 X.509 标准并支持 X.509 V1 字段。 CREATE CERTIFICATE可以从文件、二进制常量或程序集中加载证书。 该语句也可生成密钥对并创建自我签名的证书。

私钥必须



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3