在无人参与的情况下安装SQL Server 2014 Express时如何启用sa登录?

时间:2018-10-15 19:02:20

标签: sql-server sql-server-express

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

基本上,它是在创建命令行并运行设置。

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

命令行已经包含/SECURITY MODE=SQL。我可以创建一个SQL登录名并成功登录,以便部分问题可以正常工作。

我的问题是,尽管我可以在sa中看到sys.server_principals,但将其标记为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”。

1 个答案:

答案 0 :(得分:1)

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

有关更多信息,请查看本文https://docs.microsoft.com/en-us/sql/database-engine/install-windows/install-sql-server-from-the-command-prompt?view=sql-server-2017