♣ 题目部分 在Oracle中,如何获取用户的权限?...若使用SYS用户创建了如下的用户LHRSYS并赋予相应的权限: CREATE USER LHRSYS IDENTIFIED BY LHRSYS; GRANT UPDATE (ENAME,SAL) ON...可以直接运行EXEC_SQL列来创建用户并赋予相应的权限。...另外还可以通过exp或expdp来获取用户的权限,这里不再演示。...& 说明: 有关权限的更多内容可以参考我的BLOG:http://blog.itpub.net/26736162/viewspace-2140775/ 本文选自《Oracle程序员面试笔试宝典》,作者:
♣ 题目部分 在Oracle中,什么是检查点?如何调优检查点? ♣ 答案部分 (一)什么是检查点? 在Oracle数据库系统中,写日志和写数据文件是数据库中消耗I/O较大的两种操作。...一般所说的检查点是一种将内存中的已修改数据块与磁盘上的数据文件进行同步的数据库事件(Event),是Oracle在数据库一致性关闭、实例恢复和Oracle基本操作不可缺少的机制。...DBWn写脏块的等待事件是db file parallel write。如果系统增量检查点频率很低,系统大量产生该事件,在排除了存储设备写性能的问题后,那么应该将增量检查点频率设置的高一些。...自Oracle 9i开始,已弃用此参数,取而代之的是参数FAST_START_MTTR_TARGET,并且该参数已成为优化增量检查点目标的首选方法。...Oracle建议用户将所有在线日志文件设置为同一大小,且每个线程至少拥有两个日志组。若要监视日志切换发生的速度,以及随后的检查点发生的速度,则告警(alert)日志是一个很有价值的工具。
♣ 题目部分 在Oracle中,如何让普通用户可以杀掉自己用户的会话?...♣ 答案部分 普通用户想要杀掉会话必须要具有ALTER SYSTEM的权限,但是由于该权限过大,用户可能使用该权限错杀其他用户的会话,所以,有没有其它办法可以实现该功能呢?...首先,可以创建一个查询自己会话信息的视图,将该视图创建公共同义词,然后创建一个存储过程,该存储过程实现杀掉会话的需要,最后将该存储过程的执行权限赋权给PUBLIC即可解决这个问题。...由于79会话属于LHR用户,所以,避免了误杀其它用户的会话,当使用LHR用户的时候,可以正常杀掉会话。...LHR也不能杀掉其它用户LHRTEST的会话。
题目部分 在Oracle中,Oracle用户密码含特殊字符时如何登陆?...答案部分 当Oracle用户密码含有特殊字符(例如,&、@、$等)的时候,SQL*Plus和exp或expdp等工具进行登录的时候在写法上有很大的差异。...:密码用双引号括起来,用户名和密码用单引号括起来,然后【用户名】+【密码】+【tns】+【as sysdba】用单引号括起来,最后的这个单引号用“\”进行转义。...在Windows平台下,使用不同客户端连接Oracle数据库的写法如下表所示: Windows平台SQL*Plus工具exp、imp、expdp、impdp普通用户无tnssqlplus lhr/"""...& 说明: 有关本小节的更多内容可以参考我的BLOG:http://blog.itpub.net/26736162/viewspace-2135493/ 本文选自《Oracle程序员面试笔试宝典》,作者
♣ 题目部分 在Oracle中,如何得到已执行的目标SQL中的绑定变量的值?...♣ 答案部分 当Oracle解析和执行含有绑定变量的目标SQL时,如果满足如下两个条件之一,那么该SQL中的绑定变量的具体输入值就会被Oracle捕获: l 当含有绑定变量的目标SQL以硬解析的方式被执行时...l 当含有绑定变量的目标SQL以软解析或软软解析的方式重复执行时,Oracle在默认情况下至少得间隔15分钟才会捕获一次。...,Oracle只会捕获那些位于目标SQL的WHERE条件中的绑定变量的具体输入值,而对于那些使用了绑定变量的INSERT语句,不管该INSERT语句是否是以硬解析的方式执行,Oracle始终不会捕获INSERT...查询视图V$SQL_BIND_CAPTURE或V$SQL可以得到已执行目标SQL中绑定变量的具体输入值。
♣ 题目部分 在Oracle中,用户的权限分为哪几类?...(二)对象权限 对象权限指访问其它用户(SCHEMA)对象的权利,用户可以直接访问自己用户的对象,但是如果要访问别的用户的对象,那么必须具有该对象的相应权限。...(四)角色权限 角色即用户权限的集合,可以对用户直接赋予某一个角色,这样,该用户就拥有了角色的所有权限。...Oracle预定义角色请参考:【3.1.2 Oracle有哪些预定义角色?】。 角色权限需要注意默认角色(Default Role)的问题。...本文选自《Oracle程序员面试笔试宝典》,作者:李华荣。
Q 题目 简述Oracle中存储过程,游标和函数的区别。 A 答案 游标类似指针,游标可以执行多个不相关的操作。...存储过程和函数的区别如下所示: ① 函数可以理解为是存储过程的一种; ② 函数可以没有参数,但是一定需要一个返回值,存储过程可以没有参数,不需要返回值; ③ 函数和存储过程都可以通过OUT参数返回值,如果需要返回多个参数那么建议使用存储过程...; ④ 在SQL数据操纵语句中只能调用函数而不能调用存储过程。...DB笔试面试历史连接 http://mp.weixin.qq.com/s/Vm5PqNcDcITkOr9cQg6T7w About Me:小麦苗 ● 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用...● 作者博客地址:http://blog.itpub.net/26736162/abstract/1/ ● 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解 ● 版权所有,欢迎分享本文
♣ 题目部分 Oracle用户的状态有几种?分别表示什么含义? ♣ 答案部分 Oracle用户的状态是由密码来决定的,而Oracle中的密码是由PROFILE来配置的。...当创建用户而没有指定PROFILE选项时,Oracle就会将DEFAULT分配给用户。...Oracle已提供该应用的脚本,为$ORACLE_HOME/rdbms/admin/utlpwdmg.sql。但是,用户可以制定自己的验证脚本。...IDENTIFIED BY LHR; 在Oracle中,若用户的密码变为锁定状态(LOCKED、LOCKED(TIMED))时,DBA可以直接执行“ALTER USER用户名 ACCOUNT UNLOCK...1、用原密码的密文来更改密码 在Oracle 10g中,DBA_USERS视图的PASSWORD字段提供了密码的密文形式,而在Oracle 11g中,该字段被弃用了,内容为空,但是在基表USER$中的PASSWORD
题目部分 在Oracle中,如何在存储过程中暂停指定时间? 答案部分 DBMS_LOCK包的SLEEP过程。例如:“DBMS_LOCK.SLEEP(5);”表示暂停5秒。...可以执行$ORACLE_HOME/rdbms/admin/dbmslock.sql来创建DBMS_LOCK包,该包可以实现让程序暂时等待的功能。...若想普通用户使用该包,则需要在SYS用户下执行“GRANT EXECUTE ON DBMS_LOCK TO USER_XXX;”命令。 本文选自《Oracle程序员面试笔试宝典》,作者:李华荣。
♣ 题目部分 在Oracle中,如何列举某个用户下所有表的注释及列的注释?...♣ 答案部分 可以使用DBA_TAB_COMMENTS视图来查询表的注释,使用DBA_COL_COMMENTS视图来查询列的注释。...它们的示例分别如下所示: 某个用户下所有表的注释: SELECT D.OWNER, D.TABLE_NAME, D.COMMENTS FROM DBA_TAB_COMMENTS D WHERE D.OWNER...某个用户下某个表的所有列的注释: SELECT D.OWNER, D.TABLE_NAME,D.COLUMN_NAME, D.COMMENTS FROM DBA_COL_COMMENTS D WHERE...& 说明: 有关Oracle数据字典的更多内容可以参考我的BLOG:http://blog.itpub.net/26736162/viewspace-2153324/ 本文选自《Oracle程序员面试笔试宝典
♣ 题目部分 在Oracle中,如何在Windows下查看Oracle的进程?...♣ 答案部分 由于Windows采用的是单进程多线程的模式,因此,Oracle一旦启动,在任务管理器里只能看到一个ORACLE.EXE的进程。...如果想要查看Oracle的各个后台进程(Linux系统下的称谓),例如PMON、SMON、DBWn、LGWR、CKPT等,那么可以通过如下几个步骤实现: ?...这里就可以看见Oracle的进程名称了。 ? 本文选自《Oracle程序员面试笔试宝典》,作者:李华荣。
卖个关子,先从远古时期的案例来一步步演化出所谓的“现代化密码编码方式”。 密码存储演进史 自从互联网有了用户的那一刻起,存储用户密码这件事便成为了一个健全的系统不得不面对的一件事。...提及明文存储密码,我立刻联想到的是 CSDN 社区在 2011 年末发生的 600 万用户密码泄露的事件,谁也不会想到这个和程序员密切相关的网站会犯如此低级的错误。...明文存储密码使得恶意用户可以通过 sql 注入等攻击方式来获取用户名和密码,虽然安全框架和良好的编码规范可以规避很多类似的攻击,但依旧避免不了系统管理员,DBA 有途径获取用户密码这一事实。...不能明文存储,一些 hash 算法便被广泛用做密码的编码器,对密码进行单向 hash 处理后存储数据库,当用户登录时,计算用户输入的密码的 hash 值,将两者进行比对。...此时狗蛋和二丫的密码即使相同,由于 salt 的影响,存储在数据库中的密码也是不同的,除非…为每个用户单独建议一张 rainbow table。
环境:Solaris 10 + Oracle 10.2.0.4 1.导出实例 2.参考内容 Reference 1.导出实例 导出sys用户下的HIST_HEAD$和WRI$_OPTSTAT_HISTHEAD_HISTORY...连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production With the Partitioning..., OLAP, Data Mining and Real Application Testing options 已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集 即将导出指定的表通过常规路径...当前的用户已更改为 SYS . . 正在导出表 HIST_HEAD$导出了 169225445 行 . ....正在导出表 WRI$_OPTSTAT_HISTHEAD_HISTORY 2.参考内容 文档 ID 553402.1 APPLIES TO: Oracle Database - Enterprise
♣ 题目部分 在Oracle中,存储概要(Stored Outline)的作用是什么?...♣ 答案部分 OUTLINE的原理是将调好的执行计划(一系列的Hint)保存起来,然后使用该效率高的执行计划替换之前效率低下的执行计划,从而使得当系统每次执行该SQL时,都会使用已存储的执行计划来执行...所以,可以在不改变已有系统SQL的情况下达到改变其执行计划的目的。OUTLINE方式是通过存储Hint的方式来达到执行计划的稳定与改变。...Oracle在Outline的表中保存了SQL的Hint,当执行SQL时,Oracle会使用Outline中的Hint来为SQL生成执行计划。...Ø使用OutLine的步骤: (1)生成新SQL和老SQL的2个Outline (2)交换两个SQL的提示信息 (3)ON LOGON触发器设定session的CATEGORY(自定义类别) SQL命令行为
♣ 题目部分 在Oracle中,如何查找存储过程或视图中引用了哪些基表?...♣ 答案部分 可以查询DBA_DEPENDENCIES视图,该视图记录了对象与对象之间的依赖关系,NAME列为当前对象,而REFERENCED_NAME为其依赖的基对象。...下例展示了DBA_SQL_PLAN_BASELINES视图依赖的对象: SH@PROD1> SELECT D.OWNER, 2 D.NAME, 3 D.TYPE...SQL$TEXT TABLE 可以看到,公共同义词DBA_SQL_PLAN_BASELINES依赖于和其同名的视图...& 说明: 有关Oracle数据字典的更多内容可以参考我的BLOG:http://blog.itpub.net/26736162/viewspace-2153324/ 本文选自《Oracle程序员面试笔试宝典
♣ 问题 在Oracle中,如何启动Oracle数据库的监听日志? ♣ 答案 Oracle监听器是一个服务器端程序,用于监听所有来自客户端的请求,并为其提供数据库服务。...在Oracle 11g下,可能位于ORACLE_BASE/diag/tnslsnr/ ② 监听器日志缺省的文件名为listener.log。...对于非缺省的监听器,则产生的日志文件通常为listenername.log。 ③ 监听器日志文件缺省由监听器自动创建,当日志文件丢失时或不存在时,会自动重新创建一个同名的文件,与告警日志文件类似。...④ 监听器日志文件的尺寸会不断自动增长,当尺寸过大时可能产生一些监听错误,这个时候可以考虑将其备份。 ⑤ Oracle监听器在运行时不允许对日志文件做删除,重命名操作。...on LSNRCTL> save_config 本文选自《Oracle程序员面试笔试宝典》,作者:小麦苗
题目部分 Oracle中如何删除表中重复的记录? 答案部分 平时工作中可能会遇到这种情况,当试图对表中的某一列或几列创建唯一索引时,系统提示ORA-01452 :不能创建唯一索引,发现重复记录。...删除重复记录后的结果也分为两种,第一种是重复的记录全部删除,第二种是重复的记录中只保留最新的一条记录,在一般业务中,第二种的情况较多。...1、删除重复记录的方法原理 在Oracle中,每一条记录都有一个ROWID,ROWID在整个数据库中是唯一的,ROWID确定了每条记录是在Oracle中的哪一个数据文件、块、行上。...在重复的记录中,可能所有列上的内容都相同,但ROWID不会相同,所以,只要确定出重复记录中那些具有最大ROWID的就可以了,其余全部删除。...& 说明: 有关删除重复数据更多的内容可以参考我的BLOG:http://blog.itpub.net/26736162/viewspace-2123234/ 本文选自《Oracle程序员面试笔试宝典》
♣ 题目部分 在Oracle中,如何监控索引的使用状况?...通过一段时间的监控,就可以确定哪些是无用的索引。...另外,为了避免使用V$OBJECT_USAGE只能查询到当前用户下索引的监控情况,可以使用如下语句查询数据库中所有被监控索引的使用情况: SELECT U.NAME OWNER, IO.NAME...,分析索引的使用情况 可以从视图DBA_HIST_SQL_PLAN中获取到数据库中所有索引的扫描次数情况,然后根据扫描次数和开发人员沟通是否需要保留索引。...& 说明: 有关索引的监控过程可以参考我的BLOG:http://blog.itpub.net/26736162/viewspace-2120752/ 本文选自《Oracle程序员面试笔试宝典》,作者:
♣ 题目部分 在Oracle中,如何获取trace文件的路径?...♣ 答案部分 跟踪文件(Trace File)一般位于“user_dump_dest”参数所指定的目录中,具体路径可以通过以下几种方式查询获得。...T.THREAD#) = V.VALUE)) I, (SELECT VALUE FROM V$PARAMETER WHERE NAME = 'user_dump_dest') D; 创建公共同义词的命令如下所示...: CREATE OR REPLACE PUBLIC SYNONYM SYN_TRACENAME_LHR FOR VW_SQL_TRACE_NAME_LHR; 查询同义词或视图都可以得到当前会话的trace....trc & 说明: 有关获取trace文件的更多内容可以参考我的BLOG:http://blog.itpub.net/26736162/viewspace-2125659 本文选自《Oracle程序员面试笔试宝典
♣ 题目部分 在Oracle中,如何提高DML语句的效率? ♣ 答案部分 若是批量处理海量数据的话通常都是很复杂及缓慢的,方法也很多,但是通常的概念是:分批删除,逐次提交。...避免在更新的过程中涉及到索引的维护。 ④ 批量更新,每更新一些记录后及时进行提交动作,避免大量占用回滚段和或临时表空间。 ⑤ 可以创建一个临时的大的表空间用来应对这些更新动作。 ⑥ 加大排序缓冲区。...⑨ 建表的参数非常重要,对于更新非常频繁的表,建议加大PCTFREE的值,以保证数据块中有足够的空间用于UPDATE。...以上这些方法都是抛砖引玉,数据库优化没有最好的方法,只有最合适的方法。...本文选自《Oracle程序员面试笔试宝典》,作者:李华荣。
领取专属 10元无门槛券
手把手带您无忧上云