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' 登录失败。”的主要内容,如果未能解决你的问题,请参考以下文章