第2章数据库的安全性与完整性.ppt
数据库安全性与完整性,王志波 武汉大学计算机学院,数据库安全性与完整性,数据库安全性介绍 数据库安全控制方法 MySQL用户创建与授权 数据库完整性,武汉大学计算机学院,数据库安全性,在共享数据库中数据的同时,必然带来数据库的安全性问题 什么是数据库安全性 对数据库进行安全控制,保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏 不单单数据库存在安全性问题,所有计算机系统都有安全性问题 数据库的安全性和计算机系统的安全性是紧密联系、互相支持的,武汉大学计算机学院,数据库安全标准,1991年4月,美国国家计算机安全中心颁布了可信计算机系统评估标准关于可信数据库系统的解释(Trusted Database Interpretation, TDI, 即紫皮书) TDI标准将数据安全划分为4组7级 A1级验证设计 B3级安全域 B2级结构化保护 B1级标记安全保护 C2级受控的存取保护 C1级自主安全保护 D级最小保护 DBMS常用的安全级别是C2级、C1级和B2级,武汉大学计算机学院,数据库安全标准,C2级。控制式访问保护级,具有主体与客体分离、身份标识与鉴别、数据完整性保护、自主访问控制、审计与资源隔离功能。其安全的核心是审计,是安全产品的最低档次 B1级满足C2级标准,具有强制访问控制。其安全的核心是强制访问控制,适于网络方式,被认为真正的安全产品,满足此级别的产品前一般冠以“安全”或“克星”字样 B2级满足B1级标准,具有预防隐蔽通道、建立形式化的安全模型。其安全的核心是预防隐蔽通道与安全的形式化,适用于网络方式,武汉大学计算机学院,数据库安全性与完整性,数据库安全性介绍 数据库安全控制方法 MySQL用户创建与授权 数据库完整性,武汉大学计算机学院,数据库系统安全模型,武汉大学计算机学院,操 作请 求,网络控制,OS保护,DB,DBMS 安全控制,身份 认证,访问控制,视图 限制,数据加密,审计追踪,数据库安全控制方法,身份认证 最外层安全保护措施用户标识与识别 访问控制 定义用户权限、合法权限检测 视图限制 对无权存取的用户隐藏保密数据 审计追踪 监视追踪用户存取活动 数据加密 采用加密技术,武汉大学计算机学院,身份认证,系统内部记录所有合法用户的标识,每次用户访问时,系统进行核对 用户标识与识别 用户名和口令 指纹认证 虹膜认证 数字签名,武汉大学计算机学院,访问控制,定义用户权限 定义用户使用数据库的权限,并将用户权限登记到数据字典中 合法权限检查 若用户的操作请求超出了定义的权限,系统将拒绝执行此操作 用户权限组成数据对象和操作类型 3种常用访问控制方法 自主访问控制 强制访问控制 基于角色访问控制,武汉大学计算机学院,自主访问控制,用户对于不同的数据对象有不同的存取权限,不同的用户对同一对象也有不同的权限,而且用户还可将其拥有的存取权限转授给其他用户 特点灵活简便 用户可利用DBMS的授权功能主动实施 访问控制受主体随意性的影响较大,适于单机方式下的安全控制 存在“失控”问题 仅仅对数据的存取权限进行安全控制,对数据本身并无安全性标记,武汉大学计算机学院,强制访问控制,基于被访问对象的信任度进行权限控制 每一个数据对象被标以一定的密级 每一个用户也被授予某一个级别的许可证 敏感度标记被分成若干级别,例绝密、机密、可信、公开等 对于任意一个对象,只有具有合法许可证的用户才可以存取 适用于对数据有严格而固定密级分类的部门,武汉大学计算机学院,基于角色访问控制,介于自主访问控制与强制访问控制之间的一种“中性”策略 角色是一个或一群用户在组织内的成为或一个任务的集合 角色可以根据组织中的不同工作创建,然后根据用户的自测分配角色及进行角色转换 对不同的角色定义不同的存取权限称为授权 只有系统管理员能分配角色和权限定义 用户只有通过角色享有对应的访问权限,武汉大学计算机学院,基于角色访问控制,介于自主访问控制与强制访问控制之间的一种“中性”策略 角色是一个或一群用户在组织内的成为或一个任务的集合 角色可以根据组织中的不同工作创建,然后根据用户的自测分配角色及进行角色转换 对不同的角色定义不同的存取权限称为授权 只有系统管理员能分配角色和权限定义 用户只有通过角色享有对应的访问权限,武汉大学计算机学院,如何实现访问控制,用户分类与权限 系统用户(DBA)拥有数据库系统提供的全部权限 数据对象的属主创建某个数据对象的用户 一般用户经过授权的用户 公共用户全体数据库用户 常用权限 数据访问权限 读、插入、修改等 数据库管理权限 索引、修改、撤销等,武汉大学计算机学院,SQL Server,系统管理员,DBA,数据库对象用户,数据库访问用户,其他控制方法,视图机制 通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全保护 审计追踪 对选定的用户动作的监控和记录,以监测可能的不合法行为 数据加密 以密码形式存储和传输数据,武汉大学计算机学院,数据库安全性与完整性,数据库安全性介绍 数据库安全控制方法 MySQL用户创建与授权 数据库完整性,武汉大学计算机学院,用户创建,连接各个数据库最好不要用root账号,需要分配对应的账户,保证数据库的安全与方便用户管理,武汉大学计算机学院,创建用户 CREATE USER usernamehost IDENTIFIED BY password,username 用户名 host 本地登陆是localhost, 远程登陆是通配符,还可以指定ip password用户登陆密码,例 CREATE USER user1localhost IDENTIFIED BY 123 /允许本地登陆 CREATE USER user2 IDENTIFIED BY 123 /允许用户远程登陆,用新建用户登陆 mysql -u user1 -p,用户授权,授权用户在给定的数据库对象上进行特定的操作 数据库对象表/视图、列、域等 操作INSERT, UPDATE, DELETE, SELECT, REFERENCES, TRIGGER, UNDER, USAGE等,武汉大学计算机学院,授权用户 将对指定操作对象的指定操作权限授予指定的用户 GRANT , |ALL ON , TO , | PUBLIC WITH GRANT OPTION,对不同类型的操作对象有着不同的操作权限 PUBLIC是公共账户 WITH GRANT OPTION允许被授权用户再把授予他的特权授予 其他用户,用户授权,武汉大学计算机学院,授予全部权限 GRANT , |ALL PRIVILEGES ON databasename.tablename TO usernamehost WITH GRANT OPTION,ALL PRIVILEGES 授予全部权限 databasename 要授权的数据库名称,如果是全部的数据库,用* tablename表名称,如果是全部的表,用,例将数据库stu_info所有权限给user1 GRANT ALL PRIVILEGES ON stu_info.* TO user1localhost,用户授权,武汉大学计算机学院,例只将表格student的所有权限给user2 GRANT ALL PRIVILEGES ON stu_info.student TO user2localhost,例只将表格course的插入权限给user2 GRANT INSERT ON stu_info.course TO user2localhost,授权后记得刷新系统权限表 PRIVILEGES,用户授权及查看,武汉大学计算机学院,例授权用户查询、插入、更新、删除给user1 GRANT SELECT, INSERT, UPDATE, DELETE ON stu_info.s_c TO user2localhost,查看用户权限 SHOW GRANTS for usernamelocalhost,例 SHOW GRANTS for rootlocalhost; SHOW GRANTS for user1localhost,权限回收,武汉大学计算机学院,收回权限 REVOKE , |ALL PRIVILEGES ON databasename.tablename FROM usernamehost,例收回user对student表格的操作权限 REVOKE ALL PRIVILEGES ON stu_info.student FROM user1localhost,修改用户密码,武汉大学计算机学院,修改密码 GRANT ALL PRIVILEGES ON databasename.* TO usernamehost IDENTIFIED BY newpwd,例修改user1的密码为234 GRANT ALL PRIVILEGES ON *.* TO user1localhost IDENTIFIED BY 234,删除用户,武汉大学计算机学院,方式1 DELETE FROM mysql.user WHERE Userusername and Hostlocalhost; PRIVILEGES,例删除user1 DELETE FROM mysql.user WHERE Useruser1 and Hostlocalhost,方式2 DROP user username; DROP user usernamelocalhost,例删除user2 DROP USER user2localhost,实验内容1,创建用户user3,密码123, 可以从本地登陆 创建用户user4,密码123, 可以从本地登陆 尝试分别用user3 和user4连接数据库 查看系统中的数据库, 命令SHOW DATABASES; 授予user3用户操作stu_info数据库的全部权限 再次查看user3下系统的数据库,以及可访问的表格 授予user4用户操作s_c表的插入权限 查看user4下系统的数据库以及可访问的表格 插入一个元组到s_c表中 删除新插入的元组,武汉大学计算机学院,实验内容1,查看user3的权限 收回user3对course表的操作权限 查看user3的最新权限 修改user3的密码为234 用两种删除方式分别删除user3和user4,武汉大学计算机学院