1 / 20

第四章 数据库安全性

第四章 数据库安全性. 教学目标: 了解软件安全的标准 掌握数据库的授权方法 难点 : 理解授权机制 课时: 3. 4.1 计算机安全性概论. 安全性:防止因用户 非法 使用数据库造成数据泄漏、更改或破坏 4.1.1 计算机系统的三类安全性问题 计算机安全性 — 技术安全 管理安全 政策法律 4.1.2 安全标准 TCSEC : 1985 美国国防部 TCSEC/T DI: 1991 扩展到数据库 数据库 一般达到 c2 级 CC 标准. 破解密码. 进入. 应用程序. DBMS. OS. DB. 用户标识 和鉴定.

Download Presentation

第四章 数据库安全性

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第四章 数据库安全性 • 教学目标: • 了解软件安全的标准 • 掌握数据库的授权方法 • 难点: • 理解授权机制 • 课时:3

  2. 4.1 计算机安全性概论 • 安全性:防止因用户非法使用数据库造成数据泄漏、更改或破坏 • 4.1.1 计算机系统的三类安全性问题 • 计算机安全性— • 技术安全 • 管理安全 • 政策法律 • 4.1.2 安全标准 • TCSEC : 1985 美国国防部 • TCSEC/TDI: 1991 扩展到数据库 • 数据库 一般达到 c2级 • CC 标准

  3. 破解密码 进入 应用程序 DBMS OS DB 用户标识 和鉴定 存取控制 操作系统 安全保护 密码存储

  4. 4.2 数据库的安全性控制 • 安全性控制的一般方法 • 1. 用户标识合鉴定 • 最外层安全保护措施 • 用户名、口令—保证合法用户进入 • 2. 存取控制 • 自主存取控制 DAC • 保证用户只能访问他有权存取的数据 • Grant 及 Revoke • 强制存取控制 MAC • 3. 视图机制 • 4. 审计 • 5. 数据加密

  5. 数据库安全性 • 计算机系统的三类安全性问题 • DBMS 一般达到哪一级安全级别 • 数据库安全控制的方法 • 自主存取控制(DAC)、 • 强制存取控制(MAC) • 审计

  6. 4.2.4 授权与回收 • 一 授权 • Grant <权限> [,<权限>] … • [ON <对象类型> <对象名>] • TO <用户> [,<用户>] ….. • [WITH Grant Option] • 注意:sql-server 中 对象类型不需要

  7. 权限类别: • SELECT ,INSERT ,Update,Delete , • Alter , Index • ALL Privileges • CreateTab • WITH Grant OPTION • 用户获得某权限后,该用户有权把他得到的权限再授予别人

  8. 例1 把查询 student 的权限授予用户 U1 • Grant Select • ON TABLE student TO U1 • 例2 把对 student,course 表的 select ,update,insert 权限授予用户 U2,u3 • Grant select,insert,update • ON TABLE student,course TO U2,U3 • 例3 把查询 student 表和修改 学生学号的权限授予用户 U4 • Grant select,update (Sno) • ON TABLE student TO U4

  9. sa • WITH Grant Option 可以级联手全 grant select , update on student to u1 with grant option U1 :student/ select,update u1 用户授权: grant select on student to u2 U2: student / select

  10. 二 收回权限 • REVOKE <权限> [,<权限>] … • [ON <对象类型> <对象名>] • From <用户> [,<用户>] ….. • [cascade] • 例4 把用户 U4 修改 学生学号的权限收回 • REVOKE update (Sno) • ON TABLE student FROM U4

  11. 三 视图机制 • 数据库 school 已经有一个用户 U1,但没有对他进行任何授权,请你设计一种方案,使U1 用户只能查询 1号和3号课程的学生成绩 ,写出实现的语句 • create view v_sc(sno,cno,grade) AS • select * from sc where cno in (’1’ , ‘3’) • GRANT Select ON TABLE V_sc TO u1

  12. 如何在SQL-SERVER中练习 三道门: 1 进入sql server 2 school 数据库 3 student 表 School student course sc Sale account Sql server 2000

  13. 1 创建新的登录,使用户得以进入 SQL Server • sp_addlogin ‘loginame’,’passwd’ • 2 为当前数据库中添加一个帐户。 • sp_grantdbaccess 'loginame' • Loginame 当前可以登录到Sql-server 的用户 • 此条命令必须在需要被授权的数据库下执行。

  14. 例如: • 1 exec sp_addlogin ‘u1‘ , '123‘ • -- 下句必须在 school 数据库下运行 • 2 exec sp_grantdbaccess ‘u1‘ • 可以登录,可以进入 school,但对school 没有任何权限,需要用 grant 语句授权 • 3 grant select,update on student to u1

  15. 3 角色 – 组 • 1)sp_addrole ‘rolename’新建一个组 • 2)将某用户添加到某一个组(数据库角色) • sp_addrolemember ‘rolename’ ,’membername’ • Rolename: 角色 membername:成员 • 例如: • exec sp_addrolemember db_owner,'a1‘ • db_owner:已存在的角色,数据库拥有者 • 3 sp_DropRoleMember 'rolename' , ‘membername’ • 删除角色中的成员 • 4 sp_dropRole ‘rolename’ • 删除角色

  16. 查询student,修改 sc 修改student,查询、修改 sc 销售 财务 王英 刘廷 陈胜 张新 赵开 钱庆

  17. 例如: • exec sp_addlogin 'a1‘ , '11‘ , 'school‘ • exec sp_grantdbaccess 'a1‘ • exec sp_addrolemember db_owner,'a1' • 对 school可以 进行一切操作

  18. 5 删除用户 • 从一个角色中删除一个成员 • exec sp_droprolemember db_owner , ‘u1‘ • 从数据库中删除一个用户,必须指定数据库 • sp_revokedbaccess ‘用户名‘ • 从Sql-server 中删除一个用户 • sp_droplogin ‘用户名‘ • 例如: • 选中 school • sp_revokedbaccess ‘u1‘ • sp_droplogin ‘u1'

  19. 权限控制练习 • 有2个用户m1,m2 要加入数据库school,m1拥有对数据库school的一切操作权限;m2拥有对student的查询、更改姓名的权限,并且只能查询 1号课程的学生成绩 , • 1)写出对m1,m2的授权语句 • 2)收回对m2的对student的修改姓名的权限 • 3)删除 m2用户

  20. 1) sp_addlogin ‘m1’,’11’ • sp_addlogin ‘m2’ ,’22’ • exec sp_addrolemember db_owner,‘a1‘ --在数据库 school 下 • sp_grantdbaccess ‘m2’ • grant select,update(sname) on student to m2 • 2) revoke update (sname) on student from m2 • 3) sp_revokedbaccess ‘m2' • sp_droplogin ‘m2'

More Related