使用PRODUCT_USER_PROFILE表增强SQL*Plus的安全性
在oracle中,我们一般通过授权和角色来控制用户的权限,但是某些情况下,比如想限制以dev开头的所有用户不能在sql*plus中执行alter命令,则通过grant授权的方式无法实现。这里要介绍另外一种能简单的实现上述需求的方式,就是PRODUCT_USER_PROFILE表,通过在该表中插入相应的记录,可以限制某些用户(可以使用通配符)在SQL*Plus中使用某些命令,但这只是SQL*Plus提供的特性,而不是数据库本身的控制,所以在其他连接到数据库的客户端中该限制将不可用。
在oracle9i开始提供该特性,如果创建的数据库中没有默认创建PRODUCT_USER_PROFILE表,也可以通过执行以下脚本手工创建(以system用户):
SYSTEM@NinGoo>@$ORACLE_HOME/sqlplus/admin/pupbld.sql
SYSTEM@ning>desc product_user_profile
Name Null? Type
----------------------------------------- -------- ----------------------------
PRODUCT NOT NULL VARCHAR2(30)
USERID VARCHAR2(30)
ATTRIBUTE VARCHAR2(240)
SCOPE VARCHAR2(240)
NUMERIC_VALUE NUMBER(15,2)
CHAR_VALUE VARCHAR2(240)
DATE_VALUE DATE
LONG_VALUE LONG
安装Oracle,小菜一碟
Oracle在很多初学者看来是莫测高深的吧,至少我当年有机会接触Oracle的时候,是有那么一点兴奋的,而第一次安装Oracle,也不能算是一个愉快的体验。但看了下面这位Mogens Norgaard老兄的杰作以后,你会相信,安装Oracle,that’s a pice of cake。
真是强人年年有,今年特别多,鼻子也能安装Oracle,有哪位DBA想出名的,也可以借鉴一下这个创意,整个RAC的鼻子安装教程就更牛啦^_^
Oracle10gR2 Logical Standby(三)配置逻辑备库
Oracle10gR2在管理方面比起Oracle9i来说,有了相当大的改进,很多组件的安装配置过程都被简化了。简单的操作能够减少很多不必要的失误,对于提高系统的可用性也是很有帮助的。Logical Standby现在能够由physical standby直接转化而来,这一点改进很重要,不但简化了配置的过程,也为Oracle11g利用physical standby做滚动升级打下了基础,滚动升级的另外一个基础是Flashback database。Oracle很多特性在刚推出的时候看是改进不大,但真正产生化学作用往往会在更新的版本中体现。
一、创建物理备库
关于物理备库的创建,已经有过很多文章了,所以这里就不打算再重复整个过程了。可以参考我以前做试验的时候一点记录
上面两篇文章试验的版本都是9201的,但是物理备库在9i和10g的配置过程基本一致。不同的是,Oracle10g引入了一些新的参数和属性,可以简化switchover操作。所以参数的设置我这里再贴一个例子。
Oracle10gR2 Logical Standby(二)配置前需要考虑的问题
逻辑备库只是对于主库的一个逻辑意义上的数据冗余,不像物理备库能够在block级别上和主库保持一致。所以有其优点,也有其缺点。比如主库的一个datafile损坏,可以从物理备库拷贝对应的文件过来然后recover datafile就可以恢复,逻辑备库则无法实现这样保护了。由于是SQL APPLY,对于一些数据类型也是有限制的。
不支持的数据类型
Oracle10gR2的logical standby已经能支持大多数的数据类型了,包括CLOB/BLOB/LONG等,但还是有几种类型是不支持的。如果主库中有使用到这些数据类型,则需要使用其他方式进行处理。
BFILE
Collections (including VARRAYS and nested tables)
Encrypted columns
Multimedia data types (including Spatial, Image, and Context)
ROWID, UROWID
User-defined types
XMLType