Skip to main content
Glama
blitzstermayank

Teradata MCP Server

dba_userSqlList

Retrieve SQL queries executed by specific users or all users within a defined timeframe to monitor database activity and audit 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
NameRequiredDescriptionDefault
user_nameYes
no_daysNo

Implementation Reference

  • Handler function executing the dba_userSqlList tool: retrieves SQL queries run by a specific user (or all if none specified) in the last N days from Teradata's DBC.QryLog views.
    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)

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/blitzstermayank/MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server