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

如何使用连接字符串创建U-SQL外部数据源?(凭据参数报错)

解决U-SQL创建Azure SQL DB数据源时的CREDENTIAL参数错误

你这是踩了U-SQL数据源配置的一个常见坑——CREDENTIAL参数的用法完全不符合要求。U-SQL不允许直接在CREDENTIAL字段里写用户名密码的拼接字符串,而是要求你先创建一个数据库范围的凭据,再在数据源定义里引用这个凭据的名称。另外你的PROVIDER_STRING也缺了服务器地址信息,这也是触发报错的原因之一。

正确的操作步骤:

  1. 先创建数据库凭据
    用CREATE CREDENTIAL语句单独存储敏感的登录信息,避免直接暴露在数据源代码里:

    CREATE CREDENTIAL MyAzureSQLDBCredential
    WITH IDENTITY = 'myUser',
    SECRET = 'myPasswd';
    
    • IDENTITY:填写你的Azure SQL DB登录用户名(SQL身份验证模式下直接写用户名即可)
    • SECRET:填写对应的登录密码
  2. 创建数据源并引用凭据
    补全PROVIDER_STRING里的服务器地址,然后在CREDENTIAL字段填写刚才创建的凭据名称:

    CREATE DATA SOURCE MyAzureSQLDBDataSource
    FROM AZURESQLDB
    WITH (
        PROVIDER_STRING = "Server=mySampleDB.database.windows.net;Database=mySampleDB;",
        CREDENTIAL = "MyAzureSQLDBCredential",
        REMOTABLE_TYPES = (bool, byte, sbyte, short, ushort, int, uint, long, ulong, decimal, float, double, string, DateTime)
    );
    

原代码报错的核心原因:

  • U-SQL的AZURESQLDB数据源对CREDENTIAL参数的要求是已存在的凭据名称,而非直接传入用户名密码的字符串,这是和普通ADO.NET连接字符串的关键区别。
  • 你的PROVIDER_STRING只指定了数据库名称,缺少服务器地址,导致U-SQL无法定位到目标Azure SQL DB实例。

按照这个修正后的代码重新执行,应该就能顺利创建数据源了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:38:57