dba_userSqlList
Retrieve SQL queries executed by a specific user or all users within a specified timeframe to monitor database activity and analyze query history.
Instructions
Get a list of SQL run by a user in the last number of days if a user name is provided, otherwise get list of all SQL in the last number of days.
Arguments: user_name - user name no_days - number of days
Returns: ResponseType: formatted response with query results + metadata
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| user_name | Yes | ||
| no_days | No |
Implementation Reference
- Handler function executing the dba_userSqlList tool: retrieves SQL queries run by a specific user or all users in the last N days from Teradata's query logs.def handle_dba_userSqlList(conn: TeradataConnection, user_name: str, no_days: int | None = 7, *args, **kwargs): """ Get a list of SQL run by a user in the last number of days if a user name is provided, otherwise get list of all SQL in the last number of days. Arguments: user_name - user name no_days - number of days Returns: ResponseType: formatted response with query results + metadata """ logger.debug(f"Tool: handle_dba_userSqlList: Args: user_name: {user_name}") with conn.cursor() as cur: if user_name == "": logger.debug("No user name provided, returning all SQL queries.") rows = cur.execute(f"""SELECT t1.QueryID, t1.ProcID, t1.CollectTimeStamp, t1.SqlTextInfo, t2.UserName FROM DBC.QryLogSqlV t1 JOIN DBC.QryLogV t2 ON t1.QueryID = t2.QueryID WHERE t1.CollectTimeStamp >= CURRENT_TIMESTAMP - INTERVAL '{no_days}' DAY ORDER BY t1.CollectTimeStamp DESC;""") else: logger.debug(f"User name provided: {user_name}, returning SQL queries for this user.") rows = cur.execute(f"""SELECT t1.QueryID, t1.ProcID, t1.CollectTimeStamp, t1.SqlTextInfo, t2.UserName FROM DBC.QryLogSqlV t1 JOIN DBC.QryLogV t2 ON t1.QueryID = t2.QueryID WHERE t1.CollectTimeStamp >= CURRENT_TIMESTAMP - INTERVAL '{no_days}' DAY AND t2.UserName = '{user_name}' ORDER BY t1.CollectTimeStamp DESC;""") data = rows_to_json(cur.description, rows.fetchall()) metadata = { "tool_name": "dba_userSqlList", "user_name": user_name, "no_days": no_days, "total_queries": len(data) } logger.debug(f"Tool: handle_dba_userSqlList: metadata: {metadata}") return create_response(data, metadata)