如何配置用非Windows管理员用户启动MSSQL 2005/2008的服务

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何配置用非Windows管理员用户启动MSSQL 2005/2008的服务相关的知识,希望对你有一定的参考价值。

方法一:

sp_password Null,'123,'sa'
把sa的密码设为“123”

执行成功后有“Command(s) completed successfully.” OK!

方法二:

第一步:打开 SQL2008 用管理员登录先,然后在服务名处右击选属性>安全性>右边的登录方式选项改为身份验证 确定!

第二步:选择安全性(展开)>登录名>双击sa>密码改成你需要的密码确定!

然后关掉SQL2008 或者 断开连接

第三步:点开始>程序>选择SQL2008>配置工具>打开 configuration manager>展开 SQL Server2005 网络配置
注意:选中MSSQLSERVER 如果没有 选中SQMEXPRESS
>TCP/IP 选项 >先启用 然后右键单击 > 属性 > Ip地址选项卡 > 把已禁用的选项全部改成已启用 > 然后把SQL2008 的服务重新启动一下!

情况二:忘记了密码,而且从sysadmin中删除了builtin\Administrators帐号,现在没其他人是sysadmin了

A:
SQL Server 2005/2008提供了针对该情况的更好的灾难恢复方法,无需侵入master数据库,不会对master数据库中的对象和数据(例如登陆帐号,证书等)造成损坏。Windows管理员组的成员现在当SQL Server以单用户模式启动(另外一个名称为维护模式)的情况下对SQL Server有了访问权限。

通过使用单用户模式,SQL Server 2005/2008避免了Windows管理员以sysadmin的身份在不被发现的情况下滥用权限。Windows管理员帐号能进行部分维护任务,例如安装补丁等。

要将SQL Server以单用户模式启动,您可以在命令行模式下增加“-m”参数。您也可以使用SQL Server配置管理员工具。它提供了对文件访问和其他权限的合适控制。要是用配置管理工具来恢复您的系统,您可以根据如下步骤:

1. 从菜单->SQL Server 2005->配置,打开配置管理工具(SQL Server Configuration Manager)
2. 停止您想要恢复的SQL Server实例
3. 找到“高级”标签,“启动参数”选项文本框中增加“;–m”
4. 点击“是”按钮,重新启动SQL Server实例
请注意:请确保在“;”和“-m”之间没有空格。注册参数解析器对类似的输入错误非常敏感。您可以在SQL Server的ERRORLOG文件内看到显示“SQL Server started in single-user mode.”
5. 在SQL Server实例以单用户模式启动后,Windows管理员帐号就能使用sqlcmd工具在Windows验证模式下连接SQL Server。您可以使用T-SQL命令诸如“sp_addsrvrolemember”来在sysadmin服务器角色中添加现有登录帐号或新创建一个登录帐号。范例语句如下:

EXEC sp_addsrvrolemember 'CONTOSO\Buck', 'sysadmin';

GO

6. 只要sysadmin访问权限被恢复,在配置管理中从启动参数中移除“;-m”参数,重新启动SQL Server实例

重要的安全提示:
a. 该过程应该只能被用于当没有其他方法使用特权帐号(例如sysadmin或等同角色)来访问系统的灾难恢复。
b. 该过程允许Windows管理员在SQL Server中有越权行为。它包含了可以被监测和检测出的明确的侵入行为,包含:
1. 在单用户模式下停止SQL Server并重启
2. 使用Windows帐号连接SQL Server
参考技术A 应该要赋予当前用户和管理员相当的权利吧

如何以管理员权限启动 Windows 服务

【中文标题】如何以管理员权限启动 Windows 服务【英文标题】:How to Start Windows Service As Administrator Privileges 【发布时间】:2015-06-13 11:40:22 【问题描述】:

我有自己的应用程序服务器,它是与 sql server 通信的 windows 服务,在某些情况下 sql server 服务已停止,所以我通过此代码说明

ServiceController sc = new ServiceController("MSSQL$SQLEXPRESS");
sc.Start();
sc.WaitForStatus(ServiceControllerStatus.Running);

但它需要管理员权限才能启动服务我如何以管理员身份启动我的窗口服务

【问题讨论】:

您是否尝试过以管理员身份运行启动服务的应用程序? 但两个应用程序都是 Windows 服务。如何以管理员身份运行我的 Windows 服务。 我只是在我的 app.manifest 文件中添加了这个标签 它可以工作... 然后把它写成答案,这样这个问题就不会被视为没有答案。 【参考方案1】:

让我们将所有内容分成步骤

    将文件“应用程序清单文件”添加到您的根目录 选择项目属性 在应用程序选项卡资源组中找到清单字段 粘贴新的清单文件名。可能是“app.manifest” 用此信息填写文件

根据您的具体情况,所有信息可能会有所不同。 More info

<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <assemblyIdentity version="1.0.0.0" name="MyApplication.app" />
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
        <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
      </requestedPrivileges>
      <applicationRequestMinimum>
        <defaultAssemblyRequest permissionSetReference="Custom" />
        <PermissionSet class="System.Security.PermissionSet" version="1" Unrestricted="true" ID="Custom" SameSite="site" />
      </applicationRequestMinimum>
    </security>
  </trustInfo>
</asmv1:assembly>

【讨论】:

【参考方案2】:

我只是在我的 app.manifest 文件中添加了这个标签 &lt;requestedExecutionLevel level="requireAdministrator" uiAccess="false" /&gt; 它有效...

【讨论】:

以上是关于如何配置用非Windows管理员用户启动MSSQL 2005/2008的服务的主要内容,如果未能解决你的问题,请参考以下文章

windows10 phpstudy怎么配置

tomcat9 用非root用户开机自启动

启明星系统安装教程(如何在windows2012里配置IIS)

MongoDB下配置用户权限

远程管理

由于登录失败,SQL Server 2012 无法启动