sql-server - .NET Core Entity Framework 让用户运行存储过程
问题描述
我有一个在 Windows 身份验证下运行的 ASP.NET Core Web API。我有使用连接字符串语法处理我的数据库的实体框架:
"data source=dbserver;initial catalog=IntranetDB;persist security info=True;Integrated Security=SSPI;"
我的 Web API 在特定的应用程序池和服务帐户下运行:sa_db
.
这sa_db
是数据库的所有者并已bulk load
启用。
API 中的一个过程是将.csv
文件保存到网络共享,然后调用 SP 打开该文件并对其进行处理。
问题
在进行了一些更改(例如将以下内容添加到 SP)之后,我们遇到了一些有关权限(访问被拒绝)的问题:
WITH EXECUTE AS OWNER
我们得到了例外:
System.Data.SqlClient.SqlException (0x80131904): You do not have permission to use the bulk load statement.
但是sa_db
启用了这个。
当我们使用 API 将 AD 用户的安全组添加到bulk load
启用的 SQL 数据库时,一切正常。
查看 SQL 的活动监视器,我只看到该sa_db
帐户。
为什么 SP 在 AD 用户下使用 API 而不是服务帐户运行?
解决方案
推荐阅读
- c++ - 如何修复 c++ 中的运行时错误,它通过了除 1 之外的所有测试用例
- javascript - 使用 Vue.js 实现“填充空白”组件
- javascript - WEB API 是如何在 JS 中实现的?
- macos - 如何使用覆盖以前的内容写入文件
- java - Checkstyle LineLength 配置不起作用
- angular - 如何在 Angular 中显示 @feathersjs-client 结果
- python-3.x - 如何更改此列表中元组每个元素中内容的位置?
- react-native - 在屏幕之间滑动不适用于反应原生,反应导航
- javascript - 如何使用 JavaScript API 在此处的地图中标记标记?
- javascript - 事件侦听器如何在单击时写入 console.log?