You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为Entity Framework创建权限受限的登录名与用户问题咨询

Entity Framework 受限权限账号配置方案

1. SQL Server 账号创建与权限分配

1.1 创建登录名

CREATE LOGIN [EF_Limited_Login] 
WITH PASSWORD = N'设置你的强密码', 
DEFAULT_DATABASE = [你的业务数据库名称], 
CHECK_EXPIRATION = OFF, 
CHECK_POLICY = ON;
GO

1.2 创建数据库映射用户

切换到你的业务数据库执行以下语句:

USE [你的业务数据库名称];
GO
CREATE USER [EF_Limited_User] FOR LOGIN [EF_Limited_Login];
GO

1.3 分配基础CRUD权限

以下权限可以满足EF普通增删改查操作需求:

-- 授予查询权限
GRANT SELECT ON SCHEMA::[dbo] TO [EF_Limited_User];
GO
-- 授予插入权限
GRANT INSERT ON SCHEMA::[dbo] TO [EF_Limited_User];
GO
-- 授予更新权限
GRANT UPDATE ON SCHEMA::[dbo] TO [EF_Limited_User];
GO
-- 授予删除权限
GRANT DELETE ON SCHEMA::[dbo] TO [EF_Limited_User];
GO

如果你的业务使用非dbo的自定义Schema,将上述语句中的[dbo]替换为对应Schema名称即可

1.4 额外权限(按需开启)

如果你的项目使用EF Code First迁移功能,需要额外授予以下权限,无迁移需求可以跳过:

-- 授予架构修改权限
GRANT ALTER ON SCHEMA::[dbo] TO [EF_Limited_User];
GO
-- 授予创建表权限
GRANT CREATE TABLE TO [EF_Limited_User];
GO

如果项目用到了自定义存储过程,新增执行权限即可:

GRANT EXECUTE ON SCHEMA::[dbo] TO [EF_Limited_User];
GO

2. EF 连接字符串配置

2.1 EF6(.NET Framework)配置

修改配置文件中的连接字符串:

<connectionStrings>
  <add name="你的DbContext名称" 
       connectionString="Data Source=SQL服务器地址;Initial Catalog=你的业务数据库名称;User ID=EF_Limited_Login;Password=你设置的强密码;Integrated Security=False;" 
       providerName="System.Data.SqlClient" />
</connectionStrings>

2.2 EF Core(.NET Core/.NET 5+)配置

修改appsettings.json中的连接配置:

{
  "ConnectionStrings": {
    "你的DbContext名称": "Server=SQL服务器地址;Database=你的业务数据库名称;User Id=EF_Limited_Login;Password=你设置的强密码;TrustServerCertificate=True;"
  }
}

3. 权限验证

配置完成后可依次做以下校验:

  • 执行业务常规增删改查操作,确认功能正常
  • 尝试执行删除表、修改服务器配置等高权限操作,确认抛出权限不足错误,符合安全预期

内容的提问来源于stack exchange,提问作者user3166024

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 04:45:03