数据库及其应用课件:安全性管理_第1页
数据库及其应用课件:安全性管理_第2页
数据库及其应用课件:安全性管理_第3页
数据库及其应用课件:安全性管理_第4页
数据库及其应用课件:安全性管理_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1安全性管理MySQL的权限控制体系权限表账户管理授权与回收权限角色视图2

第一节

MySQL的权限控制体系

MySQL将操纵数据库资源的权限范围划分为5个级别。

顺序级别权

限范围

说明1GlobalLevel对整个MySQL数据库服务器的全局权限。DBA特权2DatabaseLevel数据库级别的权限。数据库特权3TableLevel表级别的权限。

操作数据表权限4ColumnLevel表中某一列的权限。操作表中的某些列的权限5RoutineLevel针对函数、触发器和存储过程的权限。使用函数、触发器和存储过程权限3

一、具有DBA特权的数据库用户

DBA拥有支配整个数据库资源的所有特权。其中主要包括:访问数据库的任何数据;数据库的调整、重构和重组;注册用户、授予和回收数据库用户访问数据对象的权限;控制整个数据库运行和跟踪审查;数据库备份和恢复等权限。4

二、支配数据库资源特权的数据库用户

这类用户是数据库、表、视图等数据对象的创建者,常称为“具有RESOURCE特权的用户”,拥有这些数据对象上所有操作和控制的权限,主要包括:创建表、索引和聚簇的权限;可以授予或回收其他用户对其所创建的数据对象的所有访问权限;可以对其所创建的数据对象跟踪审查的权限。5

三、一般数据库用户

这类用户可以连接数据库,也称为“具有CONNECT特权的用户”。主要包括:能够按照所获得的权限查询或更新数据库中的数据;可以创建视图或定义数据的别名等权限。6第二节

权限表

用户的注册信息(用户名、IP地址|主机名、密码等)以及对数据库资源的访问权限都存放在权限表中。MySQL服务器通过这些权限表控制用户对数据库的访问,权限表是数据库系统安全控制的关键。

权限表存放在MySQL数据库中,最重要的权限表是user表和db表,除此之外还有table_priv表、column_priv表和proc_priv表。7一、user表(1)范围列包括Host和User,分别表示主机名和用户名,Host和User为user表的联合主键。(2)权限列决定用户的权限,指出用户在全局范围内具有的各种权限。字段的类型为ENUM,取值只能是Y和N,Y具有的权限,N为没有权限,N为默认值。(3)安全列指定用户标识和密码等身份验证信息。(4)资源控制列限制用户使用资源,如限制每小时查询、更新、连接等操作次数。user表存储所有登录账户的信息,一共有49个字段,可以分为四类:8二、db表图8.2查看db表的字段定义db表存放用户对某个数据库的操作权限。db表的字段大致分为两类,分别是用户列和权限列。用户列权限列9三、tables_priv表tables_priv表用于对表设置操作权限,tables_priv表的结构:FieldTypeNullKeyHost|char(255NOPRIDbchar(64)NOPRIUserchar(32)NOPRITable_namechar(64)NOPRIGrantorvarchar(288)NOMULTimestamptimestampNO

Table_privset('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','CreateView','Showview','Trigger')NO

Column_privset('Select','Insert','Update','References')

NO

图8.3查看tables_priv表的字段定义10四、columns_priv表columns_priv表用于对表中某一列设置操作权限。11五、procs_priv表保存对某个存储过程或存储函数设置的操作权限。

12

MySQL权限管理系统通过两个阶段进行认证(1)对连接的用户进行身份认证,合法的用户通过认证,不合法的用户拒绝连接。(2)对通过认证的合法用户赋予相应的权限,用户可以在拥有的权限范围内对数据库做相应的操作。

13

第三节账户管理

账户管理是MySQL数据库的安全性管理的重要内容,账户管理主要内容是对上述权限表的操作。MySQL提供多个账户管理的语句,创建用户、删除用户、密码管理和权限管理。14

一、创建新用户SQL语句的基本格式如下:

CREATEUSER用户名IDENTIFIEDBY'密码’[WITH资源限制]用户名由用户名与主机名(或IP地址)组成。IDENTIFIEDBY设置密码。资源限制是可选项,规定每小时执行查询次数之类的约束。说明:只能以管理员身份登录,才有创建用户的权限,否则会被拒绝创建。151、例8.1创建新用户示例。2、查看用户表显示所有用户名,包括新建用户。16二、删除普通用户

删除普通用户的命令有两种:DROPUSER‘用户名’[,用户名]…;DELETEFROMmysql.userWHEREhost=′主机名′

AND

user=‘用户名’;17三、修改密码1.使用ALTERUSER命令修改root账户密码,利用user()函数返回当前连接MySQL的用户名和主机名。2.使用SET命令修改root账户密码。3.用户Root使用ALTERUSER命令修改普通账户的密码。184.普通账户可以如上述1、2的方法修改自己账户的密码。5.验证密码修改结果的方法是执行exit命令退出,再使用新密码重新登录。19

第四节授权与回收权限

授权是为某个用户或角色赋予某些权限,规定用户访问数据库的范围和操作限制。一、授权与被授权的层次关系

20二、MySQL的授权语句

第一种授权格式:使用ALL关键字对全局、数据库和表级用户授予全部权限。

1.

全局级别授权

GRANTALLON*.*TO用户名;

例8.4

2.

数据库级别授权

GRANTALLON数据库名.*TO用户名;

例8.5213.表级别授权

GRANTALLON数据库名.表名TO用户名;例8.6例8.7查看用户jean获得的所有权限22第二种授权格式:DBA或数据库特权用户授予其他用户对数据库对象的操作权限。语句格式:

GRANT权限ON数据库对象TO用户或角色

[WITHGRANTOPTION]说明:

(1)权限是相应对象任何有效权限的组合。ALL表示所有可能的权限。(2)数据库对象可以是一个表、视图、表或视图的列及存储过程;(3)被授权的用户或角色;(4)WITHGRANTOPTION短语表示获得权限的用户还能将权限转授给其他用户。23三、MySQL的回收权限语句第一种收回权限的格式:REVOKEALLON*.*FROM用户名;REVOKEALLON数据库名.*FROM用户名;REVOKEALLON数据库名.表名FROM用户名;第二种收回权限的格式:

REVOKE权限ON数据库对象FROM用户名;例8.9授予和回收SNO01查询SC和转授权限。GRANTSELECTONschool.SCto'sno01'@'%’withgrantoption;REVOKESELECTONschool.scfrom'sno01'@'%';REVOKEGRANTOPTIONONschool.scfrom'sno01'@'%';24

第五节角色角色是权限的集合,可以为角色授予或收回权限。用户可以被赋予角色,同时拥有角色具有的权限。

引入角色的目的是方便管理拥有相同权限的用户。

一、创建新角色语句CREATEROLErole_name;说明:role_name为角色名,命名的方法与用户名相同。创建角色时,角色无任何权限,需要授予它权限,并激活角色。25二、给角色赋予权限创建的新角色是没有任何权限的,需要给角色授权。

GRANT权限ON表名TO'role_name'[@'host_name'];三、查看角色的权限

SHOWGRANTSFOR'角色名’;例如,SHOWGRANTSFOR'teachers'@'localhost';四、收回角色的权限

REVOKE权限ON表名FROM角色名;例如,REVOKEINSERT,UPDATEONschool.SCfrom`teachers`@`localhost`;26五、给用户赋予角色

GRANTrole[,role2,...]TOuser[,user2,...];说明:给用户赋予角色,用户将获得角色的权限。六、撤销用户角色

REVOKEroleFROMuser;例如,REVOKEteachersFROMTNO01;27七、激活角色

授予角色权限和用户赋予角色,还需要激活角色才能使角色生效。激活角色的方法有多种:方式1:使用SETDEFAULTROLE命令激活角色例如,SETDEFAULTROLEALLTO'teachers'@'localhost','students'@'localhost';方式2:将activate_all_roles_on_login变量设置为ON。例如,SETGLOBALactivate_all_roles_on_login=ON;28八、删除角色DROPROLErole;说明:如果删除角色,赋予角色的用户就无法使用角色的权限。

例如,删除角色teachers,用户'TNO01'@'localhost‘将不再具有角色teachers的权限。

DROPROLE'teachers'@'localhost';29第六节视图

视图是从一个或多个基本表导出的虚表,它的数据来自于一些基本表,在数据库中只存储有关视图的定义。

视图也是数据库系统实现安全性控制的一种方法。针对不同的用户定义不同的视图,可以限制用

户的访问范围,且访问视图也需要授予权限。视图定义之后,DBMS自动维护它,当基本表数据发生变化时,视图的数据也会自动地随之变化。30一、创建视图

CREATEVIEW<视图名称>[<字段列表>]AS<SELECT查询语句>;例8.16基于多表创建视图示例3132二、更新视图数据

视图是从基本表中引用数据,通过视图也可以执行插入(INSERT)、更新(UPDATE)和删除(DELETE)表中的数据,其操作结果将转换到基本表中。但也有不能更新的情况,如视图中包含SUM()、COUNT()、MAX()和MIN()等函数;视图中包含UNION、UNIONALL、DISTINCT

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论