#!/bin/bash
read -s -p "Enter DB password: " DB_PASS
echo ""
DB_LIST_FILE="db_list.txt"
while IFS= read -r line || [[ -n "$line" ]]; do
[[ -z "$line" || "$line" =~ ^# ]] && continue
USER_CONN="${line%%@*}"
DB_DESC="${line#*@}"
FULL_CONN="$USER_CONN/$DB_PASS@$DB_DESC"
# Execute SQL and capture output
OUTPUT=$(sqlplus -s "$FULL_CONN" <<EOF
SET SERVEROUTPUT ON
SET FEEDBACK OFF
SET HEADING OFF
WHENEVER SQLERROR EXIT SQL.SQLCODE
DECLARE
l_protocol VARCHAR2(10);
l_db_name VARCHAR2(50);
BEGIN
SELECT SYS_CONTEXT('USERENV', 'NETWORK_PROTOCOL')
INTO l_protocol
FROM dual;
SELECT name INTO l_db_name FROM v\$database;
DBMS_OUTPUT.PUT_LINE('DB_NAME=' || l_db_name);
DBMS_OUTPUT.PUT_LINE('Protocol=' || l_protocol);
IF UPPER(l_protocol) = 'TCPS' THEN
DBMS_OUTPUT.PUT_LINE('✅ SSL is enabled for database ' || l_db_name || ' (TCPS connection).');
ELSE
DBMS_OUTPUT.PUT_LINE('❌ SSL is NOT enabled for database ' || l_db_name || ' (protocol: ' || l_protocol || ').');
END IF;
END;
/
EXIT;
EOF
)
# Extract DB_NAME from output
DB_NAME=$(echo "$OUTPUT" | grep '^DB_NAME=' | cut -d= -f2)
echo "---------------------------"
echo "Connecting to: $DB_NAME"
echo "$OUTPUT"
echo "---------------------------"
echo ""
done < "$DB_LIST_FILE"
revanth@'(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=dbhost1)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL1)))'
revanth@'(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=dbhost2)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL2)))'
No comments:
Post a Comment