Sql server SQL Server 2012:由于密码策略,sa以前已禁用。SQL用户也已锁定
由于审计员的建议,我禁用了SQL Server的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 有什么好的快速技巧吗 提前感谢
sa
用户
sql
用户
-已禁用sa
用户-锁定sql
sa
或SQL
用户
谢天谢地,我们有一个物理集群,我们改变了位置,但我应该如何解决这个问题:
提前感谢我以前也遇到过这种情况,谢天谢地,当您拥有对物理服务器的本地管理员访问权限时,这很容易解决。基本上,您需要在单用户模式下启动服务,连接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.'"