Shell程序校验OS和Oracle用户名密码
2008-05-17 14:31
330 查看
很多系统在夜间都有数据批量处理需求,出于安全的角度考虑,可能会在shell程序中再次OS和数据库用户名密码的需求,这里使用Oracle数据库。
需要使用两个文件,一个是oracle中可以执行的sql脚本desctable.sql,另一个是校验脚本checkdbuser.sh
此shell程序在IBM AIX5 上测试通过,注意执行用户的环境变量中需添加ORACLE需要的环境变量
desctable.sql
desc user_table; --可执行的sql语句,为了不影响速度,使用一个简单的列出table结构,user_table为要检查的用户中的表
quit;
checkdbuser.sh
#!/bin/ksh
#校验OS用户密码
check_os_user()
...{
su - $LOGNAME -c 2>/dev/null
if [ $? == 0 ]
then
echo "密码正确,程序继续进行"
else
echo "密码错误,不能进行批处理操作"
exit 0
fi
}
#校验DB用户密码
check_db_user()
...{
b=`sqlplus $...{DBUSER}/$...{DBPASS} < desctable.sql | grep ERROR`
if [ $? == 0 ]
then
return 1 #数据库用户密码错误
else
return 0
fi
}
# 此shell程序从这里开始
if [ $# != 2 ]
then
echo "参数个数错误,请指定数据库用户名密码,请按照下列格式输入"
echo "如:$0 db_user db_passwd "
exit 1
fi
#数据库用户名密码变量赋值
DBUSER=$1
DBPASS=$2
#检查用户密码是否正确,防止系统未退出时恶意操作
echo "请输入操作用户密码: "
check_os_user
#检查数据库用户密码是否正确
check_db_user
if [ $? == 0 ]
then
echo "数据库用户密码正确"
else
echo "数据库用户密码错误,按回车退出"
fi
echo "测试结束"
read any
exit 0
需要使用两个文件,一个是oracle中可以执行的sql脚本desctable.sql,另一个是校验脚本checkdbuser.sh
此shell程序在IBM AIX5 上测试通过,注意执行用户的环境变量中需添加ORACLE需要的环境变量
desctable.sql
desc user_table; --可执行的sql语句,为了不影响速度,使用一个简单的列出table结构,user_table为要检查的用户中的表
quit;
checkdbuser.sh
#!/bin/ksh
#校验OS用户密码
check_os_user()
...{
su - $LOGNAME -c 2>/dev/null
if [ $? == 0 ]
then
echo "密码正确,程序继续进行"
else
echo "密码错误,不能进行批处理操作"
exit 0
fi
}
#校验DB用户密码
check_db_user()
...{
b=`sqlplus $...{DBUSER}/$...{DBPASS} < desctable.sql | grep ERROR`
if [ $? == 0 ]
then
return 1 #数据库用户密码错误
else
return 0
fi
}
# 此shell程序从这里开始
if [ $# != 2 ]
then
echo "参数个数错误,请指定数据库用户名密码,请按照下列格式输入"
echo "如:$0 db_user db_passwd "
exit 1
fi
#数据库用户名密码变量赋值
DBUSER=$1
DBPASS=$2
#检查用户密码是否正确,防止系统未退出时恶意操作
echo "请输入操作用户密码: "
check_os_user
#检查数据库用户密码是否正确
check_db_user
if [ $? == 0 ]
then
echo "数据库用户密码正确"
else
echo "数据库用户密码错误,按回车退出"
fi
echo "测试结束"
read any
exit 0
相关文章推荐
- (shell)校验oracle用户名密码是否正确
- oracle for windows使用NFS远程备份报错之O/S-Error: (OS 1326) 用户名或密码不正确
- oracle中如何修改用户名和密码
- Python拼接用户名和密码小程序
- C#调用Oracle ebs生成Webservice,加用户名密码验证
- Oracle 10g 默认安装带来的用户名/密码
- 安装oracle后,Tomcat 登陆 localhost 要求用户名和密码
- FTP 登录的shell 脚本,处理用户名密码
- cookie中保存用户名和密码及如何写程序通过cookie获取用户名密码
- 完成系统登录程序,从命令行输入用户名和密码,如果没有输入用户名和密码,则提示输入用户名和密码;如果输入了用户名但是没有输入密码,则提示用户输入密码,然后判断用户名是否是mldn,密码是否是hello,
- oracle 创建用户名 密码 授权
- oracle用户名/密码错误
- xcode 编译程序运行,总是提示输入用户名和密码的解决方法
- windows下忘记oracle用户名密码,通过sqlplus找回
- Oracle默认的用户名和密码
- Oracle 忘记用户名和密码的解决办法
- Oracle用户名和密码丢失
- Oracle OS认证 口令文件 密码丢失处理
- 关于oracle用户名与密码的问题
- oracle 10g默认用户名、密码解锁