SQL 外部表连接字符串

若要访问 SQL 外部表,请在创建过程中提供连接字符串。 该连接字符串指定了要访问的资源及其身份验证信息。 支持的 SQL 外部表类型包括 Microsoft SQL Server、MySQL、PostgreSQL 和 Cosmos DB。 若要了解如何管理 SQL 外部表,请参阅创建和更改 SQL 外部表

无论使用的身份验证方法如何,主体都必须对 SQL 数据库具有必要的权限才能执行所需的操作。 有关详细信息,请参阅 SQL 数据库所需的权限

支持的身份验证方法(按数据库类型)

下表显示了充当外部表源的每种数据库类型支持的身份验证方法。

身份验证方法 SQL Server PostgreSQL MySQL Cosmos DB
Microsoft Entra 集成(模拟)
托管的标识
用户名和密码

Microsoft Entra 集成(模拟)

使用此身份验证方法,用户或应用程序通过 Microsoft Entra ID 向 Azure 数据资源管理器进行身份验证,然后使用同一令牌访问 SQL Server 网络终结点。 此方法仅支持 SQL Server。

要使用 Microsoft Entra 集成身份验证(模拟),请将 ;Authentication="Active Directory Integrated" 添加到 SQL 连接字符串。

示例
"Server=tcp:myserver.database.chinacloudapi.cn,1433;Authentication=Active Directory Integrated;Initial Catalog=mydatabase;"

托管标识

Azure 数据资源管理器代表托管标识发出请求,并使用其标识访问资源。 此方法仅支持 SQL Server。

对于系统分配的托管标识,请将 ;Authentication="Active Directory Managed Identity" 追加到连接字符串。 对于用户分配的托管标识,请将 ;Authentication="Active Directory Managed Identity";User Id={object_id} 追加到连接字符串。

托管标识类型 示例
系统分配 "Server=tcp:myserver.database.chinacloudapi.cn,1433;Authentication="Active Directory Managed Identity";Initial Catalog=mydatabase;"
用户分配 "Server=tcp:myserver.database.chinacloudapi.cn,1433;Authentication="Active Directory Managed Identity";User Id=9ca5bb85-1c1f-44c3-b33a-0dfcc7ec5f6b;Initial Catalog=mydatabase;"

用户名和密码

若要使用用户名和密码进行身份验证,请在连接字符串中设置关键字 User IDPassword

示例
"Server=tcp:myserver.database.chinacloudapi.cn,1433;User Id={myUserId};Password={myPlaceholderPassword};Initial Catalog=mydatabase;"

SQL 数据库所需的权限

对于所有身份验证方法,主体(或托管标识)必须对 SQL 数据库具有必要的权限才能执行请求的操作:

  • 读取权限:表 SELECT
  • 写入权限:
    • 现有表:表 UPDATE 和 INSERT
    • 新表:CREATE、UPDATE 和 INSERT