【BUAA-数据管理技术】9-安全

本文内容系2024年北航软件学院数据管理技术课程课堂笔记,内容大部分取自课程PPT,少量来源于互联网,若有侵权请联系删除。文章内容如有错漏,敬请批评指正!

第七章 数据库安全

09 - 安全

7.1 数据库安全

  1. 安全认证
  2. 访问控制
  3. 数据保护
  4. 数据审计

1. 安全认证

确认试图登录数据库的用户是否被授权访问数据库的过程

认证方式
数据库认证
  • 使用存储在数据库中的信息对连接到数据库的用户进行验证
  • 最常用的方法:密码认证
  • 缺点:
    • 密码容易被盗、伪造和滥用
    • 难以应对复杂的网络攻击
    • 频繁的认证操作影响数据库性能
  • 加强密码认证的安全措施:
    • 建立密码复杂性标准
    • 密码不包含敏感词,如用户名等
    • 设定密码时效性,定期修改密码
外部认证:
  • 强身份认证:进行双因素(如密码+短信)或多因素身份验证
    • 可根据需要选择不同的身份验证机制
      • 操作系统认证
    • 减少数据库管理开销,提高数据库性能
  • 代理认证:让中央设施对网络的所有成员进行身份验证
    • 有效解决网络上节点伪造身份
    • 减少每个数据库认证开销

2. 访问控制

定义:按照用户的身份和权限,控制用户对数据库中数据访问

权限:允许或拒绝数据库用户提出的数据访问请求,两个要素:数据对象、操作类型

  • 分类:
    • 系统权限
      • 启动、关闭数据库
      • 转储、恢复数据库
      • 创建、删除数据库等等
    • 数据对象权限
      • 对基本表, 视图, 存储过程,函数等数据库对象的操作权限
        • 增加、删除、修改等
    • 列级权限:包括列的添加、修改、删除等
    • 行级权限:包括行的插入、修改、删除等
    • 连接级权限:包括连接控制等

关注问题:阻止访问,确定、授予、撤销访问权限

权限控制语句:

  • 权限授予:Grant

  • 权限收回:Revoke

  • 例:

    # 对指定用户授予、收回表级查询权限
    Grant select on TableA to UserA
    Grant all privileges on TableA to Public	# 授予表A的所有权限给所有用户
    Revoke select on TableA from UserA
    
    # 限定列级权限
    Grant select (a, b) on TableA to UserA
    

谁才能授予、收回权限?

  • 数据对象的创建者

  • DBA

  • 拥有传播权限的用户

  # With Grant Option
  Grant select on TableA to UserA with grant option	# 示例
  # 此时UserA可以向其他用户授予TableA的Select权限
角色

是命名的权限集合,使用角色可以方便的进行授权管理

需要set default role激活角色

角色分类:

  • 服务器角色:系统内建,不可自建
  • 数据库角色:可自建
  • Public角色:代表所有用户都具有的权限集合

创建角色:Create Role roleA;

向角色逐个授予权限:

Grant insert, delete on tableA to roleA; 
Grant execute on procedureA to roleA

将角色赋予指定用户(加入with admin option,则该用户或角色还可以把权限再授予其他角色):

Grant roleA to UserA [with admin option]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值