无法连接用户数据库求助:登录失败报错及连接字符串示例
解决SQL Server Windows身份验证登录失败及数据库连接问题
核心报错信息
无法打开登录请求的数据库“MyBase”。登录失败。用户'domain\User'登录失败。
你的连接字符串采用Windows身份验证模式(Trusted_Connection=True),但当前域用户domain\User既无法完成SQL Server登录验证,也没有目标数据库的访问权限,且该问题覆盖所有用户数据库。
你的连接字符串代码:
string connectionString ="Server=localhost;Database=StudentRate;Trusted_Connection=True;Encrypt=False;";
排查与解决步骤
1. 确认SQL Server服务状态
- 按下Win+R输入
services.msc打开服务列表,找到SQL Server (MSSQLSERVER)(或你的自定义实例名),确保服务处于正在运行状态。 - 若未启动,右键点击选择“启动”,并将启动类型设为“自动”,避免重启后服务中断。
2. 检查登录账户的SQL Server权限
结合你提供的登录及用户属性信息,重点验证:
- 登录账户
domain\User是否已在SQL Server中创建对应登录名:
打开SQL Server Management Studio(SSMS)连接本地实例,展开安全性 > 登录名,确认domain\User存在。 - 服务器级别权限:
右键该登录名→属性→服务器角色,至少保留public权限(默认配置),测试阶段可临时勾选sysadmin排查权限问题(生产环境谨慎操作)。 - 数据库映射权限:
进入用户映射标签,勾选需要连接的数据库(如StudentRate或MyBase),为该数据库用户分配必要角色(如db_datareader、db_datawriter或db_owner)。
3. 修正连接字符串的数据库名称
报错中提到的目标数据库是MyBase,但你的连接字符串指定的是StudentRate,需:
- 确认实际要连接的数据库名称,修正拼写错误。
- 若需连接
MyBase,将连接字符串中的Database=StudentRate改为Database=MyBase。
4. 检查SQL Server身份验证模式
- 打开SSMS,右键服务器实例→属性→安全性,确认服务器身份验证模式为SQL Server和Windows身份验证模式(仅用Windows验证时需确保账户权限配置正确)。
5. 验证本地运行权限
- 尝试用SSMS以
domain\User身份连接本地实例,若失败则检查:- 当前机器是否已加入域,或
domain\User是否属于本地管理员组。 - 运行应用程序的进程是否以
domain\User身份启动(右键应用→属性→兼容性,可勾选“以管理员身份运行”测试)。
- 当前机器是否已加入域,或
内容的提问来源于stack exchange,提问作者Артем Липник
相关产品推荐
相关产品推荐

