数据库原理与设计 第五章

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

用户与角色
• 用户要登录DBMS和DBS,都要申请帐户和密码。这就有了每个 人的几套帐号。
• 用帐号终于登录到某个DB后,对数据库、表、视图等有什么 样的操作权利(只读,读写,视图操作,等)?不由用户的 帐号决定!由用户被划分的角色来决定! • 用户进到DBMS后要被赋予不同的角色:某个DB的DBA,某个数 据库的owner,某个数据库某些表的使用者,…
数据库对象(表)的授/撤权
• 授权:
GRANT <权限> ON <表名> TO <受权者>[{, <受权者>}] [WITH GRANT OPTION] <权限>::=ALL PRIVILEGES | <操作> [{, <操作>}]
<操作>::=SELECT | INSERT | DELETE | UPDATE [(<列名表 >)] 得到授权的用 <列名表>::= <列名> [{, <列名>}] 用户的数据库级系 户,可将其获 统角色。新创建的 得的权限转授 <受权者>::= PUBLIC | <用户> 用户一般为PUBLIC 给其他用户 角色
• 由超级用户为每一个登录的用户分配角色组,每组有其规定 DB操作的权限。 • Public为公共组角色,权利低,新用户常被分到public组。 • 角色和用户之间是多对多的关系:一个业务用户可以属于多个角 色组,一个角色组有多个用户。如学生既属于选课成绩表可读角 色组,又属于选课表可读写角色组。
DAC访问控制的授/撤权
角色权限的授/撤权
GRANT <角色类型> [{ ,<角色类型>}] TO <用户> [IDENTIFIED BY <口令>] <角色类型>::=Connect|Resource|DBA 例如: GRANT DBA TO Wan 撤权: REVOKE <角色类型>[{ ,<角色类型>}] FROM <用户> 例如:REVOKE DBA FROM Wan
数据库安全性的目标
• 信息安全中有五要素:
–数据的私密性、数据的完整性、可用性、认证性和审 计。
• 数据库安全性目标是:私密性、完整性、可用性 • 绝大多数的商用RDBMS,一般是通过提供‚访问 控制‛安全服务来实现数据库的安全目标。 • 访问控制类型:
–DAC:自主访问控制 –MAC:强制访问控制 –RBAC:基于角色的访问控制策略
SQL SERVER角色定义
某RDBMS (Oracle,SQL Server„) 某个数据库 (教学管理DB)
DML使用授权 DB对象授权
RDBMS用户 Login
定义角色 (role)
某个DB用 户 授权
其他数据库
操作系统 OS (如 Windows XP)
用户login 1. SQL Server在安装时,会自动创建一些系统角色。又分为 • 服务器级的系统角色 (sysadmin,securityadmin,…) • 数据库级角色:public, dbo ① 以上系统角色的权限是固定的。 ② sa被自动分配为sysadmin角色。 ③ 数据库的用户自动分配为public角色。 ④ 创建数据库对象的用户自动分配为该对象的dbo角色。
新角色的创建
sp_addrole [ @rolename = ] ‘ 新角色名’ [ , [ @ownername = ] ‘该角色所有者’ ] 如在教学信息管理数据库中,除DBO,public外,再创建一 个DBuser-S(学生角色)
为角色增加成员用户:sp_addrolemember
删除角色:sp_droprole 查询角色信息:sp_helprole
SQL SERVER语句授权
某RDBMS (Oracle,SQL Server„) 某个数据库 (教学管理DB)
DML使用授权 DB对象授权
RDBMS用户 Login
定义角色 (role)
某个DB用 户 授权
其他数据库
操作系统 OS (如 Windows XP)
用户login
某数据库的用户。当他要执行数据库操作之前,还必须为该用户授予所要wenku.baidu.com作对象或 命令的权限。 DCL授权语法: GRANT { ALL | 语句 [ ,...n ] } TO <数据库角色或用户> [ ,...n ] 可被授权的语句: CREATE DATABASE、CREATE DEFAULT、CREATE FUNCTION、CREATE PROCEDURE、CREATE RULE、CREATE TABLE、CREATE VIEW、BACKUP DATABASE、BACKUP LOG。
数据库安全性概况
• 定义:数据库的安全性(Security)是指保护数 据库,防止不合法的使用,以免数据的泄密、 更改或破坏。
• 从低到高在五个级别上设臵各种安全措施:
环境级。职员级。OS级。网络级。DBS级。
DBMS与OS在安全上的关系
• 除了OS的安全屏障外,DBMS为加强其安全性, 亦应建立有自己的安全体系; • 由于DBMS建立在OS之上,要求OS提供承诺,即: 不允许用户绕过DBMS安全体系而直接访问DB; • 正是因为DBMS和OS有各自独立的安全体系,因 此OS的用户要想访问DBMS,必须由DBA设臵成 DBMS的用户。
DB级
语句对象级
SQL SERVER登录用户
某RDBMS (Oracle,SQL Server„) 某个数据库 (教学管理DB)
DML使用授权 DB对象授权
RDBMS用户 Login
定义角色 (role)
某个DB 用户 授权
其他数据库
操作系统 OS (如 Windows XP)
用户login 1. SQL SERVER在安装时,自动创建sa(系统管理员),具有三级体系的 所有权限。 2. 由sa创建RDBMS登录用户:可利用存储过程 sp_addlogin [@loginame = ] ‘登录名’ [ , [ @passwd = ] ‘口令’ ] [ , [ @defdb = ] ‘缺省数据库名’ ] 3.登录用户一旦创建即可连接 SQL Server。如果指定了默认数据库,则一登 录SQL Server就连接到该数据库。
SQL SERVER数据库用户
某RDBMS (Oracle,SQL Server„) 某个数据库 (教学管理DB)
DML使用授权
RDBMS用户 Login
定义角色 (role)
某个DB 用户
授权
DB对象授权
其他数据库
操作系统 OS (如 Windows XP)
用户login
1. 一个登录用户在被设定为某个数据库用户之前,可用guest用户身份访问该数据 库。 2. 定义登录用户为某个DB用户,可访问某个数据库。 sp_grantdbaccess [ @loginame = ] ‘登录名' [ , [ @name_in_db = ] ‘访问数据库时用的名字’ ] 3. 该命令必须在所要访问的数据库下执行。
•可被授予的权限(Authorization) (1)角色权限 ── 用户在DB中被赋予不同的角色, 角色不同则权限也不同。由DBA授予;
(2) DB对象权限 ── 对不同的数据库对象,其可 提供给用户的操作也不一样。由DBA或对象创建 者授予。 •授权语句(SQL的DCL子集)
•撤权语句(SQL的DCL子集)
• 撤权:
REVOKE <权限> ON <表名> FROM <受权者> [{, <受权者>}]
数据库对象权限授权示例
• SQL2定义了六种权限:SELECT,INSERT,DELETE, UPDATE,REFERENCES,USAGE(对已定义域的授权) 例1:把对关系S的查询,修改权限授给用户WANG,且 WANG还可以把这些权限转授给其他用户。 GRANT SELECT,UPDATE ON S TO WANG WITH GRANT OPTION 例2:把对关系SC中Score的修改权限授给用户LIU。 GRANT UPDATE (Score) ON SC TO LIU 例3:用户SUN建立新关系时,可以引用关系C的主键Cid作为 新关系的外键。 GRANT REFERENCES(Cid) ON C TO SUN • 回收权限 REVOKE SELECT,UPDATE ON S FROM WANG CASCADE
安全级别
• 现状:目前大多数RDBMS支持C2级DAC和B1级MAC。 • DoD(美国防部)的桔皮书中定义: • 计算机系统的安全级为A、B、C和D四个等级,A最高, D最低。
• C级:要求支持DAC,又分二个子级C1、C2。C2要求身份 认证(Login verification)和审计跟踪(Audit Trails)。
访问控制类型
• 自主访问控制DAC (Discretionary Access Control):基于 访问权限概念。SQL2通过GRANT(授权)和REVOKE (撤权)支持该DAC。 • 强制访问控制MAC (Mandatory Access Control):基于全 系统范围策略,而不由某个用户改变。 • 客体(Object,如:各种DB对象)和主体(Subject,如:用户、 计算机、进程等)分别具有相应的安全级别(Security Class和 Clearance),如:绝密(Top-secret,TS)、机密( Secret,S)、 秘密( Confidential,C)和无密级(Unclassified,U),主体只 有在满足一定规则(如:下读——主体的安全级别必须 高于所读客体的安全级别 、上写——主体的安全级别必 须低于所写入的客体的安全级别)才能访问某个客体。 • 标准支持情况:SQL-92不支持MAC。
主要内容:
1.SQL SERVER安全体系结构
2.SQL SERVER登录用户
3.SQL SERVER数据库用户 4.SQL SERVER角色定义 5.SQL SERVER语句授权 6.SQL SERVER对象授权
SQL SERVER安全体系结构
某RDBMS (Oracle,SQL Server„) RDBMS用户 Login 定义角色 (role) 某个DB 用户 授权 某个数据库 (教学管理DB)
用户、角色、权限关系
某RDBMS (Oracle,SQL Server„) RDBMS用户 Login 定义角色 (role) 某个DB 用户 授权
某个数据库 (教学管理DB)
DML使用授权 DB对象授权
其他数据库
操作系统 OS (如 Windows XP)
用户login
SQL SERVER安全体系
DML使用授权 DB对象授权
其他数据库
操作系统 OS (如 Windows XP)
用户login
说明: ① 登录名可以与DB用户名相同。登录用户只有在成为某个DB的用 户时才能访问该DB。 ③ 由上图可知,SQL SERVER安全体系由三级组成,即:DBMS或DB服务 器、DB、语句与对象级。
DBMS级
• B级:要求支持MAC,又分三个子级B1、B2、B3。 • A级:要求有数学防范能力。
用户标识与鉴别
• 用户标识:用户名。 • 用户鉴别: • 只有用户知道的信息,如口令、公式等;
• 只有用户具有的物品,如钥匙、IC卡等;
• 个人特征,如指纹、眼波纹等。 • 最常见的用户鉴别:口令,要求长度/时间长短/不回显, 不可逆加密保存。
数据库原理及设计
Principle and Design of Databases
主讲: 朱 焱 教授
yzhu@swjtu.edu.cn SIST, SWJTU 2011.11
第五章
学习内容和要求
•数据库保护概况
•数据库安全性
数据库的保护
•数据库完整性
•故障恢复
•并发控制
数据库保护概况
• 数据库破坏类型 System Failure; Concurrency Execution引起数据不一致; 非法用户; 非法数据。 • 各种类型的保护措施 ① System Failure ── 故障恢复; ② Concurrency Execution引起数据不一致 ── 并发控制; ③ 非法用户── 数据库安全(权限控制); ④ 对数据操作引入的数据错误 ── 数据库 完整性。
SQL中的安全性机制
• 视图:被用来对无权用户屏蔽物理数据。 • 权限:将对数据库对象的操作定义为权限提供给用户。 • 用户是实际的人或是访问数据库的应用程序。
• 从应用业务角度看,某个数据库可有多个用户:
• 教学管理数据库系统:学生、教师、学院教务员、校教 务处人员、家长。 • 每个用户有独立的ID和PSW,用户需要登录到DB中才 能使用DB。 • 角色是一组具有相同权限的用户。
相关文档
最新文档