Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.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# 在安装应用程序并以普通用户身份运行时创建.sql DB架构_C#_Sql_Database_Visual Studio 2008_Privileges - Fatal编程技术网

C# 在安装应用程序并以普通用户身份运行时创建.sql DB架构

C# 在安装应用程序并以普通用户身份运行时创建.sql DB架构,c#,sql,database,visual-studio-2008,privileges,C#,Sql,Database,Visual Studio 2008,Privileges,我有一个应用程序,它执行一个.sql文件,其中包含在sql Express 2008中创建和设置DB的命令。 它以管理员权限安装和执行,但我也希望普通用户能够执行应用程序并访问数据库。 我使用的是VisualStudio2008的普通安装项目,而不是ClickOnce 我怎么能这么做 编辑:我遇到了部分解决问题的方法,但管理员仍然需要以管理员权限执行该脚本,以便可以将普通用户添加到SQL Express。是否可以在不使用管理员用户的情况下执行类似操作?在安装应用程序时,您应该只运行一次创建和设置

我有一个应用程序,它执行一个.sql文件,其中包含在sql Express 2008中创建和设置DB的命令。 它以管理员权限安装和执行,但我也希望普通用户能够执行应用程序并访问数据库。 我使用的是VisualStudio2008的普通安装项目,而不是ClickOnce

我怎么能这么做


编辑:我遇到了部分解决问题的方法,但管理员仍然需要以管理员权限执行该脚本,以便可以将普通用户添加到SQL Express。是否可以在不使用管理员用户的情况下执行类似操作?

在安装应用程序时,您应该只运行一次创建和设置DB的脚本。安装程序只能由管理员运行。这是有原因的。。。
“普通用户”应该只能运行应用程序和访问数据库。

除非您的“普通”用户具有创建数据库权限,否则您就被塞满了。@TonyHopkinson我怎么做?也许这会解决问题(GRIN)那么你需要以管理员身份登录并给他们…是的,就是这样:我找到了blogs.msdn.com/b/sqlexpress/archive/2010/02/23/…这个链接,这个脚本正是我想要的。问题是管理员需要运行脚本,这样才能添加普通用户。有没有可能做一个变通办法,让这个脚本在普通用户第一次启动应用程序时执行?或者至少,做一些允许普通用户访问该数据库的操作,我不确定我是否完全理解这些步骤。假设已经创建了数据库,还可以创建用户并授予权限。或者,您可以使用SSPI(按照MS的建议),普通用户应该能够访问它。从安全角度来看,控制谁能够访问您的资源以及如何访问资源是非常重要的。您应该能够控制访问,而不是允许任何人根据自己的意愿获得访问权限。我最终使用的是package.xml中的/sqlsysadmincounts=“Builtin\Users”,因此我们在SQL Express 2008中将用户添加到Sysadmin帐户中。您将Sysadmin角色授予了所有普通用户!这不是一个好主意!如果以管理员身份运行安装程序,则应具有向数据库授予用户权限所需的所有特权。如果您不以管理员身份运行,我认为您没有创建数据库所需的任何权限,那么解决方案是什么?我意识到在XP中,这是无效的,因为.mdf文件将位于Administrator文件夹中的ProgramsFile中,普通用户无法访问这些文件。。