Azure SQL 外部表连接字符串

适用于:✅Azure 数据资源管理器

若要访问 SQL 外部表,请在创建过程中提供连接字符串。 该连接字符串指定了要访问的资源及其身份验证信息。

支持的 SQL 外部表类型:

  • Azure SQL 数据库
  • Azure Database for MySQL
  • Azure Database for PostgreSQL
  • Azure Cosmos DB。

若要了解如何管理 SQL 外部表,请参阅创建和更改 SQL 外部表

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

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

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

注意

如果可能,首选的身份验证方法是托管标识。

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

Microsoft Entra 集成(模拟)

使用此身份验证方法,用户或应用程序通过 Microsoft Entra ID 进行身份验证,然后使用相同的令牌访问 SQL Server 网络终结点。 SQL Server 和 Cosmos DB 支持此方法。

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

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

托管的标识

查询环境代表托管标识发出请求,并使用其标识访问资源。 SQL Server 和 Cosmos DB 支持此方法。

对于系统分配的托管标识,请将 ;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=00aa00aa-bb11-cc22-dd33-44ee44ee44ee;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