Azure功能具有托管身份访问Azure SQL特定模式的功能

发布于 2025-01-23 08:49:22 字数 594 浏览 0 评论 0 原文

我的方案遵循

  • Azure函数(有多个功能应用程序),并具有可用的托管身份。
  • 每个功能应用程序都可以访问Azure SQL中的特定模式。这是具有多个架构方案的单个数据库。

根据Microsoft文档,我必须执行以下操作以允许函数应用程序访问DB。

CREATE USER [<identity-name>] FROM EXTERNAL PROVIDER;
ALTER ROLE db_datareader ADD MEMBER [<identity-name>];
ALTER ROLE db_datawriter ADD MEMBER [<identity-name>];
ALTER ROLE db_ddladmin ADD MEMBER [<identity-name>];
GO

这很好,但是问题是它可以访问整个数据库。我想允许每个功能应用程序在数据库中仅访问单个架构。特别是在执行EF核心迁移时会产生问题。 How can we give specific function app to completely manage specific schema of database.

My scenario is following

  • Azure Functions ( There are multiple function apps) with Managed Identity available.
  • Each Function App has access to specific schema in Azure SQL. This is Single Database with Multiple schema scenario.

As per microsoft document I have to do following to allow function app access to DB.

CREATE USER [<identity-name>] FROM EXTERNAL PROVIDER;
ALTER ROLE db_datareader ADD MEMBER [<identity-name>];
ALTER ROLE db_datawriter ADD MEMBER [<identity-name>];
ALTER ROLE db_ddladmin ADD MEMBER [<identity-name>];
GO

This works fine but issue is that it can access entire database. I want to allow each function app to access only single schema within a database. Specially it creates issue when EF core migration is being executed. How can we give specific function app to completely manage specific schema of database.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

猛虎独行 2025-01-30 08:49:22

您可以使用 db_datawriter 等,而不是 db_datareader

请参阅以下示例:

grant On on schema :: humanResources to cole_humanresourcesdept;

其中 humanResources 是一个架构, prole_humanResources -deptept 是用户。

请参阅

Instead of db_datareader, db_datawriter, etc. role assignment, you can use GRANT permission statement.

Refer the below example:

GRANT SELECT ON SCHEMA::HumanResources TO role_HumanResourcesDept;

where HumanResources is a schema and role_HumanResourcesDept is the user.

Refer https://learn.microsoft.com/en-us/sql/relational-databases/security/permissions-database-engine?view=sql-server-ver15

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文