版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第五章数据库安全性和完整性5.1数据库的安全性5.2SQLServer数据库的安全性5.3完整性数据库安全性和完整性数据库安全性和完整性
安全措施一般是一级一级层层设置的,例图所示。5.1数据库的安全性5.1.1安全性控制的一般方法1.用户标识和鉴定
标识和鉴定一个用户最常用的方法是用一个用户名或者用户标识号来标明用户身份,系统鉴别此用户是否是合法用户。若是,则可进入下步的核实;若不是,则不能进入系统。
数据库安全性和完整性2.存取控制
存取权限由数据对象和操作类型两个要素组成。定义一个用户的存取权限就是要定义这个用户可以在哪些数据对象上进行哪些类型的操作。在数据库系统中,定义存取权限称为授权(Authorization)。这些授权定义经过编译后存放在数据字典中。数据库安全性和完整性
在数据库中,为了保证用户只能访问他有权存取的数据,必须预先对每个用户定义存取权限。对于通过鉴定进入系统的用户(即合法用户),系统根据他的存取权限定义对他的各种操作请求进行控制,确保他只执行合法操作。数据对象操作类型模
式模式建立、修改、检索外模式建立、修改、检索内模式建立、修改、检索数据表查找、插入、修改、删除属性列查找、插入、修改、删除表5-1关系数据库系统中的存取权限数据库安全性和完整性用户名数据对象名允许的操作类型刘勇关系BookSelect张伟关系BookAll张伟关系ReaderAll张伟关系BorrowUpdate丁钰关系BorrowSelect丁钰关系BorrowInsert………………表5-2一个授权表的实例数据库安全性和完整性用户名数据对象名允许的操作类型刘勇关系BookSelect张伟关系BookAll张伟关系ReaderAll张伟关系BorrowSelect张伟关系Borrow.BdateUpdate丁钰关系Borrow.BookidSelect丁钰关系Borrow.CardidSelect………………表5-3一个授权表的实例
数据库安全性和完整性用户名数据对象名允许的操作类型存取谓词刘勇关系BookSelectPublish=“中国水利水电出版社”张伟关系BookAll
张伟关系ReaderAll
张伟关系BorrowSelect
张伟关系Borrow.BdateUpdate
丁钰关系Borrow.BookidSelect
丁钰关系Borrow.CardidSelect
表5-4一个授权表的实例数据库安全性和完整性3.定义视图
进行存取的控制,不仅可以通过授权与收回权力来实现,还可以通过定义用户的外模式来提供一定的安全保护功能。在关系系统中,就是为不同的用户定义不同的视图,通过视图机制把要保密的数据对无权存取这些数据的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。数据库安全性和完整性4.审计
审计追踪使用的是一个专用文件或数据库,系统自动将用户对数据库的所有操作记录在上面,利用审计追踪的信息,就能重现导致数据库现有状况的一系列事件,以找出非法存取数据的人。数据库安全性和完整性5.数据加密
对于高度敏感性数据,例如财务数据、军事数据和国家机密,除以上安全性措施外,还可以采用数据加密技术,以密码形式存储和传输数据。这样企图通过不正常渠道获取数据,例如,利用系统安全措施的漏洞非法访问数据,或者在通信绕路上窃取数据,那么只能看到一些无法辨认的二进制代码。用户正常检索数据时,首先要提供密码钥匙,由系统进行译码后,才能得到可识别的数据。数据库安全性和完整性5.1.2数据库用户的种类数据库用户按其操作权限的大小可分为三类:1.数据库系统管理员:数据库系统管理员(DBA)具有数据库中全部的权限,当用户以系统管理员身份进行操作时,系统不对其权限进行检验.
2.普通用户:普通用户只具有增、删、改、查数据库数据的权限
数据库安全性和完整性5.2SQLServer数据库的安全性
SQLServer的安全性管理包括以下几个方面:数据库登录管理、数据库用户管理、数据库角色管理以及数据库权限的管理。返回首页数据库安全性和完整性数据库安全性和完整性5.2.1SQLServer2005安全管理机制1.主体Windows级别的主体:包括Windows域登录名、Windows本地登录名。服务器级别的主体:SQLServer登录名。数据库级别的主体:数据库用户、数据库角色、应用程序角色。2.安全对象服务器(Server);数据库(Database);架构(Schema);对象(Table、View、Index、Trigger、Procedure、Function等)。数据库安全性和完整性表视图存储过程...架构用户
登录名包含在被拥有映射为架构(Schema)是数据库对象(Table、View、Index、Trigger、Procedure、Function等)的集合,其中的每个对象的名称都是唯一的对象之间的关系数据库安全性和完整性3.角色服务器范围的角色
固定服务器角色描述bulkadmin运行BULKINSERT语句dbcreator创建和修改数据库diskadmin管理磁盘文件processadmin管理SQLServer进程securityadmin管理和审计服务器登录serveradmin配置服务器设置setupadmin配置复制和链接服务器sysadmin执行全部活动数据库安全性和完整性数据库范围的角色固定数据库角色描述db_accessadmin可以添加或删除用户db_backupoperator可以执行DBCC、CHECKPOINTT、BACKUP语句db_datareader可以查询数据库内任何用户表中的数据db_datawriter可以更改数据库内任何用户表中的数据db_ddladmin可以执行所有的数据定义语句,但不能使用授权命令。db_denydatareader不能查询数据库内任何用户表中的数据db_denydatawriter不能更改数据库内任何用户表中的数据db_owner在数据库中有全部权限db_securityadmin可以管理全部权限、对象所有权、角色和角色成员资格。5.2.2身份验证模式SQLServer2005提供了两种身份验证模式:Windows身份验证模式和混合验证模式.在Windows身份验证模式中,SQLServer使用Windows操作系统中的信息验证用户身份,这种方式是SQLServer2005默认的验证方式,它比混合模式安全在混合模式中,SQLServer2005使用Windows身份验证或SQLServer自己的验证机制验证用户身份。对于数据库管理员来说,这种方式更方便数据库对象的授权管理
数据库安全性和完整性数据库安全性和完整性5.2.3登录管理
登录名是数据库使用者访问数据库时的账户标识,有四种类型的登录名:SQLServer登录名、Windows登录名、证书映射登录名和非对称密钥映射登录名1.用T-SQL创建登录名
CREATELOGIN登录名<WITHPASSWORD=’密码’
|FROMWINDOWS>[,DEFAULT_DATABASE=默认数据库][,DEFAULT_LANGUAGE=默认语言][,CHECK_EXPIRATION=ON][,CHECK_POLICY=ON][MUST_CHANGE]例5-1:创建SQLServer登录名。CREATELOGINCSMZXYWITHPASSWORD='123456’,DEFAULT_DATABASE=’BOOKSYS’例5-2:从Windows域帐户创建登录名。CREATELOGIN[WORKGROUP\STUDENT]FROMWINDOWS数据库安全性和完整性数据库安全性和完整性2.使用SQLServerManagementStudio创建登录名
在对象资源管理器中,选择要管理的服务器并展开,展开“安全性”结点,右键单击“登录名”,在弹出菜单中选择“新建登录名”选项。
数据库安全性和完整性5.2.4用户管理用户是访问某个特定数据库的主体。数据库用户可以和已有的登录名进行映射1.用T-SQL创建用户CREATEUSER用户名[FOR|FROM登录名]
[WITHDEFAULT_SCHEMA=架构名]例5-3创建数据库BookSys的用户:用户名CSMZXY,并将其映射到前面创建的登录名“CSMZXY”,默认架构为dboUSEBookSysGOCREATEUSERCSMZXYFORCSMZXYWITHDEFAULT_SCHEMA=DBO数据库安全性和完整性2.使用SQLServerManagementStudio创建用户5.2.4用户管理在对象资源管理器,选择要创建用户的数据库并展开,再展开“安全性”结点,右击“用户”,在弹出菜单中选择“新建用户”命令,打开如图所示的“数据库用户-新建”对话框5.2.5架构管理数据库安全性和完整性1.架构的概念
架构是形成单个命名空间的数据库实体的集合,命名空间是一个集合,其中每个元素的名称都是唯一的。架构是数据库对象的命名空间2.使用完全限定对象名称
引入架构后,访问数据库对象,如果使用完全限定对象名称,应该采用如下模式:服务器名.数据库名.架构名.数据对象名数据库安全性和完整性3.用T-SQL创建架构下面的语句在BookSys数据库中创建名为“MySchema”的架构。USEBookSysGOCREATESCHEMAMySchemaAUTHORIZATIONUSER1GOAUTHORIZATIONUSER1指定架构的拥有者为用户user1,如果没有指定架构的拥有者,默认为dbo4.使用SQLServerManagementStudio创建架构数据库安全性和完整性在对象资源管理器,选择要创建用户的数据库并展开,再展开“安全性”结点,右击“架构”,在弹出菜单中选择“新建架构”命令,打开如图所示的“架构-新建”对话框数据库的完整性是指数据的正确性和相容性。数据库是否具备完整性关系到数据库系统能否真实地反映现实世界,因此维护数据库的完整性是非常重要的。数据的完整性与安全性是数据库保护的两个不同方面。
数据库安全性和完整性5.3数据库完整性5.3.1完整性约束条件
完整性约束条件作用的对象可以有列级、元组级和关系级三种粒度。其中对列的约束主要指对其取值类型、范围、精度和排序等的约束条件。对元组的约束是指对记录中各个字段间的联系的约束。对关系的约束是指对各记录间或关系之间的联系的约束。数据库安全性和完整性
静态列级约束是对一个列的取值域的说明,这是最常见最简单同时也最容易实现的一类完整性约束,包括以下几方面:(1)对数据类型的约束,包括数据的类型、长度、单位和精度等。(2)对数据格式的约束。(3)对取值范围或取值集合的约束。(4)对空值的约束。(5)其他约束。数据库安全性和完整性1.静态列级约束
一个元组是由若干个列值组成的,静态元组约束就是规定组成一个元组的各个列之间的约束关系。静态元组约束只局限在单个元组上,因此比较容易实现。例如在图书借阅表中可以规定:还书日期>借书日期。数据库安全性和完整性2.静态元组约束数据库安全性和完整性3.静态关系约束在一个关系的各个元组之间或者若干关系之间常常存在各种联系或约束。常见的静态关系约束有以下四种:
(1)实体完整性约束。(2)参照完整性约束。(3)函数依赖约束。(4)统计约束。数据库安全性和完整性4.动态列级约束
动态列级约束是修改列定义或列值时要满足的约束条件,包括以下两方面:(1)修改列定义时的约束。(2)修改列值时的约束。5.动态元组约束
动态元组约束是指修改某个元组时需要参照其旧值,并且新旧值之间需要满足某种约束条件。6.动态关系约束
动态关系约束是加在关系变化前后状态上的限制条件。例如,事务一致性、原子性等约束条件。
表5-5完整性约束条件粒度状态列级元组级关系级静态列定义类型格式值域空值元组值应满足的条件实体完整性约束参照完整性约束函数依赖约束统计约束动态改变列定义或列值元组新旧值之间应满足的约束条件关系新旧状态间满足的约束条件数据库安全性和完整性5.3.2完整性控制数据库安全性和完整性完整性约束的定义完整性约束条件的检查对违背了完整性约束条件的操作应采取的措施DBMS的完整性控制机制应具有三个方面的功能:
1.完整性约束的定义在SQL语言中,CREATETABLE语句提供了定义完整性的功能。详细语法格式请
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025新职业病学核心考题试题及答案
- 安徽省蚌埠市怀远县2024~2025学年九年级上学期第一次月考道德与法治试卷(含答案)
- 2026届湖南省娄底市双峰县中考押题语文预测卷含解析
- 湖北省襄阳市阳光校2026届中考历史全真模拟试题含解析
- 2026年幼儿园消防演练总结总结
- 2026年油库消防演练总结范文
- 企业行政管理人员准则
- 体温单填写规范
- 2026年银行消防演练总结报告
- 初级经济师考试题(附答案)
- 建立模糊专家系统实验报告
- 爱情片《百万英镑》台词-中英文对照
- 基于solidworks的齿轮泵仿真
- 半导体物理学(刘恩科)第七版-完整课后题答案
- 政策监控案例北京动物园搬迁风波
- 基础生态学-群落的组成与结构
- 理气药的药理作用(中药药理学课件)
- 霍金斯能量层级(全)
- T-SXDZ 057-2020 煤矿冲击地压危险性评价报告编制细则
- GB/T 25146-2010工业设备化学清洗质量验收规范
- GB/T 13083-2018饲料中氟的测定离子选择性电极法
评论
0/150
提交评论