其他用户无法连接迁移至SQL Server的Access数据库:SQL Server错误4060
解决多用户通过Access前端连接SQL Server的权限问题
核心排查方向:SQL Server身份验证与权限配置
- 确认SQL Server身份验证模式
打开SQL Server Management Studio(SSMS),右键目标服务器→属性→安全性,确保选中「SQL Server和Windows身份验证模式」。若修改,需重启SQL Server服务生效。 - 为用户Windows账号创建SQL登录并映射数据库权限
- 在SSMS的「安全性→登录名」右键→新建登录名
- 选择「Windows身份验证」,输入用户的域/本地账号(格式:
DOMAIN\Username或SERVERNAME\Username) - 切换到「用户映射」标签,勾选需要访问的目标数据库
- 在「数据库角色成员身份」中分配必要权限:至少勾选
db_datareader和db_datawriter(满足基础读写需求),避免过度授权 - 确认默认架构为
dbo或业务对应的架构,点击确定
修正ODBC File DNS配置问题
- 匹配Access位数的ODBC版本
若使用32位Access,必须用32位ODBC管理器配置/使用File DNS,路径为:C:\Windows\SysWOW64\odbcad32.exe。64位Access则用C:\Windows\System32\odbcad32.exe。确保分发给用户的File DNS是对应版本创建的。 - 验证DNS的身份验证设置
打开File DNS文件,确认连接选项中选中「使用Windows NT集成安全设置」,而非SQL Server身份验证。
检查SQL Server与Windows服务器配置
- 确认SQL Server服务账户权限
打开「服务」(services.msc),找到SQL Server服务,查看登录账户应为域账户或具有身份验证权限的账户,避免使用本地系统账户导致域用户验证失败。 - 启用登录审计排查具体失败原因
在SSMS中右键服务器→属性→安全性,将「登录审计」设为「失败的登录」,重启SQL Server服务。用户尝试连接后,查看「管理→SQL Server日志」,日志会明确标注拒绝原因(如登录名不存在、权限不足等)。
调整Access前端连接设置
- 确认链接表的连接字符串
在Access中,右键链接表→设计视图→属性,查看连接字符串是否包含Trusted_Connection=Yes或Integrated Security=SSPI,确保使用Windows集成身份验证。 - 确保File DNS路径可访问
若将File DNS放在共享文件夹,需确认所有用户对该文件夹有读取权限,Access前端能正确加载该DNS文件。
内容的提问来源于stack exchange,提问作者Hariharan Iyer
相关产品推荐
相关产品推荐

