RADIUS Authentication Views
Overview
The RADIUS authentication views contain all 802.1X, MAB, and wireless authentication attempts with full detail including failure reasons, policy matches, and identity information.
RADIUS_AUTHENTICATIONS
Primary authentication log - every RADIUS auth attempt.
Key Columns
| Column | Type | Description |
|---|---|---|
|
TIMESTAMP |
Authentication time (with timezone) |
|
VARCHAR2 |
MAC address (primary join key) |
|
VARCHAR2 |
Identity (username, hostname, or MAC for MAB) |
|
VARCHAR2 |
'Pass' or 'Fail' (string, not boolean!) |
|
VARCHAR2 |
'Fail' if failed, null if passed |
|
VARCHAR2 |
Detailed failure reason (null if passed) |
|
VARCHAR2 |
Switch/WLC IP that sent the request |
|
VARCHAR2 |
Port identifier (Gi1/0/5, etc.) |
|
VARCHAR2 |
NAS hostname |
|
VARCHAR2 |
Assigned IP address |
|
VARCHAR2 |
EAP type (dot1x, mab) |
|
VARCHAR2 |
Protocol (EAP-TLS, PEAP, MAB, etc.) |
|
VARCHAR2 |
Matched policy set name |
|
VARCHAR2 |
Matched authz rule name |
|
VARCHAR2 |
Applied authz profile(s) |
|
VARCHAR2 |
Identity source used (AD, LDAP, Internal) |
|
VARCHAR2 |
Endpoint identity group |
|
VARCHAR2 |
Identity store sequence |
|
VARCHAR2 |
RADIUS session ID (for accounting correlation) |
|
VARCHAR2 |
SSID (for wireless) or NAS port |
|
VARCHAR2 |
Allowed protocols used |
|
VARCHAR2 |
Profiled device type |
|
VARCHAR2 |
Network device group location |
|
VARCHAR2 |
ISE node that processed request |
Common Queries
Recent Authentications
netapi ise dc query "
SELECT
TO_CHAR(TIMESTAMP_TIMEZONE, 'YYYY-MM-DD HH24:MI:SS') AS time,
CALLING_STATION_ID AS mac,
USERNAME,
PASSED,
AUTHENTICATION_PROTOCOL,
POLICY_SET_NAME
FROM RADIUS_AUTHENTICATIONS
WHERE TIMESTAMP_TIMEZONE > SYSDATE - 1
ORDER BY TIMESTAMP_TIMEZONE DESC
FETCH FIRST 50 ROWS ONLY
"
Failed Authentications with Reasons
netapi ise dc query "
SELECT
TO_CHAR(TIMESTAMP_TIMEZONE, 'HH24:MI:SS') AS time,
CALLING_STATION_ID AS mac,
USERNAME,
FAILURE_REASON,
NAS_IP_ADDRESS,
AUTHENTICATION_PROTOCOL
FROM RADIUS_AUTHENTICATIONS
WHERE PASSED = 'Fail'
AND TIMESTAMP_TIMEZONE > SYSDATE - 1
ORDER BY TIMESTAMP_TIMEZONE DESC
FETCH FIRST 30 ROWS ONLY
"
Authentication by Protocol
netapi ise dc query "
SELECT
AUTHENTICATION_PROTOCOL,
COUNT(*) AS total,
SUM(CASE WHEN PASSED = 'Pass' THEN 1 ELSE 0 END) AS passed,
SUM(CASE WHEN PASSED = 'Fail' THEN 1 ELSE 0 END) AS failed,
ROUND(SUM(CASE WHEN PASSED = 'Pass' THEN 1 ELSE 0 END) * 100.0 / COUNT(*), 1) AS success_pct
FROM RADIUS_AUTHENTICATIONS
WHERE TIMESTAMP_TIMEZONE > SYSDATE - 1
GROUP BY AUTHENTICATION_PROTOCOL
ORDER BY total DESC
"
EAP-TLS Certificate Authentications
netapi ise dc query "
SELECT
CALLING_STATION_ID AS mac,
USERNAME,
IDENTITY_STORE,
AUTHORIZATION_PROFILES,
POLICY_SET_NAME,
COUNT(*) AS auth_count
FROM RADIUS_AUTHENTICATIONS
WHERE AUTHENTICATION_PROTOCOL = 'EAP-TLS'
AND PASSED = 'Pass'
AND TIMESTAMP_TIMEZONE > SYSDATE - 7
GROUP BY CALLING_STATION_ID, USERNAME, IDENTITY_STORE,
AUTHORIZATION_PROFILES, POLICY_SET_NAME
ORDER BY auth_count DESC
FETCH FIRST 50 ROWS ONLY
"
Specific MAC History
netapi ise dc query "
SELECT
TO_CHAR(TIMESTAMP_TIMEZONE, 'YYYY-MM-DD HH24:MI:SS') AS time,
PASSED,
AUTHENTICATION_PROTOCOL,
POLICY_SET_NAME,
AUTHORIZATION_RULE,
AUTHORIZATION_PROFILES,
FAILURE_REASON
FROM RADIUS_AUTHENTICATIONS
WHERE CALLING_STATION_ID = '14:F6:D8:7B:31:80'
ORDER BY TIMESTAMP_TIMEZONE DESC
FETCH FIRST 100 ROWS ONLY
"
Top Failure Reasons
netapi ise dc query "
SELECT
FAILURE_REASON,
COUNT(*) AS occurrences,
COUNT(DISTINCT CALLING_STATION_ID) AS unique_macs,
COUNT(DISTINCT NAS_IP_ADDRESS) AS unique_nas
FROM RADIUS_AUTHENTICATIONS
WHERE PASSED = 'Fail'
AND TIMESTAMP_TIMEZONE > SYSDATE - 1
GROUP BY FAILURE_REASON
ORDER BY occurrences DESC
FETCH FIRST 15 ROWS ONLY
"
Hourly Trend Analysis
netapi ise dc query "
SELECT
TO_CHAR(TIMESTAMP_TIMEZONE, 'YYYY-MM-DD HH24') AS hour,
COUNT(*) AS total,
SUM(CASE WHEN PASSED = 'Pass' THEN 1 ELSE 0 END) AS passed,
SUM(CASE WHEN PASSED = 'Fail' THEN 1 ELSE 0 END) AS failed,
ROUND(SUM(CASE WHEN PASSED = 'Pass' THEN 1 ELSE 0 END) * 100.0 / COUNT(*), 1) AS success_pct
FROM RADIUS_AUTHENTICATIONS
WHERE TIMESTAMP_TIMEZONE > SYSDATE - 1
GROUP BY TO_CHAR(TIMESTAMP_TIMEZONE, 'YYYY-MM-DD HH24')
ORDER BY hour
"
RADIUS_AUTHENTICATIONS_WEEK
Same schema as RADIUS_AUTHENTICATIONS but pre-filtered to last 7 days. Use for faster weekly reports.
netapi ise dc query "
SELECT
TO_CHAR(TRUNC(TIMESTAMP_TIMEZONE), 'YYYY-MM-DD') AS date,
COUNT(*) AS total,
SUM(CASE WHEN PASSED = 'Pass' THEN 1 ELSE 0 END) AS passed
FROM RADIUS_AUTHENTICATIONS_WEEK
GROUP BY TRUNC(TIMESTAMP_TIMEZONE)
ORDER BY date
"
RADIUS_ERRORS_VIEW
Failed authentications with enhanced failure detail.
Key Columns
| Column | Type | Description |
|---|---|---|
|
TIMESTAMP |
Failure time |
|
VARCHAR2 |
MAC address |
|
VARCHAR2 |
Attempted identity |
|
VARCHAR2 |
Failure reason text |
|
NUMBER |
Numeric failure code |
|
VARCHAR2 |
Suggested fix (when available) |
netapi ise dc query "
SELECT
FAILURE_CODE,
FAILURE_REASON,
COUNT(*) AS count
FROM RADIUS_ERRORS_VIEW
WHERE TIMESTAMP_TIMEZONE > SYSDATE - 1
GROUP BY FAILURE_CODE, FAILURE_REASON
ORDER BY count DESC
FETCH FIRST 20 ROWS ONLY
"
RADIUS_AUTHENTICATION_SUMMARY
Pre-aggregated statistics (updated periodically).
netapi ise dc query "SELECT * FROM RADIUS_AUTHENTICATION_SUMMARY"
JOIN Examples
Auth + Endpoint Profile
netapi ise dc query "
SELECT
r.CALLING_STATION_ID AS mac,
r.USERNAME,
r.PASSED,
r.AUTHENTICATION_PROTOCOL,
p.ENDPOINT_PROFILE,
p.IDENTITY_GROUP
FROM RADIUS_AUTHENTICATIONS r
LEFT JOIN PROFILED_ENDPOINTS_SUMMARY p
ON r.CALLING_STATION_ID = p.ENDPOINT_ID
WHERE r.TIMESTAMP_TIMEZONE > SYSDATE - 1
ORDER BY r.TIMESTAMP_TIMEZONE DESC
FETCH FIRST 30 ROWS ONLY
"
Auth + Session Accounting
netapi ise dc query "
SELECT
r.CALLING_STATION_ID AS mac,
r.USERNAME,
r.PASSED,
a.ACCT_SESSION_TIME AS session_secs,
ROUND((a.ACCT_INPUT_OCTETS + a.ACCT_OUTPUT_OCTETS) / 1048576, 2) AS total_mb
FROM RADIUS_AUTHENTICATIONS r
JOIN RADIUS_ACCOUNTING a
ON r.CALLING_STATION_ID = a.CALLING_STATION_ID
AND r.SESSION_ID = a.SESSION_ID
WHERE r.TIMESTAMP_TIMEZONE > SYSDATE - 1
AND a.ACCT_STATUS_TYPE = 'Stop'
AND r.PASSED = 'Pass'
ORDER BY a.ACCT_SESSION_TIME DESC
FETCH FIRST 20 ROWS ONLY
"
See Also
-
RADIUS Accounting - Session duration and data usage
-
Endpoints - Device inventory and profiling
-
SQL Cookbook - More query patterns