使用托管身份将Azure SQL数据库链接到Data Factory

问题描述

我一直在尝试使用托管身份从Azure数据工厂连接到Azure SQL数据库。
步骤如下:

  1. 创建链接服务并选择托管身份作为身份验证类型
  2. 在SQL Server上,添加了为Azure数据工厂创建的托管身份作为Active Directory管理员

以上步骤使我可以对数据库执行所有数据操作。其实这就是问题所在。我想限制SQL数据库中授予Azure数据工厂的特权。

首先,请让我知道我是否已按照正确的步骤来设置托管身份。然后,如何限制特权,因为我不希望数据工厂在SQL数据库上执行任何DDL。

解决方法

正如Raunak所说,您应该将角色更改为db_datareader。

在您的sql数据库中,运行以下sql:

CREATE USER [your Data Factory name] FROM EXTERNAL PROVIDER;

和此sql:

ALTER ROLE db_datareader ADD MEMBER [your Data Factory name];

您可以在此处找到“ [您的数据工厂名称]” enter image description here

然后您在Data Factory中执行任何DDL操作,就会出现如下错误:

"errorCode": "2200","message": "ErrorCode=SqlOperationFailed,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=A database operation failed. Please search error to get more details.,Source=Microsoft.DataTransfer.ClientLibrary,''Type=System.Data.SqlClient.SqlException,Message=The INSERT permission was denied on the object

更新

1。在Azure门户中搜索并选择SQL Server enter image description here

2。选择您并另存为管理员 enter image description here

3。单击按钮,然后在sql数据库中运行两个sql。 enter image description here

更多详细信息,您可以参考此documentation

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...