C# - 安全地连接到远程 SQL Server

本文关键字:SQL Server 连接 安全 | 更新日期: 2023-09-27 18:34:31

我知道连接到SQL Server数据库很容易,但是我不确定我应该如何远程同时进行。

SqlConnection sqlConnection = this.sqlcon();
SqlCommand insertCommand = new SqlCommand("use " + database_telecaster.ToString() + " SELECT Top 1  sid from dbo.Item order by sid desc", sqlConnection);
sqlConnection.Open();
insertCommand.ExecuteNonQuery();
SqlDataReader reader = insertCommand.ExecuteReader();
while (reader.Read())
{
    MaxSid = (reader.GetInt64(0) + 100).ToString();
}
reader.Close();
sqlConnection.Close();

SQL Server con function :

public SqlConnection sqlcon()
{
    var doc = new XPathDocument(Application.StartupPath + "/DBConn.xml");
    var navigator = doc.CreateNavigator();
    var serverName = navigator.SelectSingleNode("//appsettings/servername");
    var username = navigator.SelectSingleNode("//appsettings/username");
    var password = navigator.SelectSingleNode("//appsettings/password");
    var database = navigator.SelectSingleNode("//appsettings/database");
    object[] objArray = new object[] {
            serverName , database, username , password 
    };
    return new SqlConnection(string.Format("Data Source={0};Initial Catalog={1};User Id={2};Password={3};MultipleActiveResultSets = True", objArray));
}

假设 SQL Server 在安装了 Windows VPS 上,我将把我的软件提供给不同的人,我希望他们都访问该 SQL 服务器......如何在不打开 SQL Server 端口的情况下做到这一点?因为据我所知,打开端口会导致被黑客入侵,因为所有人都可以远程连接到该服务器。

C# - 安全地连接到远程 SQL Server

这个问题让我

想起了刚开始的时候......

无论您做什么,都不要直接连接到数据库,因为要直接连接,您必须将数据库连接字符串(和密码(存储在应用程序中...你可以混淆它,让它像你喜欢的那样晦涩难懂,它不会有什么不同......你基本上会交出城堡的钥匙。

相反,您需要开始学习如何创建一个 API,该 API 对客户端进行身份验证并代表客户端连接到数据层,执行请求的操作,然后返回结果。

就个人而言,我会使用 ASP.NET Web API,它是这项工作的正确工具。它有一个轻微的学习曲线,但只要坚持下去,你就会在几天内弄清楚。从这些 PluralSight 视频开始,它们是一个很好的资源,由于Microsoft,它们完全免费,它们肯定会让您忙碌!