SHELL-使用者口令密碼含有特殊字元在命令列中使用
阿新 • • 發佈:2020-12-12
命令列客戶端使用方法
在Linux環境下使用sqlplus,disql客戶端連線資料庫服務的使用時,當用戶密碼含有特殊字元,需要轉義才能正確連線到資料庫例項。
-
將密碼用雙引號圈起,再將使用者和密碼用單引號圈起
-
# 格式 sqlplus 'dbuser/"dbpass"'@tnsname # 示例 sqlplus 'angel/"p@ssw0rd123"'@orcl
-
-
直接將密碼用雙引號再加單引號圈起
-
# 格式 sqlplus dbuser/'"dbpass"'@tnsname # 示例 sqlplus angel/'"p@ssw0rd123"'@orcl
-
使用者密碼通過變數傳入,上面的方法在shell中不可用
使用方法1
DB_USER='test'
DB_PASS='p#ssw0rd123'
CONN_STR='o18c:55336'
DISQL='/home/dmdba/dm7/bin/disql'
DM_CONN=\'${DB_USER}/\"${DB_PASS}\"\'
[[ ! -z "${CONN_STR}" ]] && DM_CONN=${DM_CONN}@${CONN_STR}
echo ${DM_CONN}
${DISQL} -L ${DM_CONN}
使用方法2
DB_USER='test' DB_PASS='p#ssw0rd123' CONN_STR='o18c:55336' DISQL='/home/dmdba/dm7/bin/disql' DM_CONN=${DB_USER}/\'\"${DB_PASS}\"\' [[ ! -z "${CONN_STR}" ]] && DM_CONN=${DM_CONN}@${CONN_STR} ${DISQL} -L ${DM_CONN}
在shell中解決密碼含有特殊字元連線問題
DB_USER='test'
DB_PASS='p#ssw0rd123'
DB_PASS="\"${DB_PASS}\""
CONN_STR='o18c:55336'
DISQL='/home/dmdba/dm7/bin/disql'
DM_CONN="${DB_USER}/${DB_PASS}"
[[ ! -z "${CONN_STR}" ]] && DM_CONN="${DM_CONN}@${CONN_STR}"
echo ${DM_CONN}
${DISQL} -L ${DM_CONN}