System.Data.SqlClient.SqlException:“用户 'sa' 登录失败。”
Posted
技术标签:
【中文标题】System.Data.SqlClient.SqlException:“用户 \'sa\' 登录失败。”【英文标题】:System.Data.SqlClient.SqlException: 'Login failed for user 'sa'.'System.Data.SqlClient.SqlException:“用户 'sa' 登录失败。” 【发布时间】:2021-05-14 19:44:12 【问题描述】:我正在学习我的编码课程,在 SQL 部分,是时候运行代码了。我收到此错误:
System.Data.SqlClient.SqlException: '用户 'sa' 登录失败
代码中标出了错误行。
namespace Zoo_With_SQL
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
SqlConnection sqlConnection;
public MainWindow()
InitializeComponent();
string connectionString = ConfigurationManager.ConnectionStrings["Zoo_With_SQL.Properties.Settings.MaydayDBConnectionString"].ConnectionString;
sqlConnection = new SqlConnection(connectionString);
ShowZoos();
private void ShowZoos()
string query = "select * from Zoo";
SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(query, sqlConnection);
using (sqlDataAdapter)
DataTable zooTable = new DataTable();
sqlDataAdapter.Fill(zooTable); // Error here!
// What should be shown
ZooList.DisplayMemberPath = "Location";
// Value when selected
ZooList.SelectedValuePath = "Id";
// The reference to use
ZooList.ItemsSource = zooTable.DefaultView;
我已经完成了强烈推荐的服务器身份验证类型更改。
【问题讨论】:
检查您的 sa 凭据 请分享连接字符串 如果您正在学习:一个教训是永远不要在您的任何生产代码中使用sa
帐户 - 只是不要这样做;该用户拥有太多权限,如果带有您的sa
密码的连接字符串泄漏,您的 SQL Server 可能会被劫持,并且其上的任何数据都会消失或删除或开放给操纵。 不要使用sa
- 不是来自代码 - 句号。
通过屏蔽敏感细节,用连接字符串更新您的问题。
【参考方案1】:
这可能是收到此错误的原因,如果您的 SQL Server 尚未配置为使用混合模式身份验证,它实际上并没有告诉您这未启用!。确保您已启用混合模式身份验证,以下是启用它的方法。
打开 SQL Server Management Studio 并右键单击服务器节点并选择属性。
现在转到安全选项卡并转到服务器认证区域。选择 SQL Server 和 Windows 身份验证模式。
单击确定关闭“服务器属性”窗口。
右键单击 SQL 实例并选择重新启动。
单击是重新启动 SQL 服务器。
【讨论】:
【参考方案2】:请检查您的连接字符串。请确保 SQL Server 在混合模式身份验证下运行。
混合模式认证: 转到开始 > 程序 > Microsoft SQL Server > 企业管理器 右键单击 SQL Server 实例名称 > 从上下文菜单中选择属性 > 在左侧导航栏中选择安全节点 在身份验证部分下,选择 SQL Server 和 Windows 身份验证 注意:服务器必须停止并重新启动才能生效
标准连接字符串:
Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;
命名实例的连接字符串:
Server=myServerName\myInstanceName;Database=myDataBase;User Id=myUsername;Password=myPassword;
【讨论】:
以上是关于System.Data.SqlClient.SqlException:“用户 'sa' 登录失败。”的主要内容,如果未能解决你的问题,请参考以下文章