《 ORACLE 》 计算机技术与软件工程学院 胡斌 学习情境 6 系统安全管理( 8 学时) 按照系统的职能范围不同,可将Oracle的安全体系 结构分成三个部分; (1)数据库内部的管理:主要包括用户标识/口令 ;角色与权限等。 (2)资源管理:主要通过系统概要文件限制连接 会话等。 ( 3.

Slides:



Advertisements
Similar presentations
第二章 简单的 SQL 语句. 本章要点  创建一个简单的表  SQL 语句介绍  最简单的查询语句 select  带有限制条件的查询  查询结果的排序显示.
Advertisements

1 第 5 章 SQL 语句基础 在 Oracle 数据库中,为了方便管理用户所创建的 数据库对象,引入了模式的概念,这样用户所创建的 数据库对象就都属于该用户模式。对于一般的用户而 言,数据库中的数据是以表、视图行等方式存储的( 表和视图就是最基本的用户模式对象),用户只需要 根据自己的需求查询数据库,然后由数据库根据请求.
2010 年 6 月课件制作人:王亚楠 1 模块 2 项目开发概论 教学课件 年 6 月课件制作人:王亚楠 2 目录 目标 了解:数据库技术的基本概念与结构 理解:数据模型的分类与结构组成 掌握:关系数据库及 SQL 的基本理论 知识 掌握:数据库设计的方法与步骤 内容 2.1 数据库技术基础.
2011/11,12 南台資管 吳昭儀. 1. 使用者介面 (User Interface)  使用者操作畫面的安排  Textbox, ComboBox, ListBox, CheckList, … 2. 流程控制 (Process Control)  使用者輸入資料檢查  計算  資料輸出.
Java 技术与应用 数据库应用 ( 第 14 章 ) 西安交大 卫颜俊 2008 年 12 月 电子信箱: QQ: 网站 : /java.
第 7 章 数据库 1. Overview  数据库概述  数据库管理系统  数据库的体系结构和数据库模型  SQL 语言  数据库技术  构建数据库系统 2.
第6章: 完整性与安全性 域约束 参照完整性 断言 触发器 安全性 授权 SQL中的授权.
第四章 数据库管理和使用.
第2章 資料庫系統 2-1 資料庫環境的四大組成元件 2-2 ANSI/SPARC的三層資料庫系統架構
第5章 关系数据库标准语言SQL 主讲:张丽芳.
第2章 SQL语言初步 2.1 SQL的基本概念 2.2 基本表、索引的创建、删除和修改操作 2.3 SQL的查询语句——SELECT
OceanBase 0.4:从API到SQL 日照
数据库原理及应用 《数据库原理及应用》课程组 荆楚理工学院.
第14章 預存程序 14-1 預存程序的基礎 14-2 建立與執行預存程序 14-3 預存程序的參數傳遞 14-4 預存程序的傳回值
第4章 关系数据库标准语言SQL 4.1 SQL语言概述 4.2 SQL数据查询功能 4.3 SQL数据操作功能 4.4 SQL数据定义功能.
第十三章 SQL Server的安全管理.
資料庫 (Database) SQL Server 2008實作
第3章 SQL的基础知识 数据库管理及应用 3.1 SQL简介 3.2 SQL的数据模型 3.3 标识符 3.4 使用SQL语句管理数据库
数据库概述 简而言之,数据库(DataBase)就是一个存储数据的仓库。为了方便数据的存储和管理,它将数据按照特定的规律存储在磁盘上。通过数据库管理系统,可以有效的组织和管理存储在数据库中的数据。如今,已经存在了Oracle、SQL Server、MySQL等诸多优秀的数据库。在这一章中将讲解的内容包括。
数据库原理及设计 --作业.
MySQL 使用者名稱:USERNAME (上限16個字元)
MySQL資料庫安全管理.
第 八 章 資料庫安全 本投影片(下稱教用資源)僅授權給採用教用資源相關之旗標書籍為教科書之授課老師(下稱老師)專用,老師為教學使用之目的,得摘錄、編輯、重製教用資源(但使用量不得超過各該教用資源內容之80%)以製作為輔助教學之教學投影片,並於授課時搭配旗標書籍公開播放,但不得為網際網路公開傳輸之遠距教學、網路教學等之使用;除此之外,老師不得再授權予任何第三人使用,並不得將依此授權所製作之教學投影片之相關著作物移作他用。
第4讲 MySQL服务器的配置与应用.
第6章 資料庫管理系統 6-1 關聯式資料庫管理系統 6-2 SQL Server資料庫管理系統
温江区行政事业单位 资产管理信息系统培训 2010年10月28日.
An Introduction to Database System
数据库应用与程序设计.
版本控制工具VSS.
Oracle数据库入门.
第四章:触发器   触发器类似于过程、函数,因为它们都是拥有说明部分、语句执行部分和异常处理部分的有名的PL/SQL块。与包类似,触发器必须存储在数据库中,并且不能被块进行本地化说明。但是,对于过程而言,可以从另一个块中通过过程调用显式地执行一个过程,同时在调用时可以传递参数。对于触发器而言,当触发事件发生时就会显式地执行该触发器,并且触发器不接受参数。
課程名稱:資料庫系統 授課老師:李春雄 博士
第十一章 資料庫設計與權限設定.
数据库技术 第三章 关系数据库标准语言SQL 中国科学技术大学网络学院 阚卫华.
2、掌握SQL中各种查询方法和数据更新方法 3、掌握SQL中视图的定义方法和用法 4、掌握SQL的授权机制
Chap 10 SQL定義、操作與控制指令.
Oracle9i数据库专题培训 第三讲(数据库配置) 朱华廷(9i OCP)
資料庫安全 (Database Security)
数据库实验指导(一)
第16讲 数据库系统的增强安全性 第7章:数据库系统的增强安全性.
Transact-SQL 語言設計教學.
查詢系統或角色權限 查詢使用者權限 select * from user_sys_privs 查詢使用者角色權限
第3章 MySQL教學範本 主從式資料庫系統 - CH3.
5 数据库管理与保护 数据库运行的最小逻辑工作单位是事务,所有对数据库的操作,都以事务作为一个整体来执行或撤销。
MySQL数据库基础与实例教程 之 MySQL表结构的管理 郭水泉.
第9章 SQL Server的数据库保护技术 教学目标:通过本章学习,了解SQL Server的安全体系结构的含义和安全认证模式的分类;掌握SQL Server登录账号、用户账号及角色的创建方法;熟悉权限的分类,掌握对象权限和语句权限的管理方法;明确SQL Server中数据完整性的种类,掌握数据完整性实现的具体方法;熟悉SQL.
第三章:包   包(package)是一个可以将相关对象存储在一起的PL/SQL结构。包包含了两个分离的部件------包说明(specification)和包主体(body)。每个部件都单独被存储在数据字典中。包只能存储在数据库中,不能是本地的。除了可以将相关对象作为一组存在一起以外,包也是十分有用的,因为它们在依赖性方面的限制是比较小的。也有许多性能上的优点。
第6章 SQL Server权限管理 6.1 SQL Server权限管理策略 6.2 用户权限管理 上一章 返回目录.
第 6 章 使用者權限.
教 师:曾晓东 电 话: 数据库技术 教 师:曾晓东 电 话:
第四讲 数据库对象(视图、序列、同义词、索引)
Ch4.SQL Server 2005資料庫組成員元件介紹
SQL Injection (資料隱碼) 學生:a 吳倩瑜 指導教授:梁明章.
第 五 章 数据库安全策略 1.
第20章 MySQL数据库.
ORACLE 第九讲 触发器.
Microsoft TechNet 技術講座--資料庫技術升級系列三 精誠公司恆逸資訊 楊先民
An Introduction to Database System
CS, ZJU 4/18/2019 Chapter 7 数据库.
3.2 Mysql 命令行 1 查看数据库 SHOW DATABASES; 2 创建一个数据库test1 CREATE DATABASE test1; 3 选择你所创建的数据库 USE test1; (按回车键出现Database changed 时说明操作成功!) 4 查看现在的数据库中存在什么表.
第 6 章 建立資料庫.
SQL查询语句 蔡海洋.
OceanBase 0.4:从API到SQL 日照
第三章 SQL Server数据管理.
第六類 資料庫備份與回復.
第 7 章 建立資料表與資料庫圖表.
11 檢視表的建立 11-1 檢視表的基礎 11-2 建立檢視表 11-3 修改與刪除檢視表 11-4 編輯檢視表的內容.
第二十四讲 装库与卸库.
資料庫應用與實作 一到六章重點、習題.
Web安全基础教程
Presentation transcript:

《 ORACLE 》 计算机技术与软件工程学院 胡斌 学习情境 6 系统安全管理( 8 学时)

按照系统的职能范围不同,可将Oracle的安全体系 结构分成三个部分; (1)数据库内部的管理:主要包括用户标识/口令 ;角色与权限等。 (2)资源管理:主要通过系统概要文件限制连接 会话等。 ( 3 )网络数据通讯管理:主要采用口令文件、数 据加密等 Oracle 高级安全技术实施。

任务 1 用户管理 新建用户,控制访问权限,控制使用资源 防范非法用户,管理用户权限 – 口令,操作系统,全局认证 1. 用户管理1. 用户管理 2. 权限管理2. 权限管理 3. 角色3. 角色 4. 资源管理4. 资源管理 5. 资源限制5. 资源限制 6. 安全信息6. 安全信息

任务 1 用户管理 Create user 用户名 identified by 密码 –[Default tablespace 表空间名 ] –[Temporary tablespace 表空间名 ] 授予权限: GRANT 权限 to 用户名 Alter user 用户名 identified by 新密码 Drop user 用户名 [cascade] 用户的默认表空间存储用户所创建的对象。 临时表空间存放数据操作结果。 何时需要锁定用户? P126 默认用户 sys 和 system

d:\oracle\product\10.2.0\db_1\bin>sqlplus sys/sys as sysdba SQL> create user test identified by test; 用户已创建 SQL> show user USER 为"SYS" --显示当前连接的用户 SQL> alter user test identified by testpw; 用户已更改。 SQL> connect test/testpw; --改变连接 已连接。 SQL> alter user test identified by testrensh; 用户已更改。 SQL>

锁定用户test: SQL>alter user test account lock; 解锁的语法格式; alter user account unlock; SQL>alter user test account lock; 解锁的语法格式; alter user account unlock;

删除数据库用户的方法有两种:一是在 SQL*Plus中以system或sys连接数据库并执行 SQL语句drop user命令来删除;另一种方法是在 控制台的安全管理器中直接删除。删除用户时, 系统要求连同该用户所拥有的数据库对象一起删 除掉。删除用户的命令格式为: SQL>drop user cascade; 若不加 cascade 选项,如删除 test 用户时,则系 统提示: ora-01922: 必须指定 cascade 以便删除 'test' 。该命令是无法恢复的,

作为 DBA ,可访问数据字典视图 dba_users 来查询所有用户的信息。每个用户可访问 视图 user_users ,

列 名定 义 username用户登录数据库的名字 user_idOracle唯一的用户标识号 password加密的口令 account_status当使用口令超期函数时,关于帐户的状态。 lock_date超期函数锁定帐户的日期 expiry_date如果设置了超期参数,口令将超期的日期。 default_tablespace为用户指定的默认表空间 temporary_tablespac e 为用户的操作,如检索或排序等,指定的默认临时 工作表空间。 created用户在数据库内创建的日期 profile指定给用户的概要文件 initial_rsrc_consumer _group 初始指定的用户组 external_name外部用户的名字

任务 2. 权限管理 系统权限 ( 表 5 - 1) 和对象权限 ( 表 5 - 2) GRANT 系统权限 TO 用户 , REVOKE 系 统权限 FROM 用户。 GRANT 对象权限 ON 对象 TO 用户 , REVOKE 对象权限 ON 对象 FROM 用户。

Oracle中的权限分为系统权限和对象权限。 系统权限可使用户在系统范围内完成特定的操 作,或在一个特定对象类型上完成特定操作。例 如,create table或insert any table都是系统权限 。在使用具有any的权限时应小心。 对象权限则是用户在某个被指定用户所属的对 象上能完成特定的操作。该对象可以是表、视图 、序列、过程、函数、包、同义词、快照、类型 、java源和java类等。对象权限可延伸到表的列 级。

系统权限有 80 多种。系统权限也包含已创 建的角色。当所授权限带有 with admin option 时, 系统权限可被授予其他用户。即 借助于 with admin option ,可使被授予系 统权限的用户将该权限传递给其他用户。 DBA 可通过视图 dba_sys_privs 查询授予用 户的系统信息。用户可查询 user_sys_privs 获得与其有关的信息。

对象权限定义了用户针对数据库中现存对 象的使用权限。简言之,对象权限是对象 拥有者给予其他用户访问其对象的权限。

◆系统权限的授予: SQL>grant to |public with admin option ; ◆对象权限的授予: SQL>grant [(column, column,...)] on [schema.] to |public with grant option ; SQL>grant [(column, column,...)] on directory to |public with grant option ; ◆撤消权限格式: SQL>revoke from |public;

所有有关数据库数据字典的基本表和视图 都存储在 sys 模式下。这些基本表和视图对 Oracle 的操作是十分重要的。为维护数据 字典的完整性, sys 模式下的表只能由 Oracle 来管理。任何其他用户或数据库管 理员不能修改数据字典。如果要改变数据 字典的存储参数,只能由拥有 sysdba 系统 权限的用户 sys 完成。

system也是在创建数据库时自动创建并被 授予DBA角色。system被用于创建显示管 理信息的表和视图,以及由Oracle工具使用 的内部表和视图。用户表不能创建在 system模式下。

sysman是默认的网格控制超级管理员以及资 料档案库数据库模式的所有者。它是在安 装期间由sys创建的,其口令由用户指定。 Oracle应用服务器实例的管理员ias_admin 的默认口令与sysman的口令相同。 用sysman帐户可管理所有其他帐户,创建企 业管理器权限和角色,完成企业管理器的 初始设置。超级管理员帐户不应该用于日 常的数据库管理任务。该帐户一旦建立就 不能删除或改名。

sysman的系统权限有8种,2个角色。系统 权限有:alter user,create any table, create user,drop user,select any dictionary,unlimited tablespace。角色为 dba,mgmt_user。其中,角色mgmt_user 拥有74个在sysman模式上的对象权限和2 个系统权限create session,create trigger。

任务 3. 角色 简化安全管理,是系统权限和对象权限的 一个集合。 CREATE ROLE 角色名 ,创建角色 GRANT 系统权限 TO 角色名 GRANT 对象权限 ON 对象名 TO 角色名 撤销用 REVOKE 权限 FROM 角色名 将角色授予用户同样使用 GRANT 语句 使用 SET ROLE 控制角色有效性

所谓角色就是相关权限的集合。DBA角色是 系统预先定义并与数据库一道创建的。该 角色包含大部分的系统权限,DBA只能在 启动数据库之后执行管理操作,但不能启 动和关闭数据库。因此,该角色应该授予 专职数据库管理员。 DBA 角色并不包含 sysdba 或 sysoper 系统权 限,这两个系统权限是管理员完成数据库 管理的特殊权限,如创建数据库,实例启 动和停止等。

系统权限可实现的操作 sysdba create database。 完成启动startup和关闭shutdown操作。 alter database:打开open,安装mount,备份backup或改变字符集 。 create spfile。 archivelog和recovery。 包括restricted session权限。 该系统权限允许用户以sys用户连接数据库。 sysoper 完成启动startup和关闭shutdown操作。 create spfile。 alter database open/mount/backup。 archivelog和recovery,不能执行不完全恢复; 包括restricted session 权限。 不具备dba角色的任何权限。 该权限允许用户完成 基本的操作任务,但是却没有查看用户数据的权 利。

Oracle 的口令文件存储在特定的位置上, 在 unix 或 linux 中,口令文件的位置是在 Oracle_Home/dbs 目录下,文件名为 orapw ;在 windows 环境下,口令文 件的位置是在 Oracle_Home\database 目 录下,文件名为 pwd.ora , SID 为实例 名。

创建口令文件需要使用位于 Oracle_Home\bin 目录下的 orapwd 命令,如 d:\oracle\product\10.2.0\db_1\bin 目 录,文件名为 orapwd.exe 。创建口令文件的语法格式为: orapwd file= password= [entries= ] 其中, :创建的口令文件名字,可包括该文件所在 的路径。 :为具有 sysdba 或 sysoper 权限的用户设置内 部连接时使用的口令。如果 sys 的口令丢失可从口令文件 着手来解决。 :用来指定希望能支持的最大 DBA 用户的数目,它相当于为 DBA 预留了内部空间。因此,该 参数应根据实际多预留一些,因为该文件是不能自动扩展 的。该参数是可选的,当支持或添加的具有 sysdba 权限的 用户超过了 entries 所规定数目后,系统会出现一个错误 提示: ora : grant 失败:口令文件 ‘d:\oracle\product\10.2.0\db_1\database\pwdrensh. ora’ 已满。

当口令文件创建完后,怎样向口令文件中添加具有sysdba或 sysoper权限的管理员用户呢? 给某个用户授予sysdba或sysoper权限,必须以sysdba身份 的DBA连接数据库。 注意:一个只有 sysdba 或 sysoper 权限而没有以 sysdba 身份 连接的用户是不能给其他用户授予 sysdba 或 sysoper 权限 的。只有以 sysdba 身份登录连接数据库,而且具有 sysdba 或 sysoper 权限的用户才能给其他用户授予 sysdba 或 sysoper 权限。 所以,当 DBA 向其他用户授权时,如 grant sysdba to rensh : 则被授权用户 rensh 的口令均被同时存储并添加在数据库 和口令文件中。当执行 alter user 命令更改用户改口令时, 口令文件中的口令也随之修改。

方法:以sysdba身份的用户连接。 d:\oracle\product\10.2.0\db_1\bin>sqlplus sys/sys as sysdba SQL> select * from v$pwfile_users;

任务 4. 资源管理 合理分配资源 使用 QUOTA 语句限制用户使用表空间的 大小 限制资源的概要文件

任务 5. 资源限制概要文件 启用资源限制, ALTER SYSTEM SET RESOURCE_LIMIT=TRUE; 创建用户概要文件, CREATE PROFILE 概要文件名 LIMIT 分配概要文件, ALTER USER 用户名 PROFILE 概要文件; 更改概要文件 口令复杂性检查 Default 概要文件 强制中止用户口令

任务 6. 安全管理 显示账号信息, DBA_USERS 显示角色信息, DBA_ROLES 显示表空间限额, DBA_TS_QUOTAS 显示概要文件信息, DBA_PROFILES

案例:创建用户完整工作任务 CREATE USER soft IDENTIFIED BY soft;-- 创建用户 soft ,密码是 soft GRANT CONNECT to soft;-- 授予连接和 创建表等基本操作 GRANT UNLIMITED TABLESPACE to soft;-- 授予无限表 空间的权限 ALTER USER soft IDENTIFIED BY soft;-- 修改密码

案例:创建用户完整工作任务 -- 创建表空间 CREATE TABLESPACE softdata DATAFILE 'f:\softdata\data1.dbf' SIZE 100K REUSE AUTOEXTEND ON NEXT 100K MAXSIZE 1M, 'f:\softdata\data2.dbf' SIZE 100K REUSE; ALTER USER soft DEFAULT TABLESPACE softdata TEMPORARY TABLESPACE temp;-- 更改用户的表空间 DROP USER soft;-- 删除用户,尽量不要 cascade 删除对 象

案例:创建用户完整工作任务 -- 创建表空间 ALTER USER soft DEFAULT TABLESPACE softdata TEMPORARY TABLESPACE temp;-- 更改用户的表空间 DROP USER soft;-- 删除用户,尽量不要 cascade 删除对 象

案例:创建用户完整工作任务 GRANT CREATE SESSION,CREATE TABLE,CREATE VIEW,CREATE ANY INDEX,CREATE SEQUENCE,CREATE TYPE TO soft WITH ADMIN OPTION;-- 给 soft 用户授权系统 权限 GRANT INSERT,UPDATE,DELETE,SELECT ON dept TO soft ; GRANT ALL PRIVILEGES ON emp TO soft WITH GRANT OPTION; GRANT SELECT,INSERT(xm,jb,gz),UPDATE(fbu),REFERENCEs(xm) ON salary TO soft;

案例:创建用户完整工作任务 REVOKE UPDATE,DELETE ON dept FROM soft; REVOKE ALL PRIVILEGES ON emp FROM soft; REVOKE SELECT,INSERT,UPDATE,REFERENCEs ON salary FROM soft; CREATE ROLE appdev; GRANT CREATE SESSION,CREATE TABLE,CREATE VIEW,CREATE ANY INDEX,CREATE SEQUENCE,CREATE TYPE TO appdev;

案例:创建用户完整工作任务 GRANT INSERT,UPDATE,DELETE,SELECT ON dept TO appdev; GRANT ALL PRIVILEGES ON emp TO appdev; GRANT SELECT,INSERT(xm,jb,gz),UPDATE(fbu) ON salary TO appdev; REVOKE INSERT,UPDATE,DELETE,SELECT ON dept FROM appdev;

案例:创建用户完整工作任务 REVOKE ALL PRIVILEGES ON emp FROM appdev; REVOKE SELECT,INSERT,UPDATE ON salary FROM appdev; CREATE USER hb IDENTIFIED BY hb; GRANT appdev TO hb; CREATE ROLE dbacc; GRANT CONNECT,RESOURCE TO dbacc;

案例:创建用户完整工作任务 SELECT * FROM session_roles; ATLER USER soft QUOTA 1M ON users; GRANT UNLIMITED TABLESPACE TO soft; ALTER SYSTEM SET RESOURCE_LIMIT=TRUE; CREATE PROFILE appdev LIMIT SESIONS_PER_USER 5 CPU_PER_SESION UNLIMITED CPU_PER_CALL 3000 CONNECT_TIME 30 IDLE_TIME 30 LOGICAL_READS_PER_SESION UNLIMITED LOGICAL_READS_PER_CALL 1000 PRIVATE_SGA 200K;

案例:创建用户完整工作任务 ALTER USER soft PROFILE appdev; ALTER PROFILE appdev LIMIT FAILED_LOGIN_ATTEMPTS 3 PASSWORD_LOCK_TIME 1 PASSWORD_LIFE_TIME 30 PASSWORD_GRACE_TIME 5 PASSWORD_REUSE_TIME UNLIMITED PASSWORD_REUSE_MAX UNLIMITED;

案例:创建用户完整工作任务 ALTER PROFILE appdev LIMIT PASSWORD_VERIFY_FUNCTION vrify_function; ALTER USER soft IDENTIFIED BY 123; ALTER USER soft IDENTIFIED BY ABCD1234; ALTER USER soft PASSWORD EXPIRE;

案例:创建用户完整工作任务 SELECT username,account_status,default_tablespace,temporary_ tablespace,profile, FROM dba_users WHERE username IN('soft','system'); SELECT * FROM dba_roles WHERE role IN('CONNECT','DBA','APPDEV'); SELECT tablespace_name,username,bytes,max_bytes FROM dba_ts_quotas; SELECT profile,resource_name,limit FROM dba_profiles WHERE profile='APPDEV';

实训 作为管理员,需要给其他工作人员分配用户名和资源。首先就是 要确定他们的权限。创建一个用户 MANAGER 给部门经理,授 予 DBA 角色和 SYSDBA 系统权限,它可以替代 system 系统用 户。创建一个角色 ADMIN 备用,授予 DBA 角色和 SYSDBA 系 统权限,以后给自己备用。 – 建立自己命名的用户,设置表空间,赋予自己的用户相应的系 统权限和对象权限。 – 创建一个角色,并赋予系统权限和对象权限,将此角色授予刚 才建立的用户。 – 启用资源限制,创建概要文件,分配给刚才建立的用户。