OCP认证考试指南(11):保护Oracle数据库的安全(1)
1、调整默认的安全设置
1.1、默认的用户
查看数据库的用户和状态,可以查询DBA_USERS视图。
?[Copy to clipboard]View Code SQL
SQL> select username,account_status from dba_users;
1.2、PUBLIC权限
Oracle中存在一个名为PUBLIC的伪用户。只要用PUBLIC授予某个权限,那么所有用户都会被授予这个权限。
?[Copy to clipboard]View Code SQL
SQL> select count(*) from dba_tab_privs where grantee = 'PUBLIC';
COUNT(*)
----------
1991
SQL> select table_name from dba_tab_privs where grantee = 'PUBLIC'
2 and privilege = 'EXECUTE' and table_name like 'UTL%';
TABLE_NAME
------------------------------
UTL_RAW
UTL_TCP
UTL_INADDR
UTL_SMTP
UTL_HTTP
UTL_URL
UTL_ENCODE
UTL_GDK
UTL_COMPRESS
UTL_I18N
UTL_LMS
TABLE_NAME
------------------------------
UTL_NLA_ARRAY_DBL
UTL_NLA_ARRAY_FLT
UTL_NLA_ARRAY_INT
UTL_NLA
UTL_REF
UTL_COLL
UTL_MATCH
UTL_FILE
19 rows selected.
针对上面列出的,我们来看下某些使用起来比较危险的程序包:
UTL_FILE:这个程序包允许用户读写操作系统用户可访问的、运行Oracle进程的任务文件和目录,这些文件与目录包括所有的数据库文件以及ORACLE_HOME目录。
UTL_TCP:这个程序包允许用户为了连接网络中所有可访问的地址而打开服务机器上的TCP端口。
UTL_SMTP:使用UTL_TCP调用编写的这个程序包允许用户发送邮件消息。UTL_SMTP程序包受UTL_SMTP_SERVER实例参数限制,该参数给出了输出邮件服务器的地址。
UTL_HTTP:这个程序包同样使用UTL_TCP调用进行编写,并且允许发送HTTP消息和接收响应,结果是将数据库转换为Web浏览器。
记住:默认情况下,登入数据库的任何用户都能使用上述程序包。
虽然应用软件可以为PUBLIC用户授予执行UTL程序包的权限,但我们应当取消PUBLIC用户的这个权限。
?[Copy to clipboard]View Code SQL
SQL> revoke execute on utl_file from public;
Revoke succeeded.
2、对安全性至关重要的实例参数
提醒:这里说的参数都是静态的,被修改后必须重启实例才会有效。
2.1、UTL_FILE_DIR实例参数
UTL_FILE_DIR实例参数默认为NULL,因此不是一个安全性问题。但在设置这个参数时,要特别小心。UTL_FILE_DIR参数允许PL/SQL通过UTL_FILE补充程序
相关文档:
1. 查看密码文件中的成员:
可以通过查询视图V$PWFILE_USERS来获取拥有SYSOPER/SYSDBA系统权限的用户的信息,表中SYSOPER/SYSDBA列的取值TRUE/FALSE表示此用户是否拥有相应的权限。这些用户也就是相应地存在于密码文件中的成员。
2. 扩展密码文件的用户数量:
当向Oracle数据库密码文件添加的帐号数目超过创建密码文件时 ......
用jpa不能建表,sql语句是对的,不过就是不能建,同样的sql,在下面的jdbc中就可以,可能是框架的限制,希望高人指点
import java.net.URL;
import java.sql.*;
public class Create {
public Create() {
}
public static void main(String[] args){
String url = "jdbc:oracle:thin:@10.0.1.3:1521:SDCDB" ......
指标名称 指标描述 指标范围 指标单位
1.关于实例效率(Instance Efficiency Percentages)的性能指标
缓冲区未等待率
(Buffer Nowait %) 指在缓冲区中获取Buffer的未等待比率。 该指标的值应接近100%,如果该值较低,则可能要增大buffer cache。 %
Redo缓冲区未等待率
(Redo NoWait %) 指在Redo缓冲区获取Buffer的 ......
手动建库其实也可以分为两种,一种是不使用OMF创建,另一种是使用OMF创建。
一、不使用OMF手动创建数据库
1、创建文件夹。(根据刚才/ora01/db/oracle/admin/ocp中的目录,我们也同样创建)
?[Copy to clipboard]View Code BASH
$ mkdir /ora01/db/oracle/admin/mydb
$ cd /ora01/db/oracle/admin/mydb
$ mkdir bdum ......
Oracle入门书籍推荐
很多朋友要我帮忙推荐一下Oracle的入门书籍,能够了解Oracle的基本概念、基本知识的那种。
我就免为其难,推荐几本。
首先我想强调的一点是,任何一本系统的Oracle书籍只要认真读下来,都会有不错的收获,读书最忌讳的是虎头蛇尾,浅尝则止。
1.第一本要推荐给大家的是Oracle的概念手册,这本手册 ......