【SQL server】玩转SQL server数据库:第四章 数据库安全性

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介: 【SQL server】玩转SQL server数据库:第四章 数据库安全性

image.gif

📋 前言

⏰诗赋清音:墨激雷霆势,心随碧波飘。山河承豪情滔天,梦御风云志浩荡。

🎉欢迎大家关注🔍点赞👍收藏⭐️留言📝

🔔作者留言:

欢迎来到我的【SQL Server】魔法学堂!这里是探索数据库世界的秘境,我的学习笔记博客为你打开SQL Server的魔法之门。在这里,我不仅分享SQL Server的基础知识和高级技巧,还有着涉猎实用技术和项目经验的魔法药水。无论你是新手还是数据库巫师,这个魔法堂会为你施展出奇幻的学习魔法,帮助你在SQL Server的魔法森林中踏上一场奇妙之旅。准备好了吗?跟着我,让我们一起编织属于自己的SQL Server魔法代码!


🌍1. 数据库安全性概述

1. 数据库的不安全因素

  1. 非授权用户对数据库的恶意存取和破坏
  2. 数据库中重要或敏感的数据被泄露
  3. 安全环境的脆弱性

2. 安全标准简介

2001年  CC V2.1版被我国采用为国家标准,目前CC已基本取代了TCSEC,成为评估信息产品安全性的主要标准。

TCSEC/TDI,从四个方面来描述安全性级别划分的指标

  1. 安全策略
  2. 责任
  3. 保证
  4. 文档

四组七个等级

D

C(C1,C2)

B(B1,B2,B3)

A(A1)

按系统可靠或可信程度逐渐增高

各安全级别之间具有一种偏序向下兼容的关系,即较高安全性级别提供的安全保护要包含较低级别的所有保护要求,同时提供更多或更完善的保护能力


🌍2. 数据库安全性控制

🪐1. 用户身份鉴别

  1. 静态口令鉴别:静态口令一般由用户自己设定,这些口令是静态不变的
  2. 动态口令鉴别:口令是动态变化的,每次鉴别时均需使用动态产生的新口令登录数据库管理系统,即采用一次一密的方法
  3. 生物特征鉴别:通过生物特征进行认证的技术,生物特征如指纹、虹膜和掌纹等
  4. 智能卡鉴别:智能卡是一种不可复制的硬件,内置集成电路的芯片,具有硬件加密功能

🪐2. 存取控制

  1. 定义用户权限
  2. 合法权限检查

这两者一起组成了数据库管理系统的存取控制子系统

常用存取控制方法

  1. 自主存取控制-- C2级
  2. 强制存取控制--B1级
🌕2.1 自主存取控制方法

通过 SQL 的GRANT 语句和REVOKE 语句实现

用户权限组成

  1. 数据对象
  2. 操作类型

定义用户存取权限:定义用户可以在哪些数据库对象上进行哪些类型的操作

定义存取权限称为授权

 


🌕2.2 授予GRANT

GRANT语句的一般格式:

      GRANT <权限>[,<权限>]...
      ON <对象类型> <对象名>[,<对象类型> <对象名>]…
      TO <用户>[,<用户>]...
      [WITH GRANT OPTION];

语义:将对指定操作对象的指定操作权限授予指定的用户

发出GRANT

  • 数据库管理员
  • 数据库对象创建者(即属主Owner)
  • 拥有该权限的用户

接受权限的用户

  • 一个或多个具体用户
  • PUBLIC(即全体用户)  

WITH GRANT OPTION子句:

指定:可以再授予

没有指定:不能传播

示例:

[例4.1] 把查询Student表权限授给用户U1

     GRANT   SELECT
     ON   TABLE   Student
     TO   U1;
[例4.2] 把对Student表和Course表的全部权限授予用户U2和U3

     GRANT ALL PRIVILIGES
     ON TABLE Student,Course
     TO U2,U3;

[例4.3] 把对表SC的查询权限授予所有用户

    GRANT SELECT
    ON TABLE SC
     TO PUBLIC;

[例4.4] 把查询Student表和修改学生学号的权限授给用户U4
 
         GRANT UPDATE(Sno), SELECT
       ON TABLE Student
       TO U4;

对属性列的授权时必须明确指出相应属性列名
[例4.5] 把对表SC的INSERT权限授予U5用户,并允许他再将此权限授予其他用户
   
   GRANT INSERT
   ON TABLE SC
   TO U5
   WITH GRANT OPTION;
执行例4.5后,U5不仅拥有了对表SC的INSERT权限,
还可以传播此权限:
[例4.6] GRANT INSERT
            ON TABLE SC
            TO U6
            WITH GRANT OPTION;
     同样,U6还可以将此权限授予U7:
[例4.7] GRANT INSERT
            ON TABLE SC
            TO U7;
     但U7不能再传播此权限。
 

 


🌕2.3 回收REVOKE

授予的权限可以由数据库管理员或其他授权者用REVOKE语句收回

REVOKE语句的一般格式为:

   REVOKE <权限>[,<权限>]...
   ON <对象类型> <对象名>[,<对象类型><对象名>]…
   FROM <用户>[,<用户>]...[CASCADE | RESTRICT];

示例:

[例4.8] 把用户U4修改学生学号的权限收回

       REVOKE UPDATE(Sno)

       ON TABLE Student

       FROM U4;

[例4.9] 收回所有用户对表SC的查询权限

       REVOKE SELECT

       ON TABLE SC

       FROM PUBLIC;

   

[例4.10] 把用户U5对SC表的INSERT权限收回

       REVOKE INSERT

       ON TABLE SC

       FROM U5 CASCADE ;

将用户U5的INSERT权限收回的时候应该使用CASCADE,否则拒绝执行该语句

如果U6或U7还从其他用户处获得对SC表的INSERT权限,则他们仍具有此权限,系统只收回直接或间接从U5处获得的权限


📝总结

数据库SQL Server领域就像一片未被勘探的信息大海,引领你勇敢踏入数据科学的神秘领域。这是一场独特的学习冒险,从基本概念到算法实现,逐步揭示更深层次的模式分析、匹配算法和智能模式识别的奥秘。渴望挑战数据库SQL Server中的模式匹配学习路径和掌握信息领域的技术?不妨点击下方链接,一同探讨更多数据科学的奇迹吧。我们推出了引领趋势的💻 数据科学专栏:《数据之谜 | 数据奇迹解码》,旨在深度探索数据库SQL Server中模式匹配技术的实际应用和创新。🌐🔍


相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS&nbsp;SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/sqlserver
目录
相关文章
|
4天前
|
存储 SQL 数据库
数据库sql语句-----游标和存储过程
数据库sql语句-----游标和存储过程
14 1
|
3天前
|
SQL 关系型数据库 MySQL
实时计算 Flink版产品使用合集之当 SQL Server 源数据库中的数据更新后,CDC 吐出的操作(op)是怎样的
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
12 0
|
4天前
|
存储 数据库
sqlserver------数据库的存储过程(练习)
sqlserver------数据库的存储过程(练习)
8 1
|
4天前
|
数据库
sqlserver数据库学习感悟(1)----关于group by
sqlserver数据库学习感悟(1)----关于group by
8 0
|
4天前
|
SQL Oracle 关系型数据库
数据库sqlserver-----触发器的插入,更新和删除
数据库sqlserver-----触发器的插入,更新和删除
12 3
|
4天前
|
SQL 关系型数据库 数据管理
Microsoft SQL Server 是微软公司开发的一款关系型数据库管理系统
【5月更文挑战第14天】Microsoft SQL Server 是微软公司开发的一款关系型数据库管理系统
16 2
|
4天前
|
SQL 数据库
数据库SQL语言实战(六)
本次实战的重点就在于对表格本身的一些处理,包括复制表格、修改表格结构、修改表格数据
|
4天前
|
SQL Oracle 关系型数据库
数据库SQL语言实战(五)(数据库系统概念第三章练习题)
本文的SQL语言适用的是Oracle数据库与mySQL可能存在略微不同
|
存储 SQL 程序员
【Sql Server】存储过程通过作业定时执行按天统计记录
通过前两篇文章的学习,我们已经对创建表、存储过程、作业等功能点有所了解 本次将结合前面所学习的知识点,创建统计表以及结合作业定时按天以及实时统计域名各个长度的记录值
312 0
【Sql Server】存储过程通过作业定时执行按天统计记录
|
10月前
|
存储 SQL 数据库
SQL Server——为什么要使用存储过程?不使用是什么样的?
提高数据库执行速度,可能第一次见到这句话的小伙伴们感觉到非常的匪夷所思叭!怎么就提高了它的执行速度捏,从哪方面可以表现出来呢?既然这里要说到的是为什么要使用存储过程,也就是说它的优点是什么。那我们肯定就要对使用和不使用存储过程两方面来进行对比才能看出它的优点对吧。