`
虚弱的java
  • 浏览: 159217 次
  • 性别: Icon_minigender_1
  • 来自: 哈尔滨
社区版块
存档分类
最新评论
阅读更多

--SQL Server 代理服务
--如何分析数据库异常行为
--1、查看数据库日志
--2、代理服务
--SQL Server代理可以实现数据库的自动化操作,根据定义自动地完成一些任务,比如定时对数据库进行备份、对数据库
--的错误操作发出警报并通知管理员等。
--作业是由SQL Server 代理程序按顺序执行的一系列指定的操作。
--建立一个执行备份功能的存储过程。
CREATE PROCEDURE Backup_TestData
as
DECLARE @strPath NVARCHAR(200)
--变量@strPath获取备份时间
set @strPath = CONVERT(nvarchar(19),GETDATE(),120)
--在时间中把":"替换掉 不显示 ":"
set @strPath = REPLACE(@strPath,':','')
--设置备份路径和名称
set @strPath = 'D:\bak\' + ' TestData ' +@strPath + '.bak'
backup database [TestData] TO DISK = @strPath WITH NOINIT
--以上代码在服务器D盘必须建立有名称为”bak“的文件夹,否则不能备份该数据
--1、在SQL Server代理中创建作业
 --1、新建作业
 --2、分析  3、确定
 --4、创建作业时间计划
 --5、管理作业
--2、开始作业:作业会立即执行
--3、启动作业:不会立即执行,需要等到设定的时间才会去执行
--索引:是一种依附于表或视图的结构,主要目的是加快从表或视图中检索数据的速度。
--索引的类型:
 --1、聚集索引:按表中数据的物理顺序排列数据,只能有一个聚集索引
 --2、非聚集索引:可以多个非聚集索引
 --3、唯一索引:用来保障索引键不包含重复的值
 --4、包含列索引:非聚集索引的一种,其扩展不仅包含键列,还包含非键列
 --5、全文索引:目的是在字符串数据中搜索复杂的词
 --6、空间索引:可以减少需要应用开销相对较大的空间操作的对象数
 --7、筛选过引:这是一种经过优化的非聚集索引,也属于特殊的索引。设计良好的筛选索引可以提高查询性能,减少索引维护开销,并降低索引存储开销
 --8、XML索引:
 --9、视图索引
 
--聚集索引:基于数据行的键值在表内排序和存储这些数据,每个表只能有一个聚集索引
--对列创建索引主要可以实现以下功能
 --1、用于经常使用的查询
 --2、提供高度唯一性
 --3、可用于范围查询
--1、设计聚集索引应考虑的查询注意事项 
 --1、使用运算符(如BETWEEN、>、>=、〈和<=)返回一系列值
 --2、返回大容量数据的结果集
 --3、使用JOIN子句检索的结果集,一般情况下,使该子句的多是外键列
 --4、使用ORDER BY 或GROUP BY 子句检索的结果集
--2、设计聚集索引应考虑的列注意事项
 --1、唯一或不包含重复的值
 --2、按顺序被访问
 --3、由于保证了列在表中的唯一性,所以定义为IDENTITY.
 --4、经常用于对表中检索到的数据进行排序
--3、聚集索引不适合的属性列
 --1、频繁更改的列
 --2、若干列或若干大型列的组合
--设计聚集索引
--1、设计非聚集索引应考虑的数据库注意事项
 --1、更新要求较低但包含大量数据的数据库或表,可尽量使用非聚集索引,可以提高查询性能。
 --2、联机事务处理应用程序和包含大量更新表的数据库,则尽量不要使用过多的索引。而且索引应该是窄的(列越少越好) 
--2、设计非聚索引应考虑的查询注意事项
 --1、使用JOIN或GROUP BY 子句,应为联接和分组操作中所涉及的列创建多个非聚集索引,为外键列创建一个聚索引。
 --2、不返回大型结果集的查询
 --3、包含经常在查询的搜索条件中出现的列
--3、设计非聚集索引应考虑的列注意事项
 --1、覆盖查询
 --2、大量非重复值
--4、设计唯一索引
 --1、优点:能确保定义的列的数据完整性,还能对查询优化器提供有用的附加信息
 --2、要保证数据行是惟一的
--5、筛选索引
 --1、与全表索引相比,提高了查询性能和计划质量
 --2、减少了索引维护开销
 --3、减少了索引存储开销
--SQL注入的安全防范
 --1、对应用程序接收的数据不做任何有关大小、类型或内容的假设。
 --2、测试输入数据的大小和类型,强制执行适当的限制有助于防止有意造成的缓冲区溢出。
 --3、测试字符串变量的内容,只接受所需的值。拒绝包含二进制数据、转义序列和注释字符的输入内容。这有助于防止脚本注入、防止
 -- 某些缓冲区溢出攻击
 --4、使用XML文档时,根据数据的架构对输入的所有数据进行验证
 --5、绝不直接使用用户输入内容来生成Transact_SQL语句
 --6、使用存储过程来验证用户输入
 --7、在多层环境中,所有数据都应该在验证之后才允许进入可信区域。未通过验证过程的数据应被拒绝,并向前一层返回一个错误
 --8、实现多层验证
 --9、绝不串联未验证的用户输入。字符串串联是脚本注入的主要输入点。
 --10、在可能据以构造文件名的字段中,不接受下列字符串:AUX,CLOCK$,COM1到COM8,CON,CONFIG$,LPT1到LPT8,NUL,以及PRN
--防止SQL注入的方法
 --1、使用类型安全的SQL参数
 --2、在存储过程中使用参数化输入
 --3、在动态SQL中使用参数集合
 --4、筛选输入。
 --5、LIKE子句。必须对通配字符进行转义
--检查代码中的SQL注入
 --1、使用QUOTENAME()和REPLACE()包装参数
 --2、由数据截断启用的注入

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics