存取控制(续) ■定义用户权限,并将用户权限登记到数据字典中 ·用户对某一数据对象的操作权力称为权限。DBMS系统 提供适当的语言来定义用户权限,这些定义经过编译后 存放在数据字典中,被称做安全规则或授权规则。 ■合法权限检查 ■每当用户发出存取数据库的操作请求后,DBMS查找数 据字典,根据安全规则进行合法权限检查,若用户的操 作请求超出了定义的权限,系统将拒绝执行此操作。 An Introduction to Database System
An Introduction to Database System 存取控制(续) ◼ 定义用户权限,并将用户权限登记到数据字典中 ◼ 用户对某一数据对象的操作权力称为权限。DBMS系统 提供适当的语言来定义用户权限,这些定义经过编译后 存放在数据字典中,被称做安全规则或授权规则。 ◼ 合法权限检查 ◼ 每当用户发出存取数据库的操作请求后,DBMS查找数 据字典,根据安全规则进行合法权限检查,若用户的操 作请求超出了定义的权限,系统将拒绝执行此操作
存取控制(续) 常用存取控制方法 ■在自主存取控制中(Discretionary Access Control,简称DAC) ·同一用户对于不同的数据对象有不同的存取权限 ·不同的用户对同一对象也有不同的权限 ·用户还可将其拥有的存取权限转授给其他用户 ■在强制存取控制中(Mandatory Access Control,简称MAC) ·每一个数据对象被标以一定的密级 ■每一个用户也被授予某一个级别的许可证 ·对于任意一个对象,只有具有合法许可证的用户才可以存取 An Introduction to Database System
An Introduction to Database System 存取控制(续) 常用存取控制方法 ◼ 在自主存取控制中(Discretionary Access Control ,简称DAC) ◼ 同一用户对于不同的数据对象有不同的存取权限 ◼ 不同的用户对同一对象也有不同的权限 ◼ 用户还可将其拥有的存取权限转授给其他用户 ◼ 在强制存取控制中(Mandatory Access Control,简称 MAC) ◼ 每一个数据对象被标以一定的密级 ◼ 每一个用户也被授予某一个级别的许可证 ◼ 对于任意一个对象,只有具有合法许可证的用户才可以存取
授权与回收 GRANT:语句 ■GRANT语句的一般格式: GRANT<权限>[,<权限>].. 0N<对象类型><对象名>[,<对象类型><对象名>] T0<用户>[,<用户>]. [WITH GRANT OPTION]: ■谁定义?DB0和表的建立者(即表的属主) ■GRANT:功能:将对指定操作对象的指定操作权限授予指 定的用户。 An Introduction to Database System
An Introduction to Database System 授权与回收 一、GRANT语句 ◼ GRANT语句的一般格式: GRANT <权限>[,<权限>]... ON <对象类型> <对象名>[,<对象类型> <对象名>]… TO <用户>[,<用户>]... [WITH GRANT OPTION]; ◼ 谁定义?DBO和表的建立者(即表的属主) ◼ GRANT功能:将对指定操作对象的指定操作权限授予指 定的用户
WITH GRANT OPTION-子句 ■指定了WITH GRANT OPTION子句: 获得某种权限的用户还可以把这种权限再授予 别的用户。 ■没有指定WITH GRANT OPTION子句: 获得某种权限的用户只能使用该权限,不能传 播该权限 An Introduction to Database System
An Introduction to Database System WITH GRANT OPTION子句 ◼ 指定了WITH GRANT OPTION子句: 获得某种权限的用户还可以把这种权限再授予 别的用户。 ◼ 没有指定WITH GRANT OPTION子句: 获得某种权限的用户只能使用该权限,不能传 播该权限
例题(续) 例1把查询$表和修改学生学号的权限授给用户 U1,并允许他再将此权限授予其他用户 GRANT UPDATE(Sno),SELECT ON TABLE S TO U1 WITH GRANT OPTION: An Introduction to Database System
An Introduction to Database System 例题(续) 例1 把查询S表和修改学生学号的权限授给用户 U1,并允许他再将此权限授予其他用户 GRANT UPDATE(Sno), SELECT ON TABLE S TO U1 WITH GRANT OPTION;