revoke execute on UTL_RAW from public; revoke execute on UTL_NLA_ARRAY_INT from public; revoke execute on UTL_NLA_ARRAY_FLT from public; revoke execute on UTL_NLA_ARRAY_DBL from public; revoke execute on UTL_NLA from public; revoke execute on UTL_MATCH from public; revoke execute on UTL_LMS from public; revoke execute on UTL_INADDR from public; revoke execute on UTL_I18N from public; revoke execute on UTL_HTTP from public; revoke execute on UTL_GDK from public; revoke execute on UTL_FILE from public; revoke execute on UTL_ENCODE from public; revoke execute on UTL_DBWS from public; revoke execute on UTL_COMPRESS from public; revoke execute on UTL_COLL from public; SQL> spool off Stopped spooling to d:\\Program Files\\PLSQL Developer\\clear_public_privs.sql 练习6-6 使用标准数据库审核
本练习将使用Database Control 或SQL*Plus启动标准数据库审核,并查看结果。如果使用Database Control,那么确保在适当的时候单击Show SQL按钮来查看生成的SQL语句。 (1) 以用户SYSTEM的身份连接到数据库,并创建本练习使用的用户和表:
CREATE USER auditor IDENTIFIED BY oracle; CREATE TABLE system.audi AS SELECT * FROM all_users; GRANT CREATE SESSION, SELECT ANY TABLE TO auditor; GRANT SELECT ON system.audi TO auditor; (2) 使用SQL*Plus,启动对AUDITOR使用SELECT ANY PRIVILEGE的审核,以及对
表AUDI的所有访问的审核:
AUDIT SELECT ANY TABLE BY ACCESS; AUDIT ALL ON system.audi BY ACCESS; (3) 以用户SYS的身份连接到数据库。这是必须的,因为此步骤需要重新启动实例。将
审核跟踪目标设置为DB,启用权限用户的审核,关闭并重启实例,按如下所示使用SQL*Plus: ALTER SYSTEM SET audit_trail='DB_EXTENDED' SCOPE = SPFILE; ALTER SYSTEM SET audit_sys_operations=TRUE SCOPE=SPFILE; startup FORCE; 使用Database Control时,数据库主页可能的导航路径为:选择Server选项卡,然后单击Security部分中的Audit Setting链接。如果单击Configuration部分中的Audit Trail链接,将弹出一个窗口,允许修改spfile中的参数设置。另外,在Server选项卡上。单击Database
Configuratuon 部分Initialization Parameters链接,可以直接进入Initialization Parameters窗口。 在spfile中设置两个参数,此后,在数据库主页中关闭并重新启动数据库。 (4) 以SYS身份连接时,将审核所有的语句。运行以下语句: SELECT COUNT(*) FROM system.audi; (5) 如果使用Linux或Unix,则可以通过查询AUDIT_FILE_DIST参数来确定系统审核跟踪的位置。这将用于审核SYS操作,而不考虑AUDIT_DEST设置。使用SQL*Plus运行以下语句: SELECT VALUE FROM v$parameter WHERE NAME ='audit_file_dest';
使用操作系统导航到此目录,并打开最新创建的文件。
如果使用windows,请在Event Viewer中打开Application log。无论如何,都将看到以SYS身份执行的SELECT语句,以及操作系统用户和主机名的详细信息。 (6) 以AUDITOR的身份连接到数据库,并运行以下的查询: SELECT COUNT(*) FROM system.audi; SELECT COUNT(1) FROM system.product_user_profile; (7) 以用户SYSTEM的身份,运行查询来查看审核事件: SELECT SQL_TEXT, PRIV_USED, ACTION_NAME FROM DBA_AUDIT_TRAIL WHERE USERNAME = 'AUDITOR'; 注意,使用了最低权限:通过SELECT对象权限来访问AUDI表,而非功能更强大的系统权限SELECT ANY TABLE(获取PRODUCT_USER_PROFILE需要此权限)。 (8) 进行整理:
DROP USER auditor; DROP table system.audi; 本章知识点回顾
创建和管理数据库用户账户
? 用户和用户账户连接,而用户账户与模式连接。 ? 所有用户都需要在连接前进行身份验证
? 用户想要创建任何对象,必须拥有表空间上的配额。
? 如果不使用CASCADE关键字,将不能删除拥有对象的用户。
授予和撤销权限
? 默认方式下,用户什么都不能做,包括不能登录 ? 直接权限会始终被启动
? 系统权限的撤销不级联,而对象权限的撤销级联
创建和管理角色
? 角色不是模式对象
? 角色包括系统权限和对象权限以及其它角色
? 可以为会话启动或禁用角色
创建和管理配置文件
? 配置文件可以管理口令和资源限制
? 口令限制要强制实施,而资源限制取决于实例参数
? 每个用户始终都有配置文件,默认是DEFAULT配置文件
数据库安全和最小权限原则
? 未特地允许的所有权限,都要予以拒绝
? 数据库管理员和系统管理员不应由同一个人担任 ? 必须监视授予PUBLIC角色的权限
? 必须监视关键的安全实例参数,只有重新启动实例,才能更改它们
使用标准数据库审核
? 数据库审核可以针对权限、命令或对象 ? 审核记录可以指向数据库表或操作系统文件 ? 数据库审核记录存储在SYS.AUD$数据字典表中 ? 细粒度审核可以指定特定的行和列 ? 可用使用数据库触发器实现审核。
第七章 DDL和模式对象
本章学习内容
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
分类主要的数据库对象 回顾表结构
列举列可用的数据类型 创建简单的表
讨论在创建表时如何创建约束 描述模式对象的工作方式 创建和修改表 管理约束 创建索引
创建和使用临时表
创建简单视图和复杂视图 从视图中检索数据 创建、维护和使用序列 创建和维护索引
创建私有同义词和公有同义词
练习7-1 确定会话可以访问哪些对象
在这个练习中,将以用户HR身份来查询各种数据字典视图,确定HR模式中有哪些对象以及HR可以访问其它模式中的哪些对象。
(1) 使用SQL*Plus或SQL Developer,以用户HR身份连接到数据库 (2) 确定HR模式中各种类型的对象数量:
SELECT object_type,COUNT(*) FROM user_objects GROUP BY object_type;
USER_OBJECTS视图将列出当前会话连接的模式(这里是HR)拥有的所有对象。 (3) 确定HR有权访问的对象的总数 SELECT object_type,COUNT(*) FROM all_objects GROUP BY object_type;
ALL_OBJECTS视图将列出用户能够访问的所有对象。 (4) 确定谁拥有HR能够看到的对象:
SELECT DISTINCT owner FROM all_objects;
练习7-2 研究HR模式中的数据类型
在这个练习中,将通过两种方式找出在HR模式中表使用的数据类型: (1) 使用SQL*Plus或者SQL Developer,以用户HR连接到数据库 (2) 使用DESCRIBE命令显示某些表的数据类型
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库OCP认证考试指南全册Oracle Database 11g练习与知识点 - 图文(7)在线全文阅读。
相关推荐: