如何在C#项目中配置SQL Server跨设备访问的连接字符串
你搜索到的这种带User Id、Password参数的连接字符串,默认填写的是SQL Server专属的登录凭据,不是数据库所在计算机的Windows系统登录账号密码,具体规则如下:
- SQL Server支持两种身份验证模式,对应不同的连接字符串写法:
- SQL Server身份验证:就是你示例里的写法,
User Id和Password填的是你在SQL Server中手动创建的登录账号,这类账号是SQL Server自己管理的,和操作系统的账号体系完全独立,创建时需要给该账号分配对应数据库的读写等操作权限。常用的默认管理员账号sa就属于这类账号。 - Windows身份验证:不需要在连接字符串里填写账号密码,只需要添加参数
Integrated Security=True或Trusted_Connection=Yes,此时会自动使用运行你的Windows应用的操作系统账号的身份去访问SQL Server,你需要提前把这个Windows账号(可以是数据库所在电脑的本地账号,也可以是域账号)添加到SQL Server的登录列表中,并分配对应数据库的权限。
- 新手部署注意事项:
- 先确认SQL Server所在的电脑已经开启了远程连接权限、防火墙开放了SQL Server的默认1433端口(如果是命名实例还要开放1434 UDP端口)
- 不要直接使用
sa管理员账号作为应用的连接账号,建议单独创建仅拥有目标数据库所需最小权限的专属账号,降低安全风险 - 如果你一定要用数据库所在电脑的Windows系统账号作为登录凭据,需要将该账号添加到SQL Server的登录列表中,同时使用Windows身份验证的连接字符串格式,不能直接把系统账号密码填到你示例的
User Id、Password字段里。
内容的提问来源于stack exchange,提问作者Masi
相关产品推荐
相关产品推荐

