李家宏|博客

SQLSERVER不常见的问题总结

发布时间:11个月前热度: 180 ℃评论数:
           @lijiahong                2019-06-04T01:50:40.000000Z        字数 1645        阅读 14

SQLSERVER不常见的问题总结

sqlserver 问题 解决方法


sqlserver 2005以上质疑数据库一般修复方法

方法:(此步骤为下方语句无法修复再使用)
1:重新建立一个,一样的数据库,路径名称,文件都一样哈;
2:关掉`SQLSERVER`服务;
3:把源文件`复制`过来;
4:开启`SQLSERVER`服务;
5:执行下面的1到4步。OK

--1、修改数据库为紧急模式

ALTER DATABASE 数据库名 SET EMERGENCY

--2、使数据库变为单用户模式

ALTER DATABASE 数据库名 SET SINGLE_USER

--3、修复数据库日志重新生成,此命令检查的分配,结构,逻辑完整性和所有数据库中的对象错误。当您指定REPAIR_ALLOW_DATA_LOSS作为DBCC CHECKDB命令参数,该程序将检查和修复报告的错误。但是,这些修复可能会导致一些数据丢失

DBCC CheckDB (数据库名, REPAIR_ALLOW_DATA_LOSS)

--4、使数据库变回为多用户模式

ALTER DATABASE 数据库名 SET MULTI_USER

SQLSERVER误删Windows登录用户验证方式使用Windows身份验证的解决方法

假设我们遇到很糟糕的情况
sa被禁用,服务器身份验证为Windows身份验证模式,Windows登录用户被删,没有其他sysadmin角色的登录用户

image_1dbupbiu01d641djp1btoidgg369.png-143.7kB

步骤一:
停掉SQLSERVER:在命令行 net stop mssqlserver
image_1dbupc19e1aa11vsd1kcj1iv51ejsm.png-60.5kB

步骤二:
转到SQLSERVER的安装目录
image_1dbupdp2a108t1rdo164l13rbkj233.png-38.8kB

然后加上/m /f   参数
image_1dbupde83ai121sgul1b1nolo26.png-34.5kB

步骤四:打开SSMS
这时候一定不要马上进行连接,需要点击取消,然后在左上角的点击新建查询,这个步骤跟DAC(专用管理员连接)的步骤是一样的
image_1dbupev2oi0h1gnc18t81fht1nt93g.png-31.1kB
image_1dbupf25lnej103i1f9pji21o3a3t.png-36.5kB

你会发现用Windows登录用户这时候可以登录

步骤五:执行下面的SQL脚本

--打开xp_cmdshell功能EXEC [sys].[sp_configure] @configname = 'xp_cmdshell', -- varchar(35)    @configvalue = 1 -- intRECONFIGURE WITH override--修改注册表,修改身份验证为混合验证方式USE [master]GOEXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'LoginMode', REG_DWORD, 2GO--创建登录名CREATE LOGIN [计算机名\Administrator] FROM WINDOWS;GO--赋予登录名的权限为sysadminUSE masterGOEXEC [sys].[sp_addsrvrolemember] @loginame = '计算机名\Administrator', -- sysname    @rolename = sysadmin -- sysname--关闭xp_cmdshell功能EXEC [sys].[sp_configure] @configname = 'xp_cmdshell', -- varchar(35)    @configvalue = 0 -- intRECONFIGURE WITH override

步骤六:关掉SQLSERVER,再重新启动
image_1dbupgfvtt1lvbqpj4ubsvf14a.png-40.7kB

打开SQLSERVER配置管理器,启动SQLSERVER
image_1dbuphle511td17421s9f19pv17up5q.png-12.6kB

步骤七:登录SQLSERVER
回到SSMS,可以看到这时候恢复正常了
image_1dbupjar4oa3hmrrms1ng6a8j87.png-123.1kB

帐户当前被锁定,所以用户 sa 登录失败。系统管理员无法将该帐户解锁 解决方法

如果短时间内不停连接,就会被SQL SERVER误认为是这是攻击,会将此账号锁定。
要用windows身份验证登录,在查询分析器里输入:

ALTER LOGIN sa ENABLE ;GOALTER LOGIN sa WITH PASSWORD = 'password' unlock, check_policy = off,check_expiration = off ;GO
其中password中修改成sa的登陆密码。

SQLSERVER,不常见的问题总结

手机扫码访问