sqlserver

【转载】通过sqlserver日志恢复误删除的数据

霸气de小男生 提交于 2020-12-16 15:40:32
如果你已经急的焦头烂额,看到这篇文章的时候,请你换个坐姿,深呼吸几次,静下心来将这篇文章读完,也许你的问题迎刃而解。 我遇到的情况是这样的,网站被植入木马,盗取了我的web.config文件,web.config文件里面的数据库连接字符串没有加密,而我的数据库远程连接又没有做IP限制,黑客通过数据库客户端连上我的数据库后,将所有的表都Delete掉了,所以大家一定要有一个好习惯 将数据库连接字符串加密 或者 对远程访问数据库的IP作限制 。 因被黑客Delete掉所有数据的具体时间点我不清楚,所以我就用了一个工具 Log Explorer 来查看分析数据库日志,看具体是什么时候被Delete掉的(若你已经知道想要还原的时间点,就不用使用此工具啦),至于 Log Explorer 如何安装使用的,这里就不赘述了,去百度一搜一大堆,安装的时候Client和Server都选,然后安装中会有一步让你输入数据库的用户名和密码,其他不懂的就疯狂下一步吧。 通过Log Explorer工具我查看到被删除的时间点是:07-10 09:46:29.880,那我一会把数据还原到07-10 09:46:29.879就好咧 下面开始言归正传的进行恢复操作了 1、将数据库日志备份一下,用T-Sql语句 1 BACKUP LOG shua TO DISK= 'c:\shua_log.bak' WITH

通过sqlserver日志恢复误删除的数据

本小妞迷上赌 提交于 2020-12-16 13:56:01
如果你已经急的焦头烂额,看到这篇文章的时候,请你换个坐姿,深呼吸 几次 ,静下心来将这篇文章读完,也许你的问题迎刃而解。 我遇到的情况是这样的,网站被植入木马,盗取了我的web.config文件,web.config文件里面的数据库连接字符串没有加密,而我的数据库远程连接又没有做IP限制,黑客通过数据库客户端连上我的数据库后,将所有的表都Delete掉了,所以大家一定要有一个好习惯 将数据库连接字符串加密 或者 对远程访问数据库的IP作限制 。 因被黑客Delete掉所有数据的具体时间点我不清楚,所以我就用了一个工具 Log Explorer 来查看分析数据库日志,看具体是什么时候被Delete掉的( 若你已经知道想要还原的时间点,就不用使用此工具啦 ),至于 Log Explorer 如何安装使用的,这里就不赘述了,去百度一搜一大堆,安装的时候Client和Server都选,然后安装中会有一步让你输入数据库的用户名和密码,其他不懂的就疯狂下一步吧。 通过Log Explorer工具我查看到被删除的时间点是:07-10 09:46:29.880,那我一会把数据还原到 07-10 09:46:29.879就好咧 下面开始言归正传的进行恢复操作了 1、将数据库日志备份一下,用T-Sql语句 BACKUP LOG shua TO DISK='c:\shua_log.bak' 2

SQLServer 中有五种约束, Primary Key 约束、 Foreign Key 约束、 Unique 约束、 Default 约束和 Check 约束

家住魔仙堡 提交于 2020-12-16 12:29:55
    一直在关注软件设计方面,数据库方面就忽略了很多,最近在设计数据库时遇到了一些小麻烦,主要是数据库中约束和性能调优方面的应用,以前在学习 Sql Server 2000,还有后来的 Sql Server 2005 数据库时进行了总结,现在也暴露出了一些问题,由于学习的不深入,有一段时间不使用,就会忘记一些东西,所以为了让自己的知识更加牢固,还是要经常拿出来,看看。    那闲话少说进入我们今天的主题, SQLServer 中有五种约束, Primary Key 约束、 Foreign Key 约束、 Unique 约束、 Default 约束和 Check 约束,今天使用SQL Server2008 来演示下这几种约束的创建和使用的方法。 1 、 Primary Key 约束   在表中常有一列或多列的组合,其值能唯一标识表中的每一行。   这样的一列或多列成为表的主键(PrimaryKey)。一个表只能有一个主键,而且主键约束中的列不能为空值。只有主键列才能被作为其他表的外键所创建。   创建主键约束可以右键单击表,选择设计 。        选中要创建主键的列,然后单击上面的小钥匙。        也可以右键需要创建主键的列,然后单击小钥匙。      2 、 Foreign Key 约束   外键约束是用来加强两个表(主表和从表)的一列或多列数据之间的连接的

SqlServer无备份下恢复误删数据

蹲街弑〆低调 提交于 2020-12-16 12:25:46
网上很多方法,都是针对至少有一次备份的情况下进行数据恢复的,没有备份就基本上只能找数据恢复公司了。本章将通过日志来恢复误删的数据,若是日志文件都没有了,那就真的玩大了 1、解压进入ApexSQLLog2014文件夹,运行ApexSQLLog.exe文件 生成的脚本文件就是误删的数据了 至此找回误删数据的所有步骤已经完成 来源: oschina 链接: https://my.oschina.net/u/2494395/blog/3032366

sqlserver 误删数据库恢复

只谈情不闲聊 提交于 2020-12-16 12:21:27
本文为转载 原文:https://blog.csdn.net/xwnxwn/article/details/53537841 由于长时间从事企业应用系统开发,前往用户现场升级、调试系统是比较常做的事情,但是就在周一,由于同事的失误在毫无知觉的情况下误删了生产数据库几乎所有的数据。当我发现的那一刻,感觉头发都立起来了,心想这他娘的是要领 盒饭 了。   为了迅速恢复系统的使用,在当时的情况下立即关闭相关系统的访问入口,前后共花费不到五分钟。经过思考,立即将最近的一次备份文件进行还原,从而保证了系统的正常运行,但是此举也 不可避免 的可能会丢掉某些数据。   另外事情已经发生,如何做才能为以后的数据恢复做准备呢,以下是自己的观点: 1、务必冷静,事情已经发生不可慌乱。 2、立即查看当前时间,最好能够精确到秒,并做记录。 3、应立即向直接上级反映此事,不可隐瞒,防止事态扩大。 4、如果权限允许,应当立即停止相关应用,防止有新的数据写入数据库。   事后一直不放心,当下次再出现这种情况的时候,该如何对数据进行数据恢复,尽可能的减小损失呢(做不到完全避免损失),因此从网上查阅大量资料并进行整理。   之前生产数据库使用的是sqlserver2000和2005,当时也出现过误删数据的情况,用Log Exlorer For SQL很轻松就恢复了数据,现在数据库升级到2012了这个工具无法使用了

MySql之建表思想

一笑奈何 提交于 2020-12-16 11:02:55
1.数据库主表、从表、主键、外键 (1)主键:一般情况下,满足第一范式的表都有一个主键Primary key,用于唯一标识的数据库表中的一个字段。 外键:外键是相对于数据库设计中的参考完整性而言,它与主键之间是彼此依赖的关系。假设现在有两个表,产品分类表ProductCategory(主键c_id)和产品表Product(主键p_id),每类产品都属于一个分类。那么如果产品信息表肯定需要参考产品分类表进行定义。因为如果没有产品分类表,又何谈产品分类呢。所以产品信息表Product(从表)需要引用ProductCategory(主表)中的主键CategoryId 进行产品分类定义,Product表中引用c_id的字段就是外键。 (从表的外键与主表的主键相对应以此用来和主表相关联或者说主表的主键作为从表的外键以此来和从表相关联) 主表:被作为外键引用的表。 从表:有外键引用的表。 外键可以为空值(除了SQLServer等一些数据库),但如果有值的话一定是你参照的那个主表中的主键值。换句话说,从表需要用到主表的属性,没有主表就没有从表。 当删除数据时 : delete cascade (级联删除):如果主表中的一个主键被删除了,那么引用该主键的从表中的所有记录也被删除。 restrict (删除限制):如果主表中的一个主键被删除时,当从表中仍有外键引用这个主键时

Linux 下连接sqlserver(下)

╄→尐↘猪︶ㄣ 提交于 2020-12-16 04:27:08
基于ODBC开发 odbc接口环境部署好后,就可以开始进行开发了,微软官网有详细的接口操作说明,但odbc接口还是太底层,操作起来比较麻烦,这里采用数据库的封装类soci来实现快速开发。 soci是一个用C++封装的数据库访问库,通过“前端(应用程序)/核心/后端(数据库适配)”模式支持firebird,mysql,sqlite3,oracle,postgresql,odbc多种数据库 安装soci git clone https://github.com/SOCI/soci.git cd soci mkdir build cd build cmake .. make sudo make install 注: 一般来说采用默认项就可以了,也可以为cmake附带一些参数: 1、设置自定义的安装目录: -DCMAKE_INSTALL_PREFIX=$HOME/local 2、指定自定义编译程序: -DCMAKE_C_COMPILER=gcc 3、如果你用的较高版本的编译器,默认是开启c++11的,如果cmake得到的SOCI_CXX11为OFF,你可以自行开启 -DSOCI_CXX11=ON, 否则后续使用时将会出现不一致的情况。 执行cmake 你会得到以下信息: 编码 这里有两种方案 1、使用dsn文件进行连接 2、指定连接字符串进行连接 soci是基于odbc进行封装的

通用中小企业架构设计思路

情到浓时终转凉″ 提交于 2020-12-13 21:42:13
在上一篇博客中( 浅谈微服务架构与.Net Core )我们谈到微服务架构与.Net Core,大体分析了下微服务架构的一些优势,在这边博客中,将谈谈架构设计的一些理念。 首先,代码要清晰明了,层次分明,模块间耦合度要尽量降低,代码并不是要越复杂越好,可能有人认为,代码写得越复杂、算法用的越高级,让别人越看不懂就越牛X,我认为恰恰相反,代码越是简单就能实现的就尽量做到简单,能用几行代码能解决的问题何必要写个牛X的算法来实现呢? 其次,能做到通用的模块需要单独提炼出来,不要在其他业务逻辑中混合实现,不利于代码的移植,以下简单说说常用的一些模块或逻辑需要特别注意的; 1、底层数据访问需要单独写,当我们数据库发生变化,比如我们这个项目用的是SqlServer,下个项目用的是MySQL,要做到很轻易的切换; 2、缓存管理需要独立出来,通常,我们开发都会用到缓存技术,能把缓存用好,系统性能也会得到大幅度提升,简单举个例子,比如我们开发一个系统,用的是MemoryCache,但是系统上线运行一段时间后,并发量增大,本机缓存已经不能满足需求,我们需要对系统进行集群,减轻服务器压力,此时需要用Redis来管理缓存,那么此时,我们需要做到很容易的从MemoryCache切换到Redis来做缓存管理,我们只需要改一下配置文件就能达到预期效果而不必在用到缓存的地方一个一个的去改再编译上线。 3

代码生成工具更新--快速生成Winform框架的界面项目

泪湿孤枕 提交于 2020-12-13 02:57:24
在之前版本的代码生成工具Database2Sharp中,由于代码生成都是考虑Winform和Web通用的目的,因此Winform界面或者Web界面都是单独生成的,在工具中生成相应的界面后,复制到项目里面去使用即可。由于我们Winform的界面是模块化的方式独立开发,因此对某些表来说,我们可以独立开发模块,那么它的Winform窗体界面也应该是在独立的项目上,开发完毕后,我们在主体框架里面通过菜单动态配置即可加入到系统中使用的。 1、框架插件化回顾 在Winform开发框架的程序中,实现基于插件化的应用,如下所示。 通过在权限系统中的预先的配置,独立模块的窗体可以进行动态加载解析,就能实现插件模块的热插拔功能了。实际插件化框架的菜单配置界面效果如下所示。 下图是菜单管理里面的 “Winform窗体类型” 信息的具体内容。 通过动态的配置,可以实现模块的独立开发,动态整合的插件化特性,非常适合我们企业的分工开发,从而提高开发效率。 2、快速生成Winform框架的界面项目 前面我们介绍了,通过模块化的独立来发,动态整合,可以提高开发效率。 其实就是我们对大型项目的横向切割,把大型项目分为各个独立的模块,给不同的开发人员或者团队进行开发,可以极大提高效率,也减少对某个人的过度依赖,也同时可以极大提高开发效率。 在实际使用中

献给 Dapper 使用者的一份礼物

点点圈 提交于 2020-12-12 02:44:00
本文作者:FreeSql & CSRedis 本文链接:https://www.cnblogs.com/kellynic/p/14095502.html 1|0写在开头 众所周知 Dapper 是 .NET 下最轻最快的 ORM,它是喜欢写 SQL 码农的福音,相对于 SqlHelper 它更加方便,据统计 10个 .NETer 有 9个 用过 Dapper 。 由于 .NET 环境的特殊,对 Lambda 表达式树的喜爱,于是市面上有很多出现了基于 Dapper 的轻量级 ORM ,它们几乎都有共同特点,让 Dapper 支持 Lambda 表达式树,写起来顺畅如流水。 今天介绍一款本身功能已经很强大的 ORM ,他提供一个隐藏得比较深的 API 功能,使用起来和 Dapper 没什么两样。 2|0了解 Lambda 表达式树 这要先从 Lambda 表达式开始说起,词语中少了一个 树 字,差别甚大。 表达式,如下各种语法糖骚操作,产生的 IL 一模一样: //使用C# 2.0中的匿名方法获取字符串长度 Func< string , int > strLength = delegate ( string str) { return str.Length; }; Console.WriteLine(strLength( "Hello World!" )); /