Link Azure SQL 使用托管标识的数据库到数据工厂
Link Azure SQL Database to Data Factory using managed identity
我一直在尝试使用托管身份从 Azure 数据工厂连接到 Azure SQL 数据库。
步骤如下:
- 已创建链接服务并选择托管标识作为身份验证类型
- 在 SQL 服务器上,添加了为 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];
您可以在此处找到“[您的数据工厂名称]”
然后你在数据工厂中做任何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.Search 和 select SQL Azure 门户中的服务器
2.select 你并另存为管理员
3.click 按钮和 运行 两个 sql 在 sql 数据库中。
更多细节,可以参考这个documentation。
我一直在尝试使用托管身份从 Azure 数据工厂连接到 Azure SQL 数据库。
步骤如下:
- 已创建链接服务并选择托管标识作为身份验证类型
- 在 SQL 服务器上,添加了为 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];
您可以在此处找到“[您的数据工厂名称]”
然后你在数据工厂中做任何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.Search 和 select SQL Azure 门户中的服务器
2.select 你并另存为管理员
3.click 按钮和 运行 两个 sql 在 sql 数据库中。
更多细节,可以参考这个documentation。