我使用VB.Net和SQL Express 2014开发了一个应用程序。我使用inno setup创建了一个安装程序。数据库文件(mdf和ldf)与安装程序捆绑在一起,并安装在具有“完全”访问权限的单独DB文件夹中。
连接字符串如下:
<add name="MyApp.My.MySettings.MyAppConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename="C:\Program Files\MyAppDB\MyApp.mdf";Integrated Security=True"
providerName="System.Data.SqlClient" />
我使用SQL Server作为本地实例应用程序,使用Windows身份验证而无需登录ID&amp; sql server的密码。
安装通常由具有管理员权限的IT部门的人员完成,但是当目标用户使用它时,由于用户没有权限,拒绝连接到服务器。如果用户是管理员,则应用程序可以连接到SQL Server。 (当然,SQL Server需要通过Windows资源管理器文件属性菜单手动提供“安全”权限 - 用户必须“加入”具有“完全控制”的允许用户列表。)
但在某些情况下,IT部门拒绝向用户提供“管理员”凭据,这会成为安全问题。
我尝试谷歌搜索一段时间并找到信息,但是无法解决app + sql server为没有安装应用程序的“非管理员”用户工作的问题..
希望我已经解释得足够了..
请帮我解决这个问题。
由于 红砖
答案 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%
目录。它专门针对所有用户通用的数据文件,因此默认情况下具有非常宽松的权限。
除非您需要在同一台计算机上执行多个每用户安装,否则它将是放置数据库文件的理想选择。