-1

我是 Linux 上 Sybase ASE 数据库服务器的 DBA,我需要每晚备份一个数据库。这个想法是编写一个 cronjob 并从用户“sybase”运行它。但这意味着我将有一个这样的脚本:

isql -Usa -Ppassword_of_sa -SMYSERVER -DMYDATABASE -i/home/sybase/backup.sh

这意味着我将在 /home/sybase 的脚本中以明文形式获得 sa 的密码;换句话说,任何可以登录sybase帐户的人都可以读取sa密码。我应该接受这个,还是有更安全的方法?附带问题:我可以更改用户 sybase 的密码吗?如果我这样做会有问题吗?

4

1 回答 1

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 脚本,可能会引起混淆。

于 2012-12-11T14:54:34.193 回答