Skip to main content
 首页 » 编程设计

sql-server中如何在无人值守安装 SQL Server 2014 Express 时启用 sa 登录

2026年04月06日55bonelee

我有一个在无人值守模式下运行 SQL Server 2014 Express 安装程序的安装程序。

基本上,它创建一个命令行并运行安装程序。

我的问题是我需要能够使用 SQL Server 身份验证以管理员身份连接到已安装的实例。

命令行已包含/SECURITY MODE=SQL。我可以创建 SQL 登录并成功登录,因此该问题的部分工作正常。

我的问题是,虽然我可以在 sys.server_principals 中看到 sa,但它被标记为 is_disabled,并且我无法使用它。

在无人值守运行 SQL Server 2014 安装时,有没有办法传递命令行参数来启用 sa,以便我可以使用它成功登录?

或者其他登录方式,如果这样更容易的话。

我需要的是一个sql_login,在无人值守模式下运行安装程序后,我可以用它作为数据库管理员连接到数据库,而不考虑登录的 Windows 用户的权限.

完整的命令行参数:

/QS /IACCEPTSQLSERVERLICENSETERMS /ACTION=Install /FEATURES=SQL  
    /INSTANCENAME=SQLEXPRESS /SAPWD="SQLSVCPASSWORD" 

如果我使用管理员帐户登录 Windows,我可以使用 Windows 身份验证连接到数据库。然后我可以创建一个普通的 SQL Server 登录名。这样,我就可以使用 SQL Server 身份验证和该帐户登录。

所以我确定数据库处于混合模式。还有这个:

Exec xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'LoginMode' 

返回“2”。

我的问题是我需要用户无需成为 Windows 管理员即可运行该软件。软件需要执行的部分操作是在实例内删除和创建数据库。

所以我需要 SQL 管理员权限,而不依赖于具有提升权限的 Windows 用户。

===

我使用的安装工具是使用 XML 文件进行配置的,其中包含用于构建和运行 Windows Installer 包命令行的 LUA 脚本。在嵌套语言和各种级别的转义之间,我没有注意到“/SECURITYMODE=SQL”参数被注释掉,并且不包含在命令行中。

将其包含在命令行中后,将启用“sa”用户。

TL;RD 如果您希望启用“sa”用户,请在安装后在命令行中包含“/SECURITYMODE=SQL”。

请您参考如下方法:

使用/SECURITYMODE=SQL时,还需要指定/SAPWD。我不确定,但是如果您不指定密码,它将默认禁用。

看看这篇文章 https://learn.microsoft.com/en-us/sql/database-engine/install-windows/install-sql-server-from-the-command-prompt?view=sql-server-2017了解更多信息。