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

时间:2020-08-25 16:35:07

标签: azure azure-sql-database azure-data-factory azure-managed-identity

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

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

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

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

1 个答案:

答案 0 :(得分:1)

正如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

相关问题