SQL Server 2012:sa 之前被禁用,由于密码策略 sql 用户也被锁定

问题描述 投票:0回答:3
  1. 根据审核员的建议,我禁用了 SQL Server 的

    sa
    用户

  2. 已创建具有完全权限的新

    sql
    用户

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

现在,我陷入了困境:

  • sa
    - 禁用
  • sql
    用户 - 被锁定

我在 SQL Server 中只有一个本地 Windows 用户,无权修改

sa
sql
用户

感谢上帝,我们有一个物理集群,我们转移了,但我应该怎么解决这个问题:

  1. 完全重新安装
  2. 仅安装 SQL Server Management Studio
  3. 任何好的快速技巧

提前致谢

sql-server sql-server-2012
3个回答
1
投票

我以前也遇到过这种情况,幸运的是,当您拥有物理服务器的本地管理员访问权限时,很容易解决。 基本上,您需要以单用户模式启动服务,连接 Windows 身份验证,然后更改密码或使用 sysadmin 创建临时帐户。

分步说明: https://msdn.microsoft.com/en-us/library/dd207004.aspx


1
投票

进入一个新环境,有时我会发现没有人知道密码的情况。一旦我成为服务器上的本地管理员,我就会使用以下过程。

以下是我用来获取访问权限的命令。第一个用于默认实例,第二个用于命名实例。

您可以创建一个批处理文件,我将其命名为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.'"

0
投票

解决SA用户每天早上被锁的问题

  1. Sa 用户遵循 Windows 默认策略来锁定用户 SA。
  2. 重启MSSQL Server和Client,重启SA后即可登录MSSQL数据库。
  3. 前往

安全-->登录-->右键SA用户-->属性-->取消勾选 强制密码策略--确定

© www.soinside.com 2019 - 2024. All rights reserved.