SQL Server 数据库安全【用户密码策略】

写在前面

提到微软SQL Server数据库安全策略,首先会想到windows安全策略设置。那数据库用户的安全策略到底如何设置呢?其实SQL Server就可以使用 Windows密码策略机制。-密码策略可以使用SQL Server身份验证的登录名,并且也可以应用于具有密码的数据库用户。另外SQL Server数据库可以对在SQL内部使用的密码应用在widnows中使用相同复杂度和过期的策略。
      注意:SQL Server数据库强制实施密码复杂性,具体密码过期和密码实施部分并不适用于SQL Sece数据库。

安全策略介绍

密码的复杂度

密码复杂性策略通过增加可能密码的数量来阻止强力攻击。 实施密码复杂性策略时,新密码必须符合以下原则:

  1. 密码复杂性策略通过增加可能密码的数量来阻止强力攻击。 实施密码复杂性策略时,新密码必须符合以下原则:
  2. 密码不得包含用户的帐户名。
  3. 密码长度至少为八个字符。
  4. 密码包含以下四类字符中的三类:
  5. 拉丁文大写字母 (A - Z)
  6. 拉丁文小写字母 (a - z)
  7. 10 个基本数字 (0 - 9)
  8. 非字母数字字符,如感叹号 (!)、美元符号 ($)、数字符号 (#) 或百分号 (%)。
  9. 密码可最长为 128 个字符。 使用的密码应尽可能长,尽可能复杂。

密码过期

密码过期策略用于管理密码的使用期限。 如果 SQL Server 实施密码过期策略,则系统将提醒用户更改旧密码,并禁用带有过期密码的帐户。

安全策略实施

利用SSMS创建用户

  1. 在对象资源管理器中,展开要在其中创建新登录名的服务器实例的文件夹。
  2. 右键单击“安全性”文件夹,指向“新建”,然后选择“登录名…”。

SQL Server 数据库安全【用户密码策略】_第1张图片

  1. 在“登录名 - 新建”对话框的“常规”页中,在“登录名”框中输入用户的名称。 或者,单击“搜索…”以打开“选择用户或组”对话框。
  2. 如果单击“搜索…”:
  3. 在“选择此对象类型”下,单击“对象类型…”以打开“对象类型”对话框,并选择以下任意或全部选项:“内置安全主体”、“组”和“用户”。 默认情况下,将选中“内置安全主体”和“用户”。 完成后,单击 “确定”。
  4. 在“从此位置”下,单击“位置…”以打开“位置”对话框,并选择一个可用的服务器位置。 完成后,单击 “确定”。
  5. 在“输入要选择的对象名称(示例)”下,输入你想要查找的用户或组名。单击“高级…”以显示更多高级搜索选项。
  6. 单击 “确定” 中创建登录名。

SQL Server 数据库安全【用户密码策略】_第2张图片

  1. 若要基于 Windows 主体创建一个登录名,请选择 “Windows 身份验证”。 这是默认选项。
  2. 若要创建一个保存在 SQL Server 数据库中的登录名,请选择 “SQL Server 身份验证”。
  3. 在 “密码” 框中,输入新用户的密码。 在 “确认密码” 框中再次输入该密码。

 

SQL Server 数据库安全【用户密码策略】_第3张图片

  1. 在更改现有密码时,选择 “指定旧密码”,然后在 “旧密码” 框中键入旧密码。
  2. 若要强制实施有关复杂性和强制执行的密码策略选项,请选择 “强制实施密码策略”。  选中 “SQL Server 身份验证” 时,这是默认选项。
  3. 若要强制实施有关过期的密码策略选项,请选中 “强制密码过期”。 必须选择 “强制实施密码策略” 才能启用此复选框。 选中 “SQL Server 身份验证” 时,这是默认选项。
  4. 若要在首次使用登录名后强制用户创建新密码,请选择 “用户在下次登录时必须更改密码”。 必须选择 “强制密码过期” 才能启用此复选框。 选中 “SQL Server 身份验证” 时,这是默认选项。
  5. 若要将登录名与独立的安全性证书相关联,请选择“映射到证书”,然后再从列表中选择现有证书的名称。
  6. 若要将登录名与独立的非对称密钥相关联,请选择“映射到非对称密钥”,然后再从列表中选择现有密钥的名称。
  7. 若要将登录名与安全凭据相关联,请选中 “映射到凭据” 复选框,然后再从列表中选择现有凭据或单击 “添加” 以创建新的凭据。 若要从登录名删除与某个安全凭据的映射,请从 “映射的凭据” 中选择该凭据,然后单击 “删除”。从 “默认数据库” 列表中,选择登录名的默认数据库。 “Master” 是此选项的默认值。
  8. 从 “默认语言” 列表中,选择登录名的默认语言。
  9. 单击“确定”。

修改用户策略

SQL Server 数据库安全【用户密码策略】_第4张图片

可为每个 SQL Server 登录名单独配置密码策略实施。 配置密码策略实施时,适用以下规则:

如果 CHECK_POLICY 改为 ON,则将出现以下行为:

  1. 除非将 CHECK_EXPIRATION 显式设置为 OFF,否则也会将其设置为 ON。
  2. 用当前的密码哈希值初始化密码历史记录。
  3. 还将启用帐户锁定时间, 帐户锁定阈值和 在此后重置帐户锁定计数器 。

如果 CHECK_POLICY 改为 OFF,则将出现以下行为

  1. CHECK_EXPIRATION 也设置为 OFF。
  2. 清除密码历史记录。
  3. lockout_time 的值被重置。
  4. 不支持策略选项的某些组合。

如果指定 MUST_CHANGE,则 CHECK_EXPIRATION 和 CHECK_POLICY 必须设置为 ON。 否则,该语句将失败。
如果 CHECK_POLICY 设置为 OFF,则 CHECK_EXPIRATION 不能设置为 ON。 包含此选项组合的 ALTER LOGIN 语句将失败。
设置 CHECK_POLICY = ON 将禁止创建以下类型的密码:

  1. 为 NULL 或空
  2. 与计算机名或登录名相同
  3. 下列任意项:“password”、“admin”、“administrator”、“sa”、“sysadmin”

另外,可以在 Windows 中设置安全策略,也可以从域接收安全策略。 若要查看计算机上的密码策略,请使用本地安全策略 MMC 管理单元 (secpol.msc)。
 

总结

关于SQL Server数据库安全策略,为了保证数据库安全、稳定运行,最主要的要保证操作系统更加安全,一定要做好相应的安全加固工作。数据库用户建议利用SQL Server身份验证为不同的应用程序,根据不同的权限创建其对应的用户,不建议应用直接利用sa用户,sa用户仅限于数据库DBA使用。

参考:https://docs.microsoft.com/zh-cn/sql/relational-databases/security/password-policy?view=sql-server-2017

 

 

 

 

你可能感兴趣的:(SQL,Server数据库基础)