Azure应用服务部署槽无法通过托管身份配置Azure SQL Entra ID认证
解决Azure Web应用部署槽(含斜杠)添加至Azure SQL Server的问题
方法1:使用托管身份的Object ID创建用户
部署槽的系统托管身份拥有独立的Object ID,直接通过这个ID创建用户可避开名称斜杠的解析问题:
- 进入Azure门户,找到目标Web应用部署槽,在身份→系统分配页面复制对象ID(一串GUID)。
- 在Azure SQL Server中执行以下SQL语句:
CREATE USER '<复制的对象ID>' FROM EXTERNAL PROVIDER;
- 按需给该用户分配权限,示例:
ALTER ROLE db_datareader ADD MEMBER '<复制的对象ID>'; ALTER ROLE db_datawriter ADD MEMBER '<复制的对象ID>';
方法2:转义含斜杠的身份名称
若要使用部署槽原名称(如appname/qa),需用双引号包裹名称,并确保SQL Server的QUOTED_IDENTIFIER选项处于开启状态(默认开启):
- 先验证选项状态:
SELECT @@OPTIONS & 256; -- 返回1表示开启,0则需执行下方语句开启 SET QUOTED_IDENTIFIER ON;
- 执行创建用户语句:
CREATE USER "appname/qa" FROM EXTERNAL PROVIDER;
验证用户创建结果
执行以下语句确认用户已成功添加:
SELECT name, type_desc FROM sys.database_principals WHERE name LIKE '%qa%';
内容的提问来源于stack exchange,提问作者S.D
相关产品推荐
相关产品推荐

