#####################################################################
#
# FUNCTION :ModSudo
# DESCRIPTION:在/etc/sudoers文件中加入genex ALL=(ALL) NOPASSWD:/etc/init.d/cron,genex用户停止服务用
#####################################################################
ModSudo()
{
if [ "-" == $1 ]
then
return 1
fi
ALLUSEUSER=$1
SudoFile=/etc/sudoers
#修改权限440 -> 777
chmod 777 ${SudoFile}
#添加genex ALL=NOPASSWD: ALL
result=`cat ${SudoFile} | grep "$ALLUSEUSER ALL=(ALL) NOPASSWD:/etc/init.d/cron"`
if [ "-" == "-${result}" ]
then
echo "$ALLUSEUSER ALL=(ALL) NOPASSWD:/etc/init.d/cron" >> ${SudoFile}
fi
#还原权限777 -> 440
chmod 440 ${SudoFile}
return 0
}
######################################################################
#
# FUNCTION : startDB
# DESCRIPTION: 启动数据库实例
######################################################################
startDB()
{
gLINENUM=${LINENO}
log "Go to startDB ..."
gLINENUM=0;
#启动之前应先检测数据库是否已经启动了???
#提示用户等待
gLINENUM=${LINENO}
log " Starting database, please wait a few minutes. " "p"
gLINENUM=0;
#通过sqlplus工具启动chrdb数据库,只适用与oracle数据库,在DBUSER用户下执行
#要先设定oraclesid为chrdb,检测启动结果?
su - $DBUSER -c "sqlplus sys/sys as sysdba <<EOF
startup;
disc;
quit;
EOF" >> ${LOGFILE}
if [ 0 -ne $? ]
then
gLINENUM=${LINENO}
log " Failed to start ${DBNAME}, quit installation." "p"
gLINENUM=0;
fi
#提示用户完成
gLINENUM=${LINENO}
log " Starting database done. " "p"
gLINENUM=0;
return 0;
}
#######################################################################
#
# FUNCTION :ConfigDB
# DESCRIPTION:完成一些nastar系统业务上的数据库设置,本方法只适用oracle数据库
# PARAMETER :NULL
# OUT :NULL
# RETURN :0,执行成功
# 1,执行失败
#
#######################################################################
function ConfigDB()
{
#提示用户等待
gLINENUM=${LINENO}
log " Configuring database, please wait a few minutes. " "p"
gLINENUM=0;
#进行数据库的设置
#下面的值需要由用户输入
SUPER_USER=$DBusergenex
COMM_PWD=$DBusergenex
#数据库默认的表空间
DEFAULT_TBSP=users
#程序访问chrdb数据库的通用用户genex(数据库用户,不同于系统用户)
#system数据库用户密码安装时需要用户输入
su - ${DBUSER} -c "${SQLPLUS} $DBusersystem/$variablesystem as sysdba <<EOF
grant connect, resource, dba to ${SUPER_USER};
--赋予所有权限
prompt ------------------赋予数据库用户genex所有的系统权限----------------------
GRANT EXECUTE ANY EVALUATION CONTEXT TO ${SUPER_USER} ;
GRANT ALTER ANY OPERATOR TO ${SUPER_USER} ;
GRANT CREATE INDEXTYPE TO ${SUPER_USER} ;
GRANT RESTRICTED SESSION TO ${SUPER_USER} ;
GRANT ALTER DATABASE TO ${SUPER_USER} ;
GRANT DELETE ANY MEASURE FOLDER TO ${SUPER_USER} ;
GRANT UPDATE ANY TABLE TO ${SUPER_USER} ;
GRANT CREATE MINING MODEL TO ${SUPER_USER} ;
GRANT ALTER ANY OUTLINE TO ${SUPER_USER} ;
GRANT CREATE ANY JOB TO ${SUPER_USER} ;
GRANT CREATE ANY ASSEMBLY TO ${SUPER_USER} ;
GRANT CREATE MEASURE FOLDER TO ${SUPER_USER} ;
GRANT ALTER ANY ASSEMBLY TO ${SUPER_USER} ;
GRANT UNLIMITED TABLESPACE TO ${SUPER_USER} ;
GRANT MANAGE SCHEDULER TO ${SUPER_USER} ;
GRANT SELECT ANY SEQUENCE TO ${SUPER_USER} ;
GRANT DROP ANY CUBE DIMENSION TO ${SUPER_USER} ;
GRANT EXECUTE ANY OPERATOR TO ${SUPER_USER} ;
GRANT DROP ANY VIEW TO ${SUPER_USER} ;
GRANT IMPORT FULL DATABASE TO ${SUPER_USER} ;
GRANT DROP ANY INDEX TO ${SUPER_USER} ;
GRANT CREATE ANY PROCEDURE TO ${SUPER_USER} ;
GRANT CREATE ANY CONTEXT TO ${SUPER_USER} ;
GRANT EXECUTE ASSEMBLY TO ${SUPER_USER} ;
GRANT ALTER ANY INDEX TO ${SUPER_USER} ;
GRANT UPDATE ANY CUBE DIMENSION TO ${SUPER_USER} ;
GRANT CREATE ANY SQL PROFILE TO ${SUPER_USER} ;
GRANT CREATE ANY SEQUENCE TO ${SUPER_USER} ;
GRANT EXECUTE ANY LIBRARY TO ${SUPER_USER} ;
GRANT CREATE CLUSTER TO ${SUPER_USER} ;
GRANT EXEMPT IDENTITY POLICY TO ${SUPER_USER} ;
GRANT DROP ANY MINING MODEL TO ${SUPER_USER} ;
GRANT DROP TABLESPACE TO ${SUPER_USER} ;
GRANT ENQUEUE ANY QUEUE TO ${SUPER_USER} ;
GRANT INSERT ANY TABLE TO ${SUPER_USER} ;
GRANT ADVISOR TO ${SUPER_USER} ;
GRANT EXECUTE ANY PROGRAM TO ${SUPER_USER} ;
GRANT UNDER ANY VIEW TO ${SUPER_USER} ;
GRANT ALTER ANY INDEXTYPE TO ${SUPER_USER} ;
GRANT AUDIT SYSTEM TO ${SUPER_USER} ;
GRANT DROP ANY SYNONYM TO ${SUPER_USER} ;
GRANT DROP ANY LIBRARY TO ${SUPER_USER} ;
GRANT FLASHBACK ARCHIVE ADMINISTER TO ${SUPER_USER} ;
GRANT CREATE TRIGGER TO ${SUPER_USER} ;
GRANT DELETE ANY TABLE TO ${SUPER_USER} ;
GRANT CREATE ASSEMBLY TO ${SUPER_USER} ;
GRANT ANALYZE ANY TO ${SUPER_USER} ;
GRANT UPDATE ANY CUBE BUILD PROCESS TO ${SUPER_USER} ;
GRANT DROP ANY CUBE BUILD PROCESS TO ${SUPER_USER} ;
GRANT CHANGE NOTIFICATION TO ${SUPER_USER} ;
GRANT DROP ANY EDITION TO ${SUPER_USER} ;
GRANT UPDATE ANY CUBE TO ${SUPER_USER} ;
GRANT CREATE ROLE TO ${SUPER_USER} ;
GRANT CREATE ANY CUBE TO ${SUPER_USER} ;
GRANT DROP ANY OPERATOR TO ${SUPER_USER} ;
GRANT DEQUEUE ANY QUEUE TO ${SUPER_USER} ;
GRANT CREATE RULE TO ${SUPER_USER} ;
GRANT DROP ANY RULE TO ${SUPER_USER} ;
GRANT CREATE LIBRARY TO ${SUPER_USER} ;
GRANT CREATE ANY OUTLINE TO ${SUPER_USER} ;
GRANT CREATE SESSION TO ${SUPER_USER} ;
GRANT ALTER ANY PROCEDURE TO ${SUPER_USER} ;
GRANT LOCK ANY TABLE TO ${SUPER_USER} ;
GRANT INSERT ANY CUBE DIMENSION TO ${SUPER_USER} ;
GRANT SELECT ANY TABLE TO ${SUPER_USER} ;
GRANT CREATE MATERIALIZED VIEW TO ${SUPER_USER} ;
GRANT CREATE ANY TRIGGER TO ${SUPER_USER} ;
GRANT ALTER ANY CLUSTER TO ${SUPER_USER} ;
GRANT ALTER ANY RULE SET TO ${SUPER_USER} ;
GRANT DELETE ANY CUBE DIMENSION TO ${SUPER_USER} ;
GRANT QUERY REWRITE TO ${SUPER_USER} ;
GRANT GLOBAL QUERY REWRITE TO ${SUPER_USER} ;
GRANT CREATE ROLLBACK SEGMENT TO ${SUPER_USER} ;
GRANT CREATE CUBE TO ${SUPER_USER} ;
GRANT CREATE JOB TO ${SUPER_USER} ;
GRANT DROP ANY EVALUATION CONTEXT TO ${SUPER_USER} ;
GRANT DROP ANY TABLE TO ${SUPER_USER} ;
GRANT EXECUTE ANY ASSEMBLY TO ${SUPER_USER} ;
GRANT CREATE ANY SYNONYM TO ${SUPER_USER} ;
GRANT DROP PROFILE TO ${SUPER_USER} ;
GRANT ALTER ANY EDITION TO ${SUPER_USER} ;
GRANT CREATE SEQUENCE TO ${SUPER_USER} ;
GRANT FLASHBACK ANY TABLE TO ${SUPER_USER} ;
GRANT ADMINISTER SQL MANAGEMENT OBJECT TO ${SUPER_USER} ;
GRANT SELECT ANY CUBE DIMENSION TO ${SUPER_USER} ;
GRANT EXEMPT ACCESS POLICY TO ${SUPER_USER} ;
GRANT DROP ANY RULE SET TO ${SUPER_USER} ;
GRANT CREATE ANY MATERIALIZED VIEW TO ${SUPER_USER} ;
GRANT CREATE TYPE TO ${SUPER_USER} ;
GRANT CREATE ANY RULE SET TO ${SUPER_USER} ;
GRANT DEBUG ANY PROCEDURE TO ${SUPER_USER} ;
GRANT DROP ANY TRIGGER TO ${SUPER_USER} ;
GRANT ALTER ANY CUBE DIMENSION TO ${SUPER_USER} ;
GRANT ALTER USER TO ${SUPER_USER} ;
GRANT ALTER PROFILE TO ${SUPER_USER} ;
GRANT DROP PUBLIC DATABASE LINK TO ${SUPER_USER} ;
GRANT MANAGE ANY QUEUE TO ${SUPER_USER} ;
GRANT SELECT ANY CUBE TO ${SUPER_USER} ;
GRANT CREATE ANY TABLE TO ${SUPER_USER} ;
GRANT CREATE EVALUATION CONTEXT TO ${SUPER_USER} ;
GRANT RESUMABLE TO ${SUPER_USER} ;
GRANT ALTER ANY LIBRARY TO ${SUPER_USER} ;
GRANT CREATE CUBE BUILD PROCESS TO ${SUPER_USER} ;
GRANT ALTER RESOURCE COST TO ${SUPER_USER} ;
GRANT FORCE TRANSACTION TO ${SUPER_USER} ;
GRANT DROP ANY PROCEDURE TO ${SUPER_USER} ;
GRANT CREATE DIMENSION TO ${SUPER_USER} ;
GRANT CREATE ANY INDEXTYPE TO ${SUPER_USER} ;
GRANT CREATE ANY TYPE TO ${SUPER_USER} ;
GRANT BACKUP ANY TABLE TO ${SUPER_USER} ;
GRANT CREATE ANY OPERATOR TO ${SUPER_USER} ;
GRANT ALTER ANY TYPE TO ${SUPER_USER} ;
GRANT ALTER SYSTEM TO ${SUPER_USER} ;
GRANT UNDER ANY TYPE TO ${SUPER_USER} ;
GRANT DROP ANY CONTEXT TO ${SUPER_USER} ;
GRANT CREATE DATABASE LINK TO ${SUPER_USER} ;
GRANT DROP ANY SQL PROFILE TO ${SUPER_USER} ;
GRANT SELECT ANY TRANSACTION TO ${SUPER_USER} ;
GRANT CREATE CUBE DIMENSION TO ${SUPER_USER} ;
GRANT CREATE ANY INDEX TO ${SUPER_USER} ;
GRANT CREATE ANY RULE TO ${SUPER_USER} ;
GRANT ALTER ANY SQL PROFILE TO ${SUPER_USER} ;
GRANT EXECUTE ANY INDEXTYPE TO ${SUPER_USER} ;
GRANT MANAGE TABLESPACE TO ${SUPER_USER} ;
GRANT ON COMMIT REFRESH TO ${SUPER_USER} ;
GRANT CREATE TABLE TO ${SUPER_USER} ;
GRANT ALTER ANY RULE TO ${SUPER_USER} ;
GRANT EXECUTE ANY PROCEDURE TO ${SUPER_USER} ;
GRANT DROP ANY CUBE TO ${SUPER_USER} ;
GRANT INSERT ANY MEASURE FOLDER TO ${SUPER_USER} ;
GRANT CREATE ANY MEASURE FOLDER TO ${SUPER_USER} ;
GRANT BECOME USER TO ${SUPER_USER} ;
GRANT COMMENT ANY TABLE TO ${SUPER_USER} ;
GRANT DROP ANY TYPE TO ${SUPER_USER} ;
GRANT DROP ROLLBACK SEGMENT TO ${SUPER_USER} ;
GRANT CREATE PROFILE TO ${SUPER_USER} ;
GRANT CREATE ANY CUBE DIMENSION TO ${SUPER_USER} ;
GRANT AUDIT ANY TO ${SUPER_USER} ;
GRANT CREATE ANY EVALUATION CONTEXT TO ${SUPER_USER} ;
GRANT ADMINISTER SQL TUNING SET TO ${SUPER_USER} ;
GRANT ALTER ANY EVALUATION CONTEXT TO ${SUPER_USER} ;
GRANT CREATE ANY MINING MODEL TO ${SUPER_USER} ;
GRANT ADMINISTER DATABASE TRIGGER TO ${SUPER_USER} ;
GRANT FORCE ANY TRANSACTION TO ${SUPER_USER} ;
GRANT ALTER ANY ROLE TO ${SUPER_USER} ;
GRANT ANALYZE ANY DICTIONARY TO ${SUPER_USER} ;
GRANT CREATE USER TO ${SUPER_USER} ;
GRANT SELECT ANY DICTIONARY TO ${SUPER_USER} ;
GRANT EXECUTE ANY CLASS TO ${SUPER_USER} ;
GRANT EXECUTE ANY TYPE TO ${SUPER_USER} ;
GRANT EXECUTE ANY RULE TO ${SUPER_USER} ;
GRANT CREATE EXTERNAL JOB TO ${SUPER_USER} ;
GRANT MERGE ANY VIEW TO ${SUPER_USER} ;
GRANT ALTER ANY DIMENSION TO ${SUPER_USER} ;
GRANT EXECUTE ANY RULE SET TO ${SUPER_USER} ;
GRANT DROP ANY CLUSTER TO ${SUPER_USER} ;
GRANT ALTER ANY TABLE TO ${SUPER_USER} ;
GRANT ADMINISTER ANY SQL TUNING SET TO ${SUPER_USER} ;
GRANT DROP ANY DIRECTORY TO ${SUPER_USER} ;
GRANT DROP ANY DIMENSION TO ${SUPER_USER} ;
GRANT DROP ANY SEQUENCE TO ${SUPER_USER} ;
GRANT CREATE SYNONYM TO ${SUPER_USER} ;
GRANT CREATE ANY LIBRARY TO ${SUPER_USER} ;
GRANT EXPORT FULL DATABASE TO ${SUPER_USER} ;
GRANT READ ANY FILE GROUP TO ${SUPER_USER} ;
GRANT ALTER SESSION TO ${SUPER_USER} ;
GRANT CREATE PUBLIC SYNONYM TO ${SUPER_USER} ;
GRANT GRANT ANY OBJECT PRIVILEGE TO ${SUPER_USER} ;
GRANT CREATE TABLESPACE TO ${SUPER_USER} ;
GRANT DROP ANY OUTLINE TO ${SUPER_USER} ;
GRANT ALTER ANY MATERIALIZED VIEW TO ${SUPER_USER} ;
GRANT DROP ANY INDEXTYPE TO ${SUPER_USER} ;
GRANT DROP USER TO ${SUPER_USER} ;
GRANT DROP PUBLIC SYNONYM TO ${SUPER_USER} ;
GRANT SELECT ANY MINING MODEL TO ${SUPER_USER} ;
GRANT COMMENT ANY MINING MODEL TO ${SUPER_USER} ;
GRANT CREATE OPERATOR TO ${SUPER_USER} ;
GRANT ALTER TABLESPACE TO ${SUPER_USER} ;
GRANT CREATE ANY DIRECTORY TO ${SUPER_USER} ;
GRANT ALTER ROLLBACK SEGMENT TO ${SUPER_USER} ;
GRANT DROP ANY ASSEMBLY TO ${SUPER_USER} ;
GRANT CREATE ANY DIMENSION TO ${SUPER_USER} ;
GRANT ALTER ANY MINING MODEL TO ${SUPER_USER} ;
GRANT MANAGE FILE GROUP TO ${SUPER_USER} ;
GRANT CREATE ANY EDITION TO ${SUPER_USER} ;
GRANT GRANT ANY PRIVILEGE TO ${SUPER_USER} ;
GRANT CREATE PUBLIC DATABASE LINK TO ${SUPER_USER} ;
GRANT CREATE ANY VIEW TO ${SUPER_USER} ;
GRANT CREATE RULE SET TO ${SUPER_USER} ;
GRANT DROP ANY ROLE TO ${SUPER_USER} ;
GRANT CREATE ANY CLUSTER TO ${SUPER_USER} ;
GRANT CREATE VIEW TO ${SUPER_USER} ;
GRANT DROP ANY MATERIALIZED VIEW TO ${SUPER_USER} ;
GRANT CREATE ANY CUBE BUILD PROCESS TO ${SUPER_USER} ;
GRANT UNDER ANY TABLE TO ${SUPER_USER} ;
GRANT ALTER ANY TRIGGER TO ${SUPER_USER} ;
GRANT MANAGE ANY FILE GROUP TO ${SUPER_USER} ;
GRANT GRANT ANY ROLE TO ${SUPER_USER} ;
GRANT DROP ANY MEASURE FOLDER TO ${SUPER_USER} ;
GRANT CREATE PROCEDURE TO ${SUPER_USER} ;
GRANT ALTER ANY CUBE TO ${SUPER_USER} ;
GRANT ALTER ANY SEQUENCE TO ${SUPER_USER} ;
GRANT DEBUG CONNECT SESSION TO ${SUPER_USER} ;
prompt ------------------赋予数据库用户genex所有的系统权限结束----------------------
prompt------------------begin modifying the password life time of database-------------------;
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
prompt------------------finish modifying the password life time of database-------------------;
disc;
quit;
EOF" >> ${LOGFILE} 2>&1
#执行sql脚本的函数
StartSQL
if [ 0 -ne $? ]
then
gLINENUM=${LINENO}
log " Failed to StartSQL, quit installation." "p"
gLINENUM=0;
fi
#提示用户完成
gLINENUM=${LINENO}
log " Configuring database done. " "p"
gLINENUM=0;
return 0
}