我有一个在无人参与模式下运行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”。
答案 0 :(得分:1)
使用/SAPWD
时也需要指定/SECURITYMODE=SQL
。我不确定,但是如果您不指定密码,默认情况下它将被禁用。