Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# I';我试图理解创建一个使用SQL Server数据库的程序的概念,但是我';我习惯于只在本地机器上运行它_C#_Sql_Sql Server_.net 3.5 - Fatal编程技术网

C# I';我试图理解创建一个使用SQL Server数据库的程序的概念,但是我';我习惯于只在本地机器上运行它

C# I';我试图理解创建一个使用SQL Server数据库的程序的概念,但是我';我习惯于只在本地机器上运行它,c#,sql,sql-server,.net-3.5,C#,Sql,Sql Server,.net 3.5,如何使程序使用SQL Server数据库,并使该程序在安装它的任何计算机上工作 如果您一直关注我今天提出的一系列问题,您就会知道我正在为中小型企业制作一个开源的免费帮助台套件 客户端应用程序。 客户端应用程序是Windows窗体应用程序。在每个客户机上安装和首次启动时,它将询问主帮助台服务器的地址 服务器。 在这里,我计划处理所有传入的帮助请求,向IT人员展示它们,并为客户端应用程序提供WCF服务 我的困境在于,我知道如何让程序在我的本地机器上运行;但是我真的很困惑,如何让每个想在Windows

如何使程序使用SQL Server数据库,并使该程序在安装它的任何计算机上工作

如果您一直关注我今天提出的一系列问题,您就会知道我正在为中小型企业制作一个开源的免费帮助台套件

  • 客户端应用程序。 客户端应用程序是Windows窗体应用程序。在每个客户机上安装和首次启动时,它将询问主帮助台服务器的地址

  • 服务器。 在这里,我计划处理所有传入的帮助请求,向IT人员展示它们,并为客户端应用程序提供WCF服务

  • 我的困境在于,我知道如何让程序在我的本地机器上运行;但是我真的很困惑,如何让每个想在Windows服务器上下载并安装服务器的人都能使用它

    当用户想要安装“服务器”应用程序时,我是否需要制作一个SQL脚本并在MS SQL server上运行它

    非常感谢大家宝贵的时间和努力来教我。它真的很受欢迎

    编辑:
    为了澄清,每个企业的服务器都将与我完全分离。我将无法接触到他们,他们也不会以任何方式与我联系。(我不知道我为什么要澄清这一点:P)


    因此,假设没有安装数据库服务器;我能做什么?

    您的安装应用程序应该:

  • 获取SQL Server名称、用户名(具有创建数据库的适当权限)和密码

  • 可以使用本地安装的命令行工具运行SQL脚本,也可以使用SMO(例如)从代码中运行SQL脚本,对用户提供的具有提供凭据的服务器运行SQL脚本


  • 顺便说一句,在您花费精力编写开源帮助热线之前,您是否检查了什么是开源帮助热线?另外,您的安装应用程序应该:

  • 获取SQL Server名称、用户名(具有创建数据库的适当权限)和密码

  • 可以使用本地安装的命令行工具运行SQL脚本,也可以使用SMO(例如)从代码中运行SQL脚本,对用户提供的具有提供凭据的服务器运行SQL脚本


  • 顺便说一句,在您花费精力编写开源帮助热线之前,您是否检查了什么是开源帮助热线?另外,

    您希望在您的计算机上运行一个SQL Server实例,还是在每个客户的服务器上运行一个?如果是后者,则需要在每台服务器上安装一个SQL Server实例—从(免费但有限且非开源的)SQL Server Express到更昂贵的SKU。您可以在服务器安装包中包含此步骤;MSI安装使捆绑MSSQL安装变得非常容易

    然后,您需要在实例上删除一个模式,可能还有数据。您可以在安装程序中执行此操作,也可以在应用程序安装过程中执行此操作。服务器上可能已经安装了一个或多个SQL Server实例,并且您的安装后步骤应该允许用户指定在哪个实例上安装您的部件

    然后,在客户端应用程序中包含一个数据库配置块。要求用户(或在客户端安装时从配置文件中获取)服务器连接详细信息,如服务器名称和身份验证信息,以允许无人参与或未经授权的客户端安装


    关于身份验证的一个词-由于您似乎正在构建基于Windows的工具,因此尽可能使用Windows集成(域管理)身份验证。不要参与存储登录名的业务,而是依赖现有域来管理登录名。一个好的策略是使用active directory组来管理访问。授予对SQL Server中特定组的访问权限,并将组成员资格推迟到Active Directory本身。如果您无法获得执行此操作所需的访问权限,请向AD用户帐户本身授予权限。避免创建SQL Server登录,使用SQL Server登录会导致一些可能的安全问题

    您希望在您的计算机上运行一个SQL Server实例,还是在每个客户的服务器上运行一个?如果是后者,则需要在每台服务器上安装一个SQL Server实例—从(免费但有限且非开源的)SQL Server Express到更昂贵的SKU。您可以在服务器安装包中包含此步骤;MSI安装使捆绑MSSQL安装变得非常容易

    然后,您需要在实例上删除一个模式,可能还有数据。您可以在安装程序中执行此操作,也可以在应用程序安装过程中执行此操作。服务器上可能已经安装了一个或多个SQL Server实例,并且您的安装后步骤应该允许用户指定在哪个实例上安装您的部件

    然后,在客户端应用程序中包含一个数据库配置块。要求用户(或在客户端安装时从配置文件中获取)服务器连接详细信息,如服务器名称和身份验证信息,以允许无人参与或未经授权的客户端安装

    关于身份验证的一个词-由于您似乎正在构建基于Windows的工具,因此尽可能使用Windows集成(域管理)身份验证。不要参与存储登录名的业务,而是依赖现有域来管理登录名。一个好的策略是使用active directory组来管理访问。授予对SQL Server中特定组的访问权限,并将组成员资格推迟到Active Directory本身。如果您无法获得执行此操作所需的访问权限,请向AD用户帐户本身授予权限。避免创建SQL Server登录,u