使用SQL Server 2014数据库的安装程序Win Forms应用程序

时间:2016-01-07 12:11:15

标签: sql-server vb.net deployment

我使用VB.Net和SQL Express 2014开发了一个应用程序。我使用inno setup创建了一个安装程序。数据库文件(mdf和ldf)与安装程序捆绑在一起,并安装在具有“完全”访问权限的单独DB文件夹中。

连接字符串如下:

 <add name="MyApp.My.MySettings.MyAppConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=&quot;C:\Program Files\MyAppDB\MyApp.mdf&quot;;Integrated Security=True"
            providerName="System.Data.SqlClient" />

我使用SQL Server作为本地实例应用程序,使用Windows身份验证而无需登录ID&amp; sql server的密码。

安装通常由具有管理员权限的IT部门的人员完成,但是当目标用户使用它时,由于用户没有权限,拒绝连接到服务器。如果用户是管理员,则应用程序可以连接到SQL Server。 (当然,SQL Server需要通过Windows资源管理器文件属性菜单手动提供“安全”权限 - 用户必须“加入”具有“完全控制”的允许用户列表。)

但在某些情况下,IT部门拒绝向用户提供“管理员”凭据,这会成为安全问题。

我尝试谷歌搜索一段时间并找到信息,但是无法解决app + sql server为没有安装应用程序的“非管理员”用户工作的问题..

希望我已经解释得足够了..

请帮我解决这个问题。

由于 红砖

2 个答案:

答案 0 :(得分:0)

您是否尝试将安装目录更改为user / appdata?即使只是为了DB。 这可以解决任何冲突的用户权限。 您可以在inno设置中为这些位置使用以下环境变量。

C:\Users\user>echo %userprofile%
C:\Users\user

C:\Users\user>echo %appdata%
C:\Users\user\AppData\Roaming

答案 1 :(得分:0)

将数据库文件放入Program Files目录在概念上是不正确的。后者适用于未更改的内容,例如应用程序&#39;二进制文件。数据库可能会不断更改,即使在100%只读模式下使用,也会有一些变化。

当我不久前在我自己的项目中遇到同样的问题时,我已经确定了%ALLUSERSPROFILE%目录。它专门针对所有用户通用的数据文件,因此默认情况下具有非常宽松的权限。

除非您需要在同一台计算机上执行多个每用户安装,否则它将是放置数据库文件的理想选择。