Sql server SQL Server 2012:由于密码策略,sa以前已禁用。SQL用户也已锁定

Sql server SQL Server 2012:由于密码策略,sa以前已禁用。SQL用户也已锁定,sql-server,sql-server-2012,Sql Server,Sql Server 2012,由于审计员的建议,我禁用了SQL Server的sa用户 已创建具有完全权限的新sql用户 不幸的是,密码已过期,应用程序中的用户尝试多次失败,锁定了管理员用户(密码策略) 现在,我被困在: sa-已禁用 sql用户-锁定 我在SQL Server中只有一个本地Windows用户,该用户无权修改sa或SQL用户 谢天谢地,我们有一个物理集群,我们改变了位置,但我应该如何解决这个问题: 完全重新安装 仅安装SQL Server Management Studio 有什么好的快速技巧吗 提前感谢

由于审计员的建议,我禁用了SQL Server的
sa
用户

  • 已创建具有完全权限的新
    sql
    用户

  • 不幸的是,密码已过期,应用程序中的用户尝试多次失败,锁定了管理员用户(密码策略)

  • 现在,我被困在:

    • sa
      -已禁用
    • sql
      用户-锁定
    我在SQL Server中只有一个本地Windows用户,该用户无权修改
    sa
    SQL
    用户

    谢天谢地,我们有一个物理集群,我们改变了位置,但我应该如何解决这个问题:

  • 完全重新安装
  • 仅安装SQL Server Management Studio
  • 有什么好的快速技巧吗

  • 提前感谢

    我以前也遇到过这种情况,谢天谢地,当您拥有对物理服务器的本地管理员访问权限时,这很容易解决。基本上,您需要在单用户模式下启动服务,连接windows auth并更改密码或使用sysadmin创建临时帐户

    逐步说明:

    我以前也遇到过这种情况,谢天谢地,当您拥有对物理服务器的本地管理员访问权限时,这很容易解决。基本上,您需要在单用户模式下启动服务,连接windows auth并更改密码或使用sysadmin创建临时帐户

    逐步说明:

    进入新环境时,有时我会发现没有人知道密码的情况。一旦我是服务器上的本地管理员,我将使用以下过程。 以下是我用来获取访问权限的命令。第一个用于默认实例,第二个用于命名实例。 您可以创建一个批处理文件,我调用我的unlocksql.bat并将内容放入批处理文件中,然后在您被锁定的服务器上运行它。 默认实例:

    net stop mssqlserver 
    net start mssqlserver /mSQLCMD 
    sqlcmd -Q "if not exists(select * from sys.server_principals where name='BUILTIN\administrators') CREATE LOGIN [BUILTIN\administrators] FROM WINDOWS;EXEC master..sp_addsrvrolemember @loginame = N'BUILTIN\administrators', @rolename = N'sysadmin'" 
    net stop mssqlserver 
    net start mssqlserver 
    sqlcmd -Q "if exists( select * from fn_my_permissions(NULL, 'SERVER') where permission_name = 'CONTROL SERVER') print 'You are a sysadmin.'"
    
    net stop mssql$sqlexpress 
    net start mssql$sqlexpress /mSQLCMD 
    sqlcmd -S (local)\sqlexpress -Q "if not exists(select * from sys.server_principals where name='BUILTIN\administrators') CREATE LOGIN [BUILTIN\administrators] FROM WINDOWS;EXEC master..sp_addsrvrolemember @loginame = N'BUILTIN\administrators', @rolename = N'sysadmin'" 
    net stop mssql$sqlexpress
    net start mssql$sqlexpress
    sqlcmd -S (local)\sqlexpress -Q "if exists( select * from fn_my_permissions(NULL, 'SERVER') where permission_name = 'CONTROL SERVER') print 'You are a sysadmin.'"
    
    命名实例:

    net stop mssqlserver 
    net start mssqlserver /mSQLCMD 
    sqlcmd -Q "if not exists(select * from sys.server_principals where name='BUILTIN\administrators') CREATE LOGIN [BUILTIN\administrators] FROM WINDOWS;EXEC master..sp_addsrvrolemember @loginame = N'BUILTIN\administrators', @rolename = N'sysadmin'" 
    net stop mssqlserver 
    net start mssqlserver 
    sqlcmd -Q "if exists( select * from fn_my_permissions(NULL, 'SERVER') where permission_name = 'CONTROL SERVER') print 'You are a sysadmin.'"
    
    net stop mssql$sqlexpress 
    net start mssql$sqlexpress /mSQLCMD 
    sqlcmd -S (local)\sqlexpress -Q "if not exists(select * from sys.server_principals where name='BUILTIN\administrators') CREATE LOGIN [BUILTIN\administrators] FROM WINDOWS;EXEC master..sp_addsrvrolemember @loginame = N'BUILTIN\administrators', @rolename = N'sysadmin'" 
    net stop mssql$sqlexpress
    net start mssql$sqlexpress
    sqlcmd -S (local)\sqlexpress -Q "if exists( select * from fn_my_permissions(NULL, 'SERVER') where permission_name = 'CONTROL SERVER') print 'You are a sysadmin.'"
    

    进入一个新的环境,有时我会发现没有人知道密码的情况。一旦我是服务器上的本地管理员,我将使用以下过程。 以下是我用来获取访问权限的命令。第一个用于默认实例,第二个用于命名实例。 您可以创建一个批处理文件,我调用我的unlocksql.bat并将内容放入批处理文件中,然后在您被锁定的服务器上运行它。 默认实例:

    net stop mssqlserver 
    net start mssqlserver /mSQLCMD 
    sqlcmd -Q "if not exists(select * from sys.server_principals where name='BUILTIN\administrators') CREATE LOGIN [BUILTIN\administrators] FROM WINDOWS;EXEC master..sp_addsrvrolemember @loginame = N'BUILTIN\administrators', @rolename = N'sysadmin'" 
    net stop mssqlserver 
    net start mssqlserver 
    sqlcmd -Q "if exists( select * from fn_my_permissions(NULL, 'SERVER') where permission_name = 'CONTROL SERVER') print 'You are a sysadmin.'"
    
    net stop mssql$sqlexpress 
    net start mssql$sqlexpress /mSQLCMD 
    sqlcmd -S (local)\sqlexpress -Q "if not exists(select * from sys.server_principals where name='BUILTIN\administrators') CREATE LOGIN [BUILTIN\administrators] FROM WINDOWS;EXEC master..sp_addsrvrolemember @loginame = N'BUILTIN\administrators', @rolename = N'sysadmin'" 
    net stop mssql$sqlexpress
    net start mssql$sqlexpress
    sqlcmd -S (local)\sqlexpress -Q "if exists( select * from fn_my_permissions(NULL, 'SERVER') where permission_name = 'CONTROL SERVER') print 'You are a sysadmin.'"
    
    命名实例:

    net stop mssqlserver 
    net start mssqlserver /mSQLCMD 
    sqlcmd -Q "if not exists(select * from sys.server_principals where name='BUILTIN\administrators') CREATE LOGIN [BUILTIN\administrators] FROM WINDOWS;EXEC master..sp_addsrvrolemember @loginame = N'BUILTIN\administrators', @rolename = N'sysadmin'" 
    net stop mssqlserver 
    net start mssqlserver 
    sqlcmd -Q "if exists( select * from fn_my_permissions(NULL, 'SERVER') where permission_name = 'CONTROL SERVER') print 'You are a sysadmin.'"
    
    net stop mssql$sqlexpress 
    net start mssql$sqlexpress /mSQLCMD 
    sqlcmd -S (local)\sqlexpress -Q "if not exists(select * from sys.server_principals where name='BUILTIN\administrators') CREATE LOGIN [BUILTIN\administrators] FROM WINDOWS;EXEC master..sp_addsrvrolemember @loginame = N'BUILTIN\administrators', @rolename = N'sysadmin'" 
    net stop mssql$sqlexpress
    net start mssql$sqlexpress
    sqlcmd -S (local)\sqlexpress -Q "if exists( select * from fn_my_permissions(NULL, 'SERVER') where permission_name = 'CONTROL SERVER') print 'You are a sysadmin.'"