如何在没有Management Studio的情况下更改SQL Server授权模式

rkm*_*max 7 sql-server-2008 sql-server-2012

有没有办法在不使用SQL Server Management Studio的情况下更改SQL Server 2008或2012中的授权模式?

Aar*_*and 15

以下是Management Studio将身份验证模式从混合更改为仅用于Windows的操作:

EXEC xp_instance_regwrite 
    N'HKEY_LOCAL_MACHINE', 
    N'Software\Microsoft\MSSQLServer\MSSQLServer', 
    N'LoginMode', 
    REG_DWORD, 
    1;
Run Code Online (Sandbox Code Playgroud)

从Windows回到混合:

EXEC xp_instance_regwrite 
    N'HKEY_LOCAL_MACHINE', 
    N'Software\Microsoft\MSSQLServer\MSSQLServer', 
    N'LoginMode', 
    REG_DWORD, 
    2; -- only difference is right here
Run Code Online (Sandbox Code Playgroud)

您可以从可以连接到SQL Server的各种源调用相同的命令,例如SQLCMD,PowerShell,VBScript,C#等.或者您可以直接登录到服务器,导航到该注册表项,并手动更改值(如@ marc_s建议).

请注意,在所有情况下,您必须重新启动SQL Server才能使更改生效.您可以在重新启动时查看新错误日志中的前几个条目,以验证身份验证模式是否正确.它会说(混合):

date/time    Server    Authentication Mode is MIXED.
Run Code Online (Sandbox Code Playgroud)

  • 如果你自己在注册表中挖掘,那么@Mitch就是如此.但是,当使用`xp_instance_regwrite`时,它的全部意义在于它会将`...\MSSQLServer\MSSQLServer\...`转换为特定于实例的分支,例如`...\Microsoft SQL Server\{Instance名称}\MSSQLServer\...` - 如果您的案例不起作用,请演示. (2认同)