ASP.Net MVC连接远程SQL Server异常:创建表权限不足及SSPI错误求助
问题解答
一、为什么连接后触发创建表权限错误?
你的连接字符串已经成功连接到SQL Server了,错误提示里的Installing Hangfire SQL objects说明你的项目集成了Hangfire——这个任务调度工具默认会在项目启动时自动检查数据库中的Hangfire架构/相关对象:
- 检测到
[HangFire]架构已存在,但可能部分依赖的表、存储过程缺失; - 它会尝试自动补全这些对象,但你的
dev_user账号仅拥有访问现有Hangfire架构的权限,没有在该架构下创建/修改对象的权限,因此触发CREATE TABLE permission denied错误。
二、Integrated Security设为true/SSPI时的SSPI上下文错误解决
这个错误属于Windows身份验证的Kerberos配置问题,常见修复方式:
- 检查SQL Server的SPN注册:如果SQL Server运行在域账户下,用域管理员权限执行
setspn -L 域\SQL服务账户名,确认是否包含MSSQLSvc/服务器全名:1433和MSSQLSvc/服务器IP:1433;如果没有,执行setspn -A MSSQLSvc/服务器全名:1433 域\SQL服务账户名添加对应SPN; - 确认域环境信任:客户端机器和SQL Server机器必须在同一个域,或已建立双向域信任;工作组环境无法使用Windows身份验证,需换回SQL账户方式;
- 清理Kerberos缓存与检查DNS:在客户端执行
klist purge清空Kerberos缓存,同时检查DNS能否正确解析SQL Server的全名,避免IP与主机名不匹配导致SPN验证失败; - 配置服务账户权限:确保运行SQL Server的域账户拥有“读取服务Principal名称”的权限,可在AD用户属性的「安全」选项卡中配置。
内容的提问来源于stack exchange,提问作者user2300947
相关产品推荐
相关产品推荐

