Saturday, May 17, 2025

SSL

#!/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: