2

我的目标是通过命令提示符悄悄地安装 SQL Server 2019 Express。

这是我想出的自定义安装的脚本(注意SETUP.exe是 SQL Server Express 安装文件):

SETUP.exe /Q /IACCEPTSQLSERVERLICENSETERMS /ACTION=install /FEATURES=SQL 
          /INSTANCENAME=MyInstance /SQLSVCACCOUNT="NT Authority\System" 
          /ADDCURRENTUSERASSQLADMIN /AGTSVCACCOUNT="NT Authority\System" 
          /SECURITYMODE=SQL /SAPWD="Pa$$w0rd" 
          /SQLTEMPDBDIR="C:\MSSQL\TempDB\\" /SQLUSERDBDIR="C:\MSSQL\Data\\" 
          /SQLUSERDBLOGDIR="C:\MSSQL\Log\\"

我想要做的是创建只有一个新的 SQL Server 身份验证登录的 SQL Server 实例。该/ADDCURRENTUSERASSQLADMIN参数告诉 SQL Server 自动使用当前用户作为管理员。如果我将此设置为 false,我必须使用/SQLSYSADMINACCOUNTS="Domain\User"which 然后将任何用户(如果存在)设置为具有 Windows 身份验证的 SQL Server 登录。

我想用命令看到的密码指定一个新的 SQL 登录名/SAPWD="Pa$$w0rd"。我确实获得了一个 SQL Server 登录名,该登录名是使用登录名sa和我设置的任何密码对 SQL Server 进行身份验证的,但是 Windows 用户仍然可以通过 Windows 身份验证获得完全访问权限。现在,我可以使用sa登录来删除 Windows 用户登录,但这似乎效率低下。

有没有办法用我的命令脚本来完成这个?

4

1 回答 1

3

您必须以系统管理员身份登录 Windows,但您可以选择安装用户以外的其他用户。“NT Authority\System”是一个安全的选择,因为该身份已经能够获得 SQL Server 实例的所有权。而且您应该使用服务帐户的默认值,因为没有像您的服务帐户这样的特权帐户会更加安全。

所以

.\SETUP.exe /Q /IACCEPTSQLSERVERLICENSETERMS /ACTION=install /FEATURES=SQL /INSTANCENAME=MyInstance /SECURITYMODE=SQL /SAPWD="Pa$$w0rd" /SQLSYSADMINACCOUNTS="NT Authority\System" /ADDCURRENTUSERASSQLADMIN=False
于 2020-07-15T20:04:33.127 回答