SHELL-用戶口令密碼含有特殊字符在命令行中使用


命令行客戶端使用方法

在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}

image-20201212161706022

使用方法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}

image-20201212161253783

在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}

image-20201212161958889


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM