我知道它很容易连接到SQL Server数据库但是我不确定我应该如何远程同时进行...以安全的方式。< / p>
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的?因为据我所知,打开端口会导致被黑客攻击,因为所有人都可以远程连接到该服务器。
答案 0 :(得分:5)
当我开始时,这个问题让我想起了我......
无论你做什么,都不要直接连接到数据库,因为要直接连接,你必须在你的应用程序中存储数据库连接字符串(和密码)...你可以对它进行模糊处理,使它像你喜欢的那样模糊不清,它不会有所作为......你基本上将钥匙交给城堡。
相反,您需要开始学习如何创建API,对客户端进行身份验证并代表客户端连接到数据层,执行请求的操作,然后返回结果。
就个人而言,我会使用ASP.NET Web API,这是适合这项工作的工具。它有一个轻微的学习曲线,但只是坚持下去,你会在几天内弄明白。从这些PluralSight videos开始,它们是一个很好的资源,完全免费,感谢微软,它们肯定会让你忙碌!