C# 启动sql server引擎权限

C# 启动sql server引擎权限,c#,sql-server-2008,.net-4.0,permissions,windows-services,C#,Sql Server 2008,.net 4.0,Permissions,Windows Services,我已经创建了一个启动\停止windows服务的windows应用程序 现在,当我试图从我的应用程序启动\停止sq服务器引擎时,它抛出了一个异常 当我以管理员身份运行应用程序时,它可以正常工作 现在我可以使用app.manifest以管理员身份运行我的应用程序,但问题是我的客户端没有管理员权限 我的应用程序需要什么类型的权限以及如何做到这一点 public static void start() { ServiceController sc = new Servic

我已经创建了一个启动\停止windows服务的windows应用程序
现在,当我试图从我的应用程序启动\停止sq服务器引擎时,它抛出了一个异常 当我以管理员身份运行应用程序时,它可以正常工作 现在我可以使用app.manifest以管理员身份运行我的应用程序,但问题是我的客户端没有管理员权限 我的应用程序需要什么类型的权限以及如何做到这一点

    public static void start()
    {
        ServiceController sc = new ServiceController(ServiceName, ServerName);
        sc.Start();
        sc.WaitForStatus(System.ServiceProcess.ServiceControllerStatus.Running);
    }

    public static void stop()
    {
        ServiceController sc = new ServiceController(ServiceName, ServerName);
        sc.Stop();
        sc.WaitForStatus(System.ServiceProcess.ServiceControllerStatus.Stopped);
    }

您的应用仅限于运行它的人的权限。如果他们没有做某事的权利,那么你的申请也不会。你说你的客户不是管理员,所以为了让你的应用程序为他们工作,管理员必须授予他们启动/停止服务所需的登录权限

需要发生以下情况之一:

  • 用户需要获得管理员权限
  • 管理员需要分配用户启动/停止权限 服务
  • 您的程序需要在备用凭据下运行
  • 对于第三个选项,这至少可以通过两种不同的方式完成:

  • 按住Shift键并右键单击一个应用程序,它将显示一个菜单 选项以另一用户身份运行。此选项要求有人 在每次运行应用程序时,都可以输入他们的凭据 这边走

  • 添加某人将其凭据输入您的帐户的功能 应用程序,然后在应用程序中模拟它们 启动/停止服务。这种方法将允许您 他们可以选择保存他们的凭证以备将来使用(不说 这是个好主意)


  • “第二个是最好的,但我怎么能做到呢?”阿姆沙默特问得好。如果谷歌搜索没有把你带到任何地方,那么你可能会问服务器故障。。。这更多的是他们的专业领域。