《安全数据字典》PPT课件.ppt

上传人:牧羊曲112 文档编号:5492743 上传时间:2023-07-13 格式:PPT 页数:50 大小:209.50KB
返回 下载 相关 举报
《安全数据字典》PPT课件.ppt_第1页
第1页 / 共50页
《安全数据字典》PPT课件.ppt_第2页
第2页 / 共50页
《安全数据字典》PPT课件.ppt_第3页
第3页 / 共50页
《安全数据字典》PPT课件.ppt_第4页
第4页 / 共50页
《安全数据字典》PPT课件.ppt_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《《安全数据字典》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《安全数据字典》PPT课件.ppt(50页珍藏版)》请在三一办公上搜索。

1、安全管理&数据字典,Oracle的安全体系结构,按照系统的职能范围不同,可将Oracle的安全体系结构分成三个部分;(1)数据库内部的管理:主要包括用户标识/口令;角色与权限等。(2)资源管理:主要通过系统概要文件限制连接会话等。(3)网络数据通讯管理:主要采用口令文件、数据加密等Oracle高级安全技术实施。,登陆,登陆:conn scott/tigerconn sys/change_on_install as sysdba 查看用户show userselect user from dual;,Sqlconn scott/tiger as sysdbaSqlselect user from

2、 dual;USER-SYS,原因在于oracle数据库与操作系统有一个紧密的集成,当你以Adminstrator登陆操作系统时,就能以sysdba的角色登陆,创建用户,在管理工具中创建用户;在sqlplus中创建:CREATE USER userIDENTIFIED BY password|EXTERNALLY DEFAULT TABLESPACE tablespace TEMPORARY TABLESPACE tablespace QUOTA integer K|M|UNLIMITED ON tablespace QUOTA integer K|M|UNLIMITED ON tablesp

3、ace.PASSWORD EXPIRE ACCOUNT LOCK|UNLOCK PROFILE profile|DEFAULT,创建用户例,创建ttuserSQL create user ttuser profile DEFAULT identified by ttuser123 account unlockSQL conn ttuser/ttuser123ERROR:ORA-01017:invalid username/password;logon deniedSQL conn scott/tiger as sysdba;已连接。SQL grant connect to ttuser;授权成

4、功。SQL conn ttuser/ttuser123已连接。,修改用户,修改用户的默认表空间ALTER USER TEST DEFAULT TABLESPACE USERS;修改用户口令ALTER USER TEST IDENTIFIED BY TT123;锁定帐户ALTER USER TEST ACCOUNT LOCK;解锁帐户ALTER USER TEST ACCOUNT UNLOCK;,删除帐户,删除数据库用户的方法有两种:一是在SQL*Plus中以system或sys连接数据库并执行SQL语句drop user命令来删除;另一种方法是在控制台的安全管理器中直接删除。删除用户时,系统要

5、求连同该用户所拥有的数据库对象一起删除掉。删除用户的命令格式为:SQLdrop user cascade;若不加cascade选项,如删除test用户时,则系统提示:ora-01922:必须指定cascade以便删除test。该命令是无法恢复的,,查看用户信息,作为DBA,可访问数据字典视图dba_users来查询所有用户的信息。每个用户可访问视图user_users,,权限,Oracle中的权限分为系统权限和对象权限。系统权限可使用户在系统范围内完成特定的操作,或在一个特定对象类型上完成特定操作。例如,create table或insert any table都是系统权限。在使用具有any的

6、权限时应小心。对象权限则是用户在某个被指定用户所属的对象上能完成特定的操作。该对象可以是表、视图、序列、过程、函数、包、同义词、快照、类型、java源和java类等。,权限,权限是执行某种类型的sql语句、操作其他用户的对象和执行特定操作的权力;常见的权限:创建表;从另一个用户的表中操作数据;执行另一个用户的存储过程;赋予权力的两种方式:显示的将权限授予用户;把某种权限授予给角色,再为用户添加这个角色;授权:grant取消权限:revoke,对象权限,方案对象权限是对特定方案对象执行操作的权力,这些方案对象包括:表视图序列过程函数包,表安全,可在表和视图上赋予DELETE、SELECT、UPD

7、ATE、INSERT权限;All表示以上所有的权限,SQL conn ttuser/ttuser123已连接。SQL select*from scott.emp;select*from scott.emp*ERROR 位于第 1 行:ORA-00942:表或视图不存在SQL conn scott/tiger;已连接。SQL grant all on emp to ttuser;授权成功。SQL conn ttuser/ttuser123已连接。SQL select ename from scott.emp where empno=7369;,表安全,Grant select on scott.

8、emp to test whit grant option;Grant insert on scott.emp to test whit grant option;Grant delete on scott.emp to test whit grant option;Grant update on scott.emp to test whit grant option;,级联授权:Test用户就可以给其他用户进行grant select on的授权了,把过程执行的权限赋给test Grant EXECUTE on 过程名 to test whit grant option;,系统授权,系统授权

9、Grant create user to test;Grant drop user to test;Grant create user to test with admin option;解除权限:Revoke select on scott.emp from test,with admin option与with grant option的区别,撤消带有with admin option的系统权限,with admin option与with grant option的区别,撤消带有with grant option的对象权限,特殊的帐户和权限,SYS 所有有关数据库数据字典的基本表和视图都

10、存储在sys模式下。这些基本表和视图对Oracle的操作是十分重要的。为维护数据字典的完整性,sys模式下的表只能由Oracle来管理。任何其他用户或数据库管理员不能修改数据字典。如果要改变数据字典的存储参数,只能由拥有sysdba系统权限的用户sys完成。,特殊的帐户和权限,system也是在创建数据库时自动创建并被授予DBA角色。system被用于创建显示管理信息的表和视图,以及由Oracle工具使用的内部表和视图。用户表不能创建在system模式下。,DBA角色,所谓角色就是相关权限的集合。DBA角色是系统预先定义并与数据库一道创建的。该角色包含大部分的系统权限,DBA只能在启动数据库之

11、后执行管理操作,但不能启动和关闭数据库。因此,该角色应该授予专职数据库管理员。DBA角色并不包含sysdba或sysoper系统权限,这两个系统权限是管理员完成数据库管理的特殊权限,如创建数据库,实例启动和停止等。,sysdba与sysoper的区别,角色,角色是相关权限集合的一个命名组;Create role myrole;Grant select on scott.emp to myrole;Grant select on scott.dept to myrole;Grant myrole to test;,概要文件,概要文家被用来控制用户对系统和数据库资源的使用;例如:生成一个mypro

12、file,规定用户登陆密码最多只能错三次;实验.,create profile pro_test limit FAILED_LOGIN_ATTEMPTS 3;,数据字典是Oracle数据库系统的信息核心,它是一组提供有关数据库信息的表和视图的集合。这些表和视图是只读的。,数据字典是随数据库的建立而建立的。为及时准确反映数据库的状态,数据字典中内容是随数据库执行特定动作时自动更新的。同时,数据库依赖于数据字典来记录、校验和管理正在进行的操作。Oracle用户SYS拥有系统中数据字典Data Dictionary。数据字典是存在所属数据库的系统表空间SYSTEM Tabalspace内。每个用户在

13、该数据库中的所有操作都会被记录下来。,什么是数据字典,数据字典提供的信息,数据库用户名称;为用户授予的权限和角色;模式对象的名称,如tables,views,indexes,procedures,functions,packages,triggers等。完整性约束的具体信息;每个字段的默认值;数据库空间的使用情况;对象与用户的严格管理(适用于高度机密管理);其他一般数据库信息。,数据字典分为哪几类?,静态数据字典静态表,动态数据字典视图,SYS用户,呈现形式,用途,主要存放通过CREATE创建的永久数据库对象,是一组主要以以下几个形式开头的表:ALL_、DBA_、USER_。表的名字基本都是该

14、字典所存储对象类型的缩写,静态数据字典,只要数据库打开被使用,这些虚拟表中的数据会随时反映数据库的运行状况而不断更新。,动态数据字典,动态数据字典都是以V$开头存放在Oracle数据库中的虚拟表中。,呈现形式,作用,数据字典data dictionary 有三个主要用途:Oracle 通过存取数据字典以便获得有关用户模式对象以及存储结构等信息。当系统执行了DDL语句后,Oracle便及时修改数据字典。.任何用户能够以只读的形式使用数据字典来获取数据库信息。,通过数据字典可以做什么?,怎样使用数据字典?,数据字典视图为所有用户充当着参考书作用。用户使用SQL语句存取数据字典。有些数据字典视图对所

15、有Oracle用户是可存取的。而其他的数据字典视图仅供数据库管理员使用。在数据库打开期间,数据字典是可用的,它驻留在SYSTEM表空间上,并总是处于在线状态。,三种前缀的数据字典视图,The table named DUAL is a small table in the data dictionary that Oracle and user-written programs can reference to guarantee a known result.This table has one column called DUMMY and one row containing the v

16、alue X.主要用于表达式计算,函数及变量的求值等例如:Select sysdate from dual;,DUAL表,在运行期间,Oracle 维持着一组用以记录当前数据库活动的虚表,这些表被称为动态性能表。用户不能存取这些表。但数据库管理员能够在这些表上查询并创建视图,并授予存取权限给其他读取这些视图的用户。SYS拥有动态性能表,这些表的名字都是以V_$开头.在这些表上创建的视图的同义词是以 V$开头.,动态性能表,查看当前用户的缺省表空间 SQLselect username,default_tablespace from user_users;查看当前用户的角色 SQLselect*

17、from user_role_privs;查看当前用户的系统权限和表级权限 SQLselect*from user_sys_privs;SQLselect*from user_tab_privs;,SQL select*from dba_data_files;SQL select*from dba_tablespaces;/表空间 SQL select tablespace_name,sum(bytes),sum(blocks)from dba_free_space group by tablespace_name;/空闲表空间 SQL select*from dba_data_files w

18、here tablespace_name=TEST;/表空间对应的数据文件 SQL select*from dba_segments where tablespace_name=INDEXS;查询用户模式对象所使用过的或正在使用空间大小SQL select name,type,source_size,code_size from user_object_size;,查询表空间,查询数据库对象,select*from dba_objects;可根据拥有者查询下列对象类型:CLUSTER、DATABASE LINK、FUNCTION、INDEX、LIBRARY、PACKAGE、PACKAGE BO

19、DY、PROCEDURE、SEQUENCE、SYNONYM、TABLE、TRIGGER、TYPE、UNDEFINED、VIEW。如:select*from dba_objectswhere OBJECT_TYPE=TABLE and OWNER=SCOTT;,SQL select*from dba_tables;查看用户下所有的表 SQLselect*from user_tables;查看名称包含log字符的表 SQLselect object_name,object_id from user_objects where instr(object_name,LOG)0;查看某表的创建时间 SQ

20、Lselect object_name,created from user_objects where object_name=upper(,查询表,select*from dba_indexes;/索引,包括主键索引select*from all_indexes;select*from dba_ind_columns;/索引列select i.index_name,i.uniqueness,c.column_namefrom user_indexes i,user_ind_columns cwhere i.index_name=c.index_nameand i.table_name=EMP

21、;/联接使用 查看索引个数和类别 SQLselect index_name,index_type,table_name from user_indexes order by table_name;,查询索引,select*from dba_sequences;select*from all_sequences;,查询序列,查询视图,select*from dba_views;select*from all_views;查看视图的名称 SQLselect view_name from user_views;查看创建视图的select语句 SQLselect view_name,text from

22、 user_views;SQLset long 2000;,查询同义词,SQL select*from dba_synonymswhere table_owner=SCOTT;SQL select*from ALL_synonyms;where table_owner=SYSTEM;,SQL select*from dba_trigers;存储过程,函数从dba_objects查找。其文本:SQL select text from user_source;where name=BOOK_SP_EXAMPLE;oracle总是将存储过程,函数等放在SYSTEM表空间。,查询触发器,查看函数和过程

23、的状态,SQLselect object_name,status from user_objects where object_type=FUNCTION;SQLselect object_name,status from user_objects where object_type=PROCEDURE;查看函数和过程的源代码 SQLselect text from all_source where owner=user and name=upper(,(1)约束是和表关联的,可在create table或alter table table_name add/drop/modify来建立、修改

24、、删除约束。可以临时禁止约束,如:SQL alter table book_exampleSQL disable constraint book_example_1;SQL alter table book_exampleSQL enable constraint book_example_1;(2)主键和外键被称为表约束,而not null和unique之类的约束被称为列约束。通常将主键和外键作为单独的命名约束放在字段列表下面,而列约束可放在列定义的同一行,这样更具有可读性。,查询约束,(3)列约束可从表定义看出,即describe;表约束即主键和外键,可从dba_constraints和d

25、ba_cons_columns 查。select*from user_constraintswhere table_name=EMP;SQL select owner,CONSTRAINT_NAME,TABLE_NAME from user_constraints where constraint_type=Rorder by table_name;(4)定义约束可以无名(系统自动生成约束名)和自己定义约束名(特别是主键、外键)如:create table book_example(identifier number not null);create table book_example(id

26、entifier number constranit book_example_1 not null);,查看某表的约束条件 SQLselect constraint_name,constraint_type,search_condition,r_constraint_name from user_constraints where table_name=upper(,如果知道自己要查的对象类型,但却不知道数据字典的具体名称时,应怎样查找相应的数据字典?,在数据字典中,有两个特殊的表:,如果想查询跟索引有关的数据字典时,可以用下面这条SQL语句:SQLselect*from dictionar

27、y where instr(comments,index)0;,如果想查询跟表有关的数据字典时,可以用下面这条SQL语句:select*from dictionary where instr(comments,table)0;查询其他类型的数据字典时,将对象名称修改即可。方法:将table替换成相应的对象类型即可。依次类推,使用下列格式:select column_name,comments from dict_columns where table_name=datadictionary_tablename;,如果知道相关数据字典表(视图)的名称,却不知道该表(视图)每个字段的含义,怎么办?,如果我们想知道user_indexes表各字段名称的详细含义,可以用下面这条SQL语句:select column_name,comments from dict_columns where table_name=USER_INDEXES;,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号