【发布时间】:2012-01-26 21:26:35
【问题描述】:
我开发了一个程序 (C#),它使用以下代码创建 SQL 数据库:
string SQLCreation = "IF NOT EXISTS (SELECT * FROM master..sysdatabases WHERE Name = 'x') CREATE DATABASE x";
SqlConnection PublicSQLDBCreationConnection = new SqlConnection(connectionString);
SqlCommand PublicSQLDBCreation = new SqlCommand(SQLCreation, PublicSQLDBCreationConnection);
try
{
PublicSQLDBCreationConnection.Open();
PublicSQLDBCreation.ExecuteNonQuery();
PublicSQLDBCreationConnection.Close();
}
//'then creates a table and so on
现在我想要一个客户端应用程序连接到这个数据库(通过 LAN)而不使用 IP 或计算机名称。这怎么可能?是否有可能这样做并拥有一个数据集而不提及 IP Adr。还是计算机名?
附:别担心,我简化了我的代码只是为了你的观点,我确保不会发生 SQL 注入或其他尝试。 另外我不得不说我没有提到服务器名或 IP 的原因是我想在许多网络上大规模部署我的应用程序
【问题讨论】:
-
如何告诉它服务器在哪里? “在第一个路由器左转,然后连接到右边的第三个 CAT-5 插孔?”
-
没有 IP 或主机名就无法连接是什么意思? AFAIK 您必须将其中之一作为连接字符串的一部分。
-
如果不指定它在哪台机器上,就无法直接连接到数据库。根据您的要求,您可以使用服务层或其他东西进行一些间接操作;您不能指定 IP 或计算机名称的要求/原因是什么?
-
我发现您正在编写代码来创建数据库而不了解如何连接到 SQL Server,这很可怕。
-
另外,看起来您可能会使用可能具有提升权限的帐户受到 SQL 注入攻击。
标签: c# sql visual-studio connection lan