数据库安全
一.数据库安全
对任何企业组织来说,数据的安全性最为重要
保护数据库的目的:
保护数据的完整性、可用性、保密性
措施:
- 用户管理和身份验证(本文实验)
- 数据备份
- 数据加密
- 数据完整性技术
- 访问控制(包含身份认证、权限管理--本文实验)
数据库安全管理原则:
- 管理细分和委派原则
- 最小权限原则
- 账号安全原则
- 有效审计
数据库面临威胁:
- 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亿条用户数据
原理:未采取有效的数据访问权限管理,身份认证管理、数据利用控制等措施