原版的:http://blog.csdn.net/dba_huangzj/article/details/38756693,专题文件夹:http://blog.csdn.net/dba_huangzj/article/details/37906349

未经作者同意。不论什么人不得以“原创”形式公布,也不得已用于商业用途,本人不负责不论什么法律责任。

前一篇:http://blog.csdn.net/dba_huangzj/article/details/38705965

前言:

暴力攻击(Brute-force attack)是通过差点儿全部可能的字符组合尝试破解password。或者使用一个字典表。包括差点儿全部可能的password来实现password破解的方法。假设你的password非常easy,那么非常快就会被破解。

所以,測试password是非常重要的。

实现:

1. 首先查找SQL password没有使用强制password策略的:

  1. SELECT name, is_disabled
  2. FROM sys.sql_logins
  3. WHERE is_policy_checked = 0
  4. ORDER BY name;

2. 然后对这些登录使用强password策略:

  1. ALTER LOGIN Fred WITH CHECK_POLICY = ON,CHECK_EXPIRATION = ON;

这个命令不会更改现有password,直到password过期前password依旧有效。

能够使用以下函数检查password到期时间:

  1. SELECT LOGINPROPERTY('Fred', 'DaysUntilExpiration');

3. 你还能够强制在登录时改动password,可是须要先提供一个协商好的password并告知使用者,比方以下的代码,就是把Fred这个登录名强制登陆时改动password,然后你使用了You need to change me ! 这个作为“初始password”,你须要告知用户,登陆时使用它,登录成功后会提示你改动password。

  1. ALTER LOGIN Fred WITH PASSWORD = 'You need to change me !' MUST_CHANGE, CHECK_POLICY = ON, CHECK_EXPIRATION = ON;

原文出处:http://blog.csdn.net/dba_huangzj/article/details/38756693

4. 能够使用脚本把全部须要改动的登录名全部显式出来:

  1. SELECT 'ALTER LOGIN ' + QUOTENAME(name) + ' WITH PASSWORD = ''You
  2. need to change me 11'' MUST_CHANGE, CHECK_POLICY = ON, CHECK_
  3. EXPIRATION = ON;
  4. '
  5. FROM sys.sql_logins
  6. WHERE is_policy_checked = 0
  7. ORDER BY name;

假设须要在应用程序中同意用户改动他们的password,能够參照这篇文章:http://msdn.microsoft.com/zh-cn/library/ms131024.aspx (以编程方式更改password)

原理:

最好的保护password避免暴力攻击的方法是使用WIndowspassword策略,由于它仅同意你使用强password。

另外暴力攻击password会在SQL Server的错误日志和Windows的事件日志中留底。

SQL登录的password或密钥是不存储在不论什么系统表中。仅存储password的hash值,也就是说没有办法解密。hash值会存储在系统表中,以便兴许登录时与传输的password使用hash函数生成的hash值匹配。

原文出处:http://blog.csdn.net/dba_huangzj/article/details/38756693

很多其它:

过期策略的当中一个组成部分是【lockout threshold】。假设要启用对SQL 登录的失败尝试锁定,须要对CHECK_POLICY 选项设为ON。而且把你的帐号锁定策略在Active Directory或者本地配置。

能够使用以下语句查询是否有锁定的帐号:

  1. SELECT name
  2. FROM sys.sql_logins
  3. WHERE LOGINPROPERTY(name, N'isLocked') = 1
  4. ORDER BY name;

原文出处:http://blog.csdn.net/dba_huangzj/article/details/38756693

下一个:http://blog.csdn.net/dba_huangzj/article/details/38817915

Chapter 2 User Authentication, Authorization, and Security(3):保server避免暴力袭击的更多相关文章

  1. Chapter 2 User Authentication, Authorization, and Security(11):在已还原的数据库中修正登录映射错误

    原文出处:http://blog.csdn.net/dba_huangzj/article/details/39496517,专题目录:http://blog.csdn.net/dba_huangzj ...

  2. Chapter 2 User Authentication, Authorization, and Security(10):创建包含数据库

    原文出处:http://blog.csdn.net/dba_huangzj/article/details/39473895,专题目录:http://blog.csdn.net/dba_huangzj ...

  3. Chapter 2 User Authentication, Authorization, and Security(9):防止登录名和用户查看元数据

    原文出处:http://blog.csdn.net/dba_huangzj/article/details/39003679,专题目录:http://blog.csdn.net/dba_huangzj ...

  4. Chapter 2 User Authentication, Authorization, and Security(8):创建映射到登录名的数据库用户

    原文出处:http://blog.csdn.net/dba_huangzj/article/details/38944121,专题目录:http://blog.csdn.net/dba_huangzj ...

  5. Chapter 2 User Authentication, Authorization, and Security(4):限制SA帐户管理权限

    原版的:http://blog.csdn.net/dba_huangzj/article/details/38817915,专题文件夹:http://blog.csdn.net/dba_huangzj ...

  6. Chapter 2 User Authentication, Authorization, and Security(7):创建和使用用户自定义服务器角色

    原文出处:http://blog.csdn.net/dba_huangzj/article/details/38895357,专题目录:http://blog.csdn.net/dba_huangzj ...

  7. Chapter 2 User Authentication, Authorization, and Security(6):服务器权限授予粒度

    原文出处:http://blog.csdn.net/dba_huangzj/article/details/38867489,专题目录:http://blog.csdn.net/dba_huangzj ...

  8. Chapter 2 User Authentication, Authorization, and Security(5):使用固定服务器角色

    原文出处:http://blog.csdn.net/dba_huangzj/article/details/38844999,专题目录:http://blog.csdn.net/dba_huangzj ...

  9. Chapter 2 User Authentication, Authorization, and Security(4):限制SA帐号的管理权限

    原文出处:http://blog.csdn.net/dba_huangzj/article/details/38817915,专题目录:http://blog.csdn.net/dba_huangzj ...

随机推荐

  1. Canvas翻转方法

     // 普通抽奖: // ctx.drawImage(img, px, py); // 级别"翻转"帆布 ctx.translate(canvas_width, 0); ctx. ...

  2. 自定义DB连接池实现

    实现一个简单的数据库连接池 1,连接池接口 package dbsource; import java.sql.Connection; import java.sql.SQLException; /* ...

  3. 深入解析_Android的自定义布局

    前言: 这篇文章是前Firefox Android工程师(现在跳槽去Facebook了) Lucas Rocha所写,文中对Android中常用的四种自定义布局方案进行了很好地分析,并结合这四种And ...

  4. php 两个文件之间的相对路径的计算方法

    php 两个文件之间的相对路径的计算方法 比如: 文件A 的路径是 /home/web/lib/img/cache.php 文件B的路径是 /home/web/api/img/show.php 那么. ...

  5. iOS发展- backBarButtonItem 颜色/文字修改

    iOS7之后. 默认返回button字体颜色为蓝色, 在父母的陈列柜VC(老界面)的title 假设做出改变, 通过下面的方法可以: 1. 更改字体颜色 (1) 在plist里面, 加View con ...

  6. ASP.NET自定义控件组件开发 第四章 组合控件开发CompositeControl

    原文:ASP.NET自定义控件组件开发 第四章 组合控件开发CompositeControl 第四章 组合控件开发CompositeControl 大家好,今天我们来实现一个自定义的控件,之前我们已经 ...

  7. springMVC项目异步处理请求的错误Async support must be enabled on a servlet and for all filters involved in async

    从github上down下来一个项目,springMVC-chat.作者全是用的注解,也就是零配置.这可苦了我,经过千辛万苦,终于集成到如今的项目中有一点样子了,结果报出来以下的错误.红色部分.解决方 ...

  8. Android Studio如何引用jar包裹(不gradle)

    这和eclipse最大的区别.与非常人的预期开始Android Studio我们很不高兴这一套. 它直接在地图上.首先通过File->Projcet structure打开project结构界面 ...

  9. 分散式-ubuntu12.04安装spark-1.0.0

    1. 安装文档: http://spark.apache.org/docs/latest/spark-standalone.html 2. web UI: master's web UI, which ...

  10. [Cocos2d-x]在Cocos2d-x 3.x如何通过版本号WebSocket连接server数据的传输

    WebSocket 首先新建一个空的目录,通过npm安装nodejs-websocket: npm install nodejs-websocket 新建app.js文件: var ws = requ ...