在脚本中向 HSQLDB SqlTool 提供密码
Supply password to HSQLDB SqlTool in a script
我是 运行 作为系统服务的服务器模式下的 HSQLDB 实例。要关闭它,我发出以下命令:
java -cp $CLASSPATH:/usr/share/java/hsqldbutil.jar:/usr/share/java/hsqldb.jar "org.hsqldb.cmdline.SqlTool" --inlineRc=url=jdbc:hsqldb:hsql://localhost/$DB_NAME,user=SA,password=`cat ~/SA.pwd` --sql="SHUTDOWN;"
正如在命令中看到的那样,我以用户 SA 的身份连接,并使用从文件中读取的密码(只有该特定用户可以读取),并在 JDBC URL 中指定两者.
只要 SA 的密码为空,我就可以在命令中提供 password=
。
但是,如果 SA 有一个真实的密码并且我在此处提供了它,这将失败并显示错误消息:
'password' element must have empty value. For non-empty password, give no password element and you will be prompted for the value.
有没有办法以非交互方式提供密码?
如果您使用 sqltool.rc
文件而不是 --inline-rc
,它会起作用。将包含以下内容的文件放在将发出停止命令的帐户的主文件夹中:
urlid my-server
url jdbc:hsqldb:hsql://localhost/db_name
username SA
password CorrectHorseBatteryStaple
然后修改命令行如下:
java -cp $CLASSPATH:/usr/share/java/hsqldbutil.jar:/usr/share/java/hsqldb.jar "org.hsqldb.cmdline.SqlTool" --sql="SHUTDOWN;" my-server
其中:
my-server
是你在sqltool.rc
中定义的任意标识符,在SqlTool 的命令行调用中引用
db_name
是启动时分配的数据库名
CorrectHorseBatteryStaple
是 SA 密码(当前存储在 ~/SA.pwd
中)。
根据您的系统更改这些。由于 sqltool.rc
包含凭据,请确保像 ~/SA.pwd
.
一样锁定其权限
我是 运行 作为系统服务的服务器模式下的 HSQLDB 实例。要关闭它,我发出以下命令:
java -cp $CLASSPATH:/usr/share/java/hsqldbutil.jar:/usr/share/java/hsqldb.jar "org.hsqldb.cmdline.SqlTool" --inlineRc=url=jdbc:hsqldb:hsql://localhost/$DB_NAME,user=SA,password=`cat ~/SA.pwd` --sql="SHUTDOWN;"
正如在命令中看到的那样,我以用户 SA 的身份连接,并使用从文件中读取的密码(只有该特定用户可以读取),并在 JDBC URL 中指定两者.
只要 SA 的密码为空,我就可以在命令中提供 password=
。
但是,如果 SA 有一个真实的密码并且我在此处提供了它,这将失败并显示错误消息:
'password' element must have empty value. For non-empty password, give no password element and you will be prompted for the value.
有没有办法以非交互方式提供密码?
如果您使用 sqltool.rc
文件而不是 --inline-rc
,它会起作用。将包含以下内容的文件放在将发出停止命令的帐户的主文件夹中:
urlid my-server
url jdbc:hsqldb:hsql://localhost/db_name
username SA
password CorrectHorseBatteryStaple
然后修改命令行如下:
java -cp $CLASSPATH:/usr/share/java/hsqldbutil.jar:/usr/share/java/hsqldb.jar "org.hsqldb.cmdline.SqlTool" --sql="SHUTDOWN;" my-server
其中:
my-server
是你在sqltool.rc
中定义的任意标识符,在SqlTool 的命令行调用中引用
db_name
是启动时分配的数据库名CorrectHorseBatteryStaple
是 SA 密码(当前存储在~/SA.pwd
中)。
根据您的系统更改这些。由于 sqltool.rc
包含凭据,请确保像 ~/SA.pwd
.