数据库安全

 一.数据库安全

对任何企业组织来说,数据的安全性最为重要

 

保护数据库的目的:

保护数据的完整性、可用性、保密性

 

措施:

  • 用户管理和身份验证(本文实验)
  • 数据备份
  • 数据加密
  • 数据完整性技术
  • 访问控制(包含身份认证、权限管理--本文实验)

 

数据库安全管理原则:

  • 管理细分和委派原则
  • 最小权限原则
  • 账号安全原则
  • 有效审计

数据库面临威胁:

  • SQL注入
  • 权限分配不当
  • 身份认证不足
  • 未加密
  • 拒绝服务(DOS)
  • 安全配置不规范

 

数据库面临威胁形式:

篡改、损坏、窃取

 

威胁来源:

  • OS故障
  • 介质故障
  • 人为破坏等

 

 

二.保护数据库--访问控制

两种认证方式

  • windows认证

       在该模式下,用户只要通过Windows的认证就可连接到SQL Server,而SQL Server本身也不需要管理一套登录数据

  • 混合认证(Windows+SQL Server)

        在混合认证模式下,Windows认证和SQL Server 认证这两种认证模式都是可用的。

       在SQL Server认证模式下,用户在连接SQL Server时必须提供登录名和登录密码,这些登录信息存储在系统表syslogins中,与windows的登录账号无关。SQL Server自己执行认证处理,如果输入的登录信息与系统表syslogins 中的某条记录相匹配则表明登录成功。

 

权限管理:

SQL Server数据库管理系统利用角色设置、管理用户的权限。

登入名:

只有拥有了登入名才能访问实例

 

角色:

角色是一类权限的组合

服务器角色的拥有者只有登入名,服务器角色是固定的,用户无法创建服务器角色。

 

用户:

 用户是数据库级的概念,数据库用户必须绑定具体的登入名,当绑定登入名数据库后,数据库默认就创建了此登入名同名的数据库用户,登入名与数据库用户之间就存在关联关系,数据库用户是架构和数据库角色的拥有者

 

架构:

架构包含数据库对象:如表、视图、存储过程和函数等

 

  • 服务器

                         可定义固定服务器角色、固定数据库角色

  • 数据库

                         我可操作

  • 数据库对象

                        我对库中的表操作

  • 数据库对象字段

 

三.实验

目录:

身份认证:

1)开启数据库的混合认证中的 SQL认证

2)创建windows用户mm并让其隶属于administrator

3)打开数据库,创建数据库student

4)创建windows认证的登录名,服务器角色,并选择该用户mm可以访问student,master库

5)上述的准备工作做好后,验证windows登录

  • 改administrator密码(因为远程桌面注销会又会自动连接)
  • 注销administrator账户换为mm账户
  • 打开SQL,可以看见master和 students(这两个创建登录名时关联的库)

6)验证SQL登录

  • 注销mm,登录administrator,打开SQL(windows验证打开)
  • 新建用户SQLUser,创SQL登录的登录名,选择该用户SQLUser可访问到所有库
  • 关闭SQL,再次打开SQL,选择SQL验证               

 

权限管理:

1)管理数据库用户

  • 创建用户
  • 修改用户
  • 删除用户

2)管理数据库角色

  • 创建角色
  • 删除角色

3)授创建表和创建视图给BJHI-8V5H2XI9M\mm用户

4)授权除创建表和创建视图给SQLUser

 

 

 

 

 

 

 

身份认证:

1)开启数据库的混合认证

 

 

 

 

 

 

 

 

 

  

2)创建windows用户mm并让其隶属于administrator

 

 

 

 

 

 

 

 

 

 

 

 3)打开数据库,创建数据库student

 

 

 

 

 

 4)创建windows认证的登录名,服务器角色,并选择该用户mm可以访问student,master库

 

 

 

 

 

 

  选择常规

 

 

 

 

 

 

 

 

 在对象资源管理器中,展开安全性-登录名,可以看到mm已存在

 

   同时,展开数据库-系统数据库-student-安全性-用户,在用户列表中可以看到数据库student中已经建立一个数据库用户mm

 

 

 5)上述的准备工作做好后,验证windows登录

改administrator密码

 

 

 

 

 注销administrator账户换为mm账户

 

 

 

 

 

 打开SQL,可以看见master和 students(这两个创建登录名时关联的库)

 

 6)验证SQL登录

注销mm,登录administrator,打开SQL(windows验证打开)

 

 

 新建用户SQLUser,创SQL登录的登录名,选择该用户SQLUser可访问到所有库

 在 SQL Server Management Studio中,展开实例下的“安全性”,右击“登录名”按钮,在弹出的快捷菜单中选择“新建登录”, 选择常规

 

 

 

 

 关闭SQL,再次打开SQL,选择SQL验证     

 

 

 权限管理:

 管理数据库用户

创建数据库用户

 

 

 

 选择常规

 

 

 修改用户信息

 

 选择常规

 

 

删除数据库用户

 

 

管理数据库角色

创建角色

 

 

 

 

 

 创建角色成功

 删除角色

 

 

3)授创建表和创建视图给BJHI-8V5H2XI9M\mm用户

 

 选择“权限”选项卡

 

 4)授权除创建表和创建视图给SQLUser

 

作业

1、 SQL Server的Windows认证模式和混合认证模式的区别?


 Windows认证:只要用户密码进入windows,进入SQL不再需要密码

 混合认证模式:在windows认证的基础上想要进入SQL还要在输入一次登录名和密码

 

2、 分析数据库各种角色权限的异同,自定义数据库,并进行权限管理,深入理解实验原理。


 

 以dbcreator(修改和创建数据库)为列子

 新的实验环境:

1)创建mm用户,修改administrator密码

2)administrator下打开SQL,创建qq数据库

3)新建登录名,服务器角色为dbcreator(修改和创建数据库)

4)切换用户到mm,打开SQL

5)修改数据库功能验证:

  • 创建表
  • 填入表

6)删除qq数据库,执行不成功

7)切换用户到administrator,再次尝试删除qq数据库,删除成功!!!

实验过程截图:(有顺序,1)步骤略)

2)administrator下打开SQL,创建qq数据库

 

 

 3)新建登录名,服务器角色为dbcreator(修改和创建数据库

 

 左方选择常规选项:

 

 

 

 

 4)切换用户到mm,打开SQL

 

5)修改数据库功能验证:

 

 

 6)删除qq数据库,执行不成功

 

 7)切换用户到administrator,再次尝试删除qq数据库,删除成功!!!

 

 

 

 

 

3、 查阅近期数据库安全事件,分析攻击原理,掌握数据库安全的重要性


 

携程数据库事件   人为操作失误,携程没有内部的审计设备

数据库病毒攻击事件,数据库遭遇重启失败 

原理:数据库恶意注入攻击,在数据库工具或数据库安装包/升级包中加入恶意代码,往往是存储过程+触发器的组合形式,当权限足够,它们会产生阻止正常用户访问数据库、删除转移关键数据等恶劣行为。

京东内部员工涉嫌窃取50亿条用户数据

原理:未采取有效的数据访问权限管理,身份认证管理、数据利用控制等措施

 

 

posted @ 2021-09-22 17:06  学习日志羁旅  阅读(538)  评论(0编辑  收藏  举报