繁体   English   中英

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

[英]C# - Connect to remote SQL Server securely?

我知道连接到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函数:

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端口的情况下做到这一点? 因为据我所知,打开端口会导致被黑客入侵,因为所有人都可以远程连接到该服务器。

当我开始时,这个问题让我想起了我......

无论你做什么,都不要直接连接到数据库,因为要直接连接你必须在你的应用程序中存储数据库连接字符串(和密码)......你可能会混淆它,让它像你想的那样模糊,它不会有所作为......你基本上将钥匙交给了城堡。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM