You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure Synapse T-SQL中从Azure Key Vault获取证书密码

在Synapse中从Azure Key Vault获取密码创建证书的可行方案

可行。你可以通过Synapse与Azure Key Vault的托管身份集成,结合T-SQL变量实现密码动态获取,避免硬编码。具体步骤如下:

  • 步骤1:配置权限关联
    确保Synapse工作区的托管身份被授予Azure Key Vault的Secret Get权限(在Key Vault的访问策略中添加该权限)。

  • 步骤2:创建连接凭证与数据源
    在Synapse SQL池中执行以下T-SQL,建立与Key Vault的连接:

    -- 创建数据库范围凭证(基于托管身份验证)
    CREATE DATABASE SCOPED CREDENTIAL KeyVaultAuth
    WITH IDENTITY = 'Managed Identity';
    
    -- 创建指向目标Key Vault的外部数据源
    CREATE EXTERNAL DATA SOURCE AzureKeyVaultSource
    WITH (
        LOCATION = 'https://<你的Key Vault名称>.vault.azure.net/',
        CREDENTIAL = KeyVaultAuth
    );
    
  • 步骤3:动态获取密码并创建证书
    通过OPENROWSET读取Key Vault中的秘密,赋值给变量后执行证书创建语句:

    DECLARE @certPassword NVARCHAR(200);
    
    -- 从Key Vault读取指定密码秘密(替换<你的密码秘密名称>为实际名称)
    SELECT @certPassword = CAST(BulkColumn AS NVARCHAR(200))
    FROM OPENROWSET(
        BULK 'secrets/<你的密码秘密名称>',
        DATA_SOURCE = 'AzureKeyVaultSource',
        SINGLE_BLOB
    ) AS SecretData;
    
    -- 使用动态获取的密码创建证书
    CREATE CERTIFICATE ZZZZ_Certificate
    ENCRYPTION BY PASSWORD = @certPassword
    WITH SUBJECT = 'ZZZ Information',
    EXPIRY_DATE = '20221231';
    

注意事项

  • 替换代码中的<你的Key Vault名称>和<你的密码秘密名称>为实际资源信息
  • 确保Key Vault中的秘密值符合SQL Server证书密码的复杂度要求
  • 该方案适用于Synapse专用SQL池,无服务器池需根据环境调整访问方式

内容的提问来源于stack exchange,提问作者Rajib

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 17:15:46