域控制器安装Microsoft SQL 2012或其它版本问题

  活动目录

其实主要还是以下两点:服务器提升为域控制器之后原来系统相关账户会改变,会由域控制器接管,安装SQL时会有相应警告,在选择相关功能的时候就要赋予本地权限,如administrator。否则会有如下报错:

以下为网上找的:

在域控上其实是可以安装sql server,但是某些原因在后期的管理上超级麻烦,得不偿失:

(1)在域控制器上,无法在本地服务帐户或网络服务帐户下运行 SQL Server 服务。此时用的账户一般是域账户和本地系统账户;

(2)已经安装的sql server的服务器不能提升为域控,同理已经安装SQL server的域控不能降为成员服务器;

(3)SQL Server 安装程序不能在只读域控制器上创建安全组或设置 SQL Server 服务帐户

(4)在群集节点用作域控制器的情况下,不支持 SQL Server 故障转移群集实例。

安装时警告项:

微软官方文档:

https://docs.microsoft.com/zh-cn/sql/sql-server/install/database-engine-configuration-account-provisioning?view=sql-server-2014

单机安装的时候要注意的账户问题,以SQL2008为例:

SQL Server 2008 安装的环境如下:

工作组环境下的服务器
域环境下的域控制器
域环境下的成员服务器
群集环境

事实上从开发和应用的角度讲,很多devoloper很少接触基于域控制器的开发应用,所以他们的应用多半都跑在工作环境下的服务器上,IIS中会发布很多网站,服务器本身会承载数据库的角色等,此时会涉及到在工作组环境下安装SQL Server 2008。但微软平台企业级应用开发很少有域不参与的地方,比如微软的CRM,SharePoint,uc等产品的二次开发、.NET平台为了适应企业环境和组织架构在域模式下的应用开发等,此时会涉及到在域控制器、成员服务器和群集中安装SQL Server 2008。

无论是哪一种环境下安装SQL Server 2008,都会碰到为每个SQL Server 2008服务配置账户的问题。安装SQL Server 2008时会用的三个内置账户是Local Service 帐户,Network Service 帐户,Local System 帐户

Local Service 帐户:
本地服务帐户Local Service是一个内置帐户,与 Users 组的成员具有相同级别的资源和对象访问权限。如果有个别服务或进程的安全性受到威胁,则此有限访问权限有助于保护系统的安全性。以 Local Service 帐户身份运行的服务将以一个没有凭据的 Null 会话形式访问网络资源。请注意,SQL Server 或 SQL Server 代理服务不支持 Local Service 帐户。该帐户的实际名称为“NT AUTHORITY\LOCAL SERVICE”。

Network Service 帐户:
网络服务账户Network Service 帐户是一个内置帐户,比 Users 组的成员拥有更多的对资源和对象的访问权限。以 Network Service 帐户身份运行的服务将使用计算机帐户的凭据访问网络资源。该帐户的实际名称为“NT AUTHORITY\NETWORK SERVICE”。

Local System 帐户:
本地系统账户Local System 是一个具有高特权的内置帐户。它对本地系统有许多权限并作为网络上的计算机。该帐户的实际名称为“NT AUTHORITY\SYSTEM”。

将前两项修改为system 密码 空

安装完成,没有错误:

在工作组环境下安装SQL Server 2008:

使用的账户是:
本地用户帐户,内置账户(网络服务账户、本地系统账户等)。

在域环境上(涵盖成员服务器)安装 SQL Server 2008:

出于安全方面的考虑,Microsoft 建议不要将 SQL Server 2008 安装在域控制器上。 SQL Server 安装程序不会阻止在作为域控制器的计算机上进行安装,但存在以下限制:

在 Windows Server 2003 上,SQL Server 服务可在域帐户或本地系统帐户下运行。
在域控制器上,无法在本地服务帐户或网络服务帐户下运行 SQL Server 服务。此时用的账户一般是域账户和本地系统账户。
将 SQL Server 安装到计算机上之后,无法将此计算机从域成员更改为域控制器。 必须先卸载 SQL Server,然后才能将主机计算机更改为域控制器。
在群集节点用作域控制器的情况下,不支持 SQL Server 故障转移群集实例。
SQL Server 安装程序不能在只读域控制器上创建安全组或设置 SQL Server 服务帐户。 在这种情况下,安装将失败。
SQL账户详解:

用于启动和运行 SQL Server 的启动帐户可以是域用户帐户、本地用户帐户、托管服务帐户、虚拟帐户或内置系统帐户。 若要启动和运行 SQL Server 中的每项服务,这些服务都必须有一个在安装过程中配置的启动帐户。

组件 Windows Vista 和Windows Server 2008 Windows 7 和 Windows Server 2008 R2
数据库引擎 NETWORK SERVICE 虚拟帐户*
SQL Server 代理 NETWORK SERVICE 虚拟帐户*
SSAS NETWORK SERVICE 虚拟帐户*
SSIS NETWORK SERVICE 虚拟帐户*
SSRS NETWORK SERVICE 虚拟帐户*
SQL Server 分布式重播控制器 NETWORK SERVICE 虚拟帐户*
SQL Server 分布式重播客户端 NETWORK SERVICE 虚拟帐户*
FD 启动器(全文搜索) LOCAL SERVICE 虚拟帐户
SQL Server Browser LOCAL SERVICE LOCAL SERVICE
SQL Server VSS 编写器 LOCAL SYSTEM

LOCAL SYSTEM

Windows 7 和 Windows Server 2008 R2 有两种新类型的服务帐户:托管服务帐户 (MSA) 和虚拟帐户。托管服务帐户和虚拟帐户旨在向至关重要的应用程序(如 SQL Server)提供对其自己帐户的隔离,同时不再需要管理员手动管理这些帐户的服务主体名称 (SPN) 和凭据。 这就使得管理服务帐户用户、密码和 SPN 的过程变得简单得多。

   托管服务帐户 (MSA) 是一种由域控制器创建和管理的域帐户。 它分配给单个成员计算机以用于运行服务。 域控制器将自动管理密码。 您不能使用 MSA 登录到计算机,但计算机可以使用 MSA 来启动 Windows 服务。 MSA 可以向 Active Directory 注册服务主体名称 (SPN)。 MSA 的名称中有一个 $ 后缀,例如 DOMAIN\ACCOUNTNAME$ 在指定 MSA 时,请将密码留空。 因为将 MSA 分配给单个计算机,它不能用于 Windows 群集的不同节点。

域管理员必须先在 Active Directory 中创建 MSA,然后 SQL Server 安装程序才能将其用于 SQL Server 服务。

Windows Server 2008 R2 和 Windows 7 中的虚拟帐户是“托管的本地帐户”,此类帐户提供以下功能以简化服务管理。 虚拟帐户是自动管理的,并且虚拟帐户可以访问域环境中的网络。 如果在 Windows Server 2008 R2 或 Windows 7 上安装 SQL Server 时对服务帐户使用默认值,则将使用将实例名称用作服务名称的虚拟帐户,格式为 NT SERVICE\<SERVICENAME> 以虚拟帐户身份运行的服务通过使用计算机帐户的凭据(格式为 <domain_name>\<computer_name>$)访问网络资源。 当指定一个虚拟帐户以启动 SQL Server 时,应将密码留空。 如果虚拟帐户无法注册服务主体名称 (SPN),则手动注册该 SPN。 有关手动注册 SPN 的详细信息,请参阅为 Kerberos 连接注册服务主体名称

下表列出了虚拟帐户名称的示例。

服务 虚拟帐户名称
数据库引擎服务的默认实例 NT SERVICE\MSSQLSERVER
名为 PAYROLL 的数据库引擎服务的命名实例 NT SERVICE\MSSQL$PAYROLL
SQL Server 代理服务,位于以下默认实例上:SQL Server NT SERVICE\SQLSERVERAGENT
名为 PAYROLL 的 SQL Server 实例上的SQL Server 代理服务 NT SERVICE\SQLAGENT$PAYROLL

关于LOCAL SERVICE和LOCAL SYSTEM的大致区别:

LocalSystem是预设的拥有本机所有权限的本地账户,这个账户跟通常的用户账户没有任何关联,也没有用户名和密码之类的凭证。这个服务账户可以打开注册表的HKEY_LOCAL_MACHINE\Security键,当LocalSystem访问网络资源时,它是作为计算机的域账户使用的。

举例来说,以LocalSystem账户运行的服务主要有:WindowsUpdate Client、 Clipbook、Com+、DHCP Client、Messenger Service、Task Scheduler、Server Service、Workstation Service,还有Windows Installer。
Network Service账户是预设的拥有本机部分权限的本地账户,它能够以计算机的名义访问网络资源。但是他没有Local System 那么多的权限,以这个账户运行的服务会根据实际环境把访问凭据提交给远程的计算机。Network Service账户通常可以访问Network Service、Everyone组,还有认证用户有权限访问的资源。

举例来说,以Network Service账户运行的服务主要有:Distributed Transaction Coordinator、DNS Client、Performance Logs and Alerts,还有RPC Locator。
Local Service账户是预设的拥有最小权限的本地账户,并在网络凭证中具有匿名的身份。Local Service账户通常可以访问Local Service、Everyone组还有认证用户有权限访问的资源。

举例来说,以Local Service账户运行的服务主要有:Alerter、Remote Registry、Smart Card、SSDP,还有WebClient。
Local system :本地系统用户, 个人电脑通常选择这个用户
Network service :网络服务用户, 通常需要远程连接的都使用这个
Local Service :本地服务

Windows Server 2012 托管服务账号问题:

托管服务帐号:由于对运行的服务的域用户账号密码管理起来较麻烦,因此托管服务帐号(Managed Service Account)应运而生。所谓托管服务帐号,也即委托给操作系统进行管理的帐号。托管服务帐号(MSA)的密码由操作系统自动设定、维护,定期自动更新,并不需要管理员手工干预,对管理员来说,好像此帐号没有密码一样。

托管服务帐号(MSA)的作用

托管服务账号使得服务相互隔离,需要单独进行自动密码管理

减少服务中断,从而降低TCO

对于每服务或每服务器使用单一的托管服务账号(服务账号不能被多台计算机共享)

在Windows Server 2008 R2域功能级别上能更好的进行SPN管理(允许服务器对服务账号的重命名)

操作如下:

1.添加KDSrootKey

Add-KDSRootKey –EffectiveTime((Get-Date).AddHours(-10))

2.创建管理服务账号:

New-ADServiceAccount –Name SampleApp_SVR1–DNSHostname LON-DC1.Adatum.com -PrincipalsAllowedToRetrieveManagedPasswordLON-SVR1$

3.将管理服务账号分配至应用服务器

Add-ADComputerServiceAccount –identityLON-SVR1 –ServiceAccount SampleApp_SVR1

检查

Get-ADServiceAccount -Filter *

另一篇文章的参考:

https://www.cnblogs.com/mooncher/p/11057816.html