我是Linux上Sybase ASE数据库服务器的DBA,我需要每晚备份一个数据库。 想法是编写一个cronjob并从用户“sybase”运行它。但这意味着我将有一个这样的脚本:
isql -Usa -Ppassword_of_sa -SMYSERVER -DMYDATABASE -i/home/sybase/backup.sh
这意味着我将在/ home / sybase中的脚本中以明文形式显示sa的密码;换句话说,谁可以登录sybase帐户可以读取sa密码。 我应该接受这个,还是有更安全的方式? 附带问题:我可以更改用户sybase的密码吗?如果我这样做会有问题吗?
答案 0 :(得分:1)
不,你不应该接受这个。一种选择是创建新用户,并为该用户分配“操作”角色。 'oper'角色允许用户转储和加载数据库以及事务日志。
另一种选择是使用shell脚本和重定向来屏蔽进程列表中的密码。这看起来像这样:
#/bin/sh
#Set Your Sybase ENV
. $SYBASE/$SYBASE.sh
SAPASSWD=password_of_sa
#Put your .sql code after the password, and before the second ENDSQL
isql -Usa -SMYDATABASE << ENDSQL
${SAPASSWD}
dump database MY_DATABASE to dump....
go
ENDSQL
对于你的第二个问题,你可以绝对改变'sa'密码,只要你在其他地方没有任何硬编码的引用。
另外,我会将您的备份文件重命名为backup.sql。使用.sh意味着它是一个shell脚本,可能会造成混乱。