数据库系统原理-第十章关系数据库的新课题讲述.ppt

数据库系统原理-第十章关系数据库的新课题讲述.ppt

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库系统原理-第十章关系数据库的新课题讲述

练习 步骤(5)以后的授权图 Page * 步骤(6)以后的授权图 * 第10章 关系数据库的新课题 10.1 SQL中的安全机制和用户认证 Page * * 授权ID SQL假定存在授权ID,这些ID基本上都是用户名 SQL有一个特殊的授权ID,称作PUBLIC,它包含了所有用户。 授权ID可以被授予权限 * 1. 权限 SQL中定义了九种类型的权限: SELECT、INSERT、DELETE、UPDATE REFERENCE:在完整性约束中引用关系的权力。只有当约束所在的模式拥有约束中涉及的所有数据的REFERENCE权限时,该约束才能被检查。 USAGE:在声明中使用域或其他模式元素(关系和断言除外)的权利 TRIGGER:定义这个关系上的触发器的权力 EXECUTE:执行如PSM过程|函数之类代码的权力 UNDER:创建给定类型的子类型的权力 * 权限示例 考虑下列插入语句所需的权限 拥有关系Studio的INSERT或INSERT (name)权限 拥有关系Movies的SELECT或SELECT (studioName)权限 拥有关系Studio的SELECT或SELECT (name)权限 注:拥有包含这些属性的属性列表的SELECT权限就足够了 其他属性分量上只能接受缺省值或NULL * 2. 创建权限 取得权限有两个方面需要明确: 创建权限:权限最初是如何创建的 授权:权限如何从一个用户传递到另一个用户 * 创建权限 SQL元素(如模式或模块)都有一个属主。属主拥有其所属事物的所有权限。创建权限的关键在于如何取得属主身份。 在SQL中建立属主身份有三种情况: 模式创建时,该模式及其所有模式元素的所有权都属其创建者。该用户拥有模式元素的所有可能权限 会话被CONNECT语句初始化时,可用AUTHORIZATION子句指定用户。 模块创建时,可通过AUTHORIZATION子句选择其属主 例如:CONNECT TO Starfleet-sql-server AS conn1 AUTHORIZATION kirk; 用户kirk创建了一个连接到名为Starfleet-sql-server的SQL服务器的链路conn1 。在SQL的实现中还将验证用户名是否有效,例如通过询问密码。也可将密码包含在AUTHORIZATION子句中,但这种方式密码可见。 模块也可以不指定属主,这种情况下模块被公开执行,执行模块中的任何操作所必需的权限必须从别处取得,例如在模块执行过程中连接和会话与用户的关联。 * 3. 检查权限的处理 每个模块、模式和会话有一个相关用户(即授权ID) 任何SQL操作有两部分: 操作执行涉及的数据库元素 产生操作的代理 对代理有效的权限来自当前授权ID,这个ID可以是: 模块授权ID:如果代理正在执行的模块有一个授权ID 会话授权ID 只要当前授权ID拥有执行操作所涉及的数据库元素所必需的权限,就可以执行这个SQL操作。 * 示例 关系表Movies和Studio是用户Janeway创建和拥有的模式MovieSchema的一部分。用户Janeway拥有这些表和模式MovieSchema的任何其他元素的所有权限。 该插入示例可以有如下几种执行方式: * 插入示例执行方式1 该插入作为模块的一部分来执行。假设该模块是由用户Janeway创建的,并含有AUTHORIZATION Janeway子句,则Janeway是模块授权ID。 如果有模块授权ID,该ID总是变成当前授权ID,于是Janeway成为当前授权ID。则该模块及其SQL插入语句拥有与用户Janeway相同的权限,包括表Movies和Studio的所有权限。 * 插入示例执行方式2 该插入作为模块的一部分来执行,但其所属模块没有属主。 用户Janeway在CONNECT语句中用AUTHORIZATION Janeway子句打开一个连接(会话授权ID) 。于是 Janeway再次成为当前授权ID,该插入拥有了所需的所有权限。 * 插入示例执行方式3 用户Janeway将表Movies和Studio所有权限授权给用户archer,或是代表“所有用户”的特殊用户PUBLIC 假定插入语句存在于带有AUTHORIZATION archer子句的模块中,模块授权ID是archer ,因此当前授权ID是archer。而且archer拥有所需的权限,故插入再次被允许。 * 插入示例执行方式4 假定用户Janeway已经将所需的权限给了用户archer。 同时又假定插入语句存在于没有属主的模块中,模块在一个会话中执行,该会话的授权ID由AUTHORIZATION archer子句设置。会话授权I

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档