sec_userDbPermissions
Retrieve and analyze database permissions for a specific user in Teradata systems using a structured query response with metadata for informed access management.
Instructions
Get permissions for a user.
Arguments: user_name - user name to analyze
Returns: ResponseType: formatted response with query results + metadata
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| user_name | Yes |
Implementation Reference
- The handler function that implements the 'sec_userDbPermissions' tool. It takes a Teradata connection and user_name, queries DBC.AllRightsV for the user's database permissions on tables/columns, formats the results as JSON, adds metadata, and returns a response.def handle_sec_userDbPermissions(conn: TeradataConnection, user_name: str, *args, **kwargs): """ Get permissions for a user. Arguments: user_name - user name to analyze Returns: ResponseType: formatted response with query results + metadata """ logger.debug(f"Tool: handle_sec_userDbPermissions: Args: user_name: {user_name}") with conn.cursor() as cur: if user_name == "": logger.debug("No user_name argument provided") data = rows_to_json(None, []) else: logger.debug(f"Argument provided: {user_name}") rows = cur.execute(f""" SELECT DatabaseName, TableName, ColumnName, AccessRight, GrantAuthority, GrantorName FROM DBC.AllRightsV WHERE UserName = '{user_name}' ORDER BY DatabaseName, TableName, AccessRight;""") data = rows_to_json(cur.description, rows.fetchall()) metadata = { "tool_name": "sec_userDbPermissions", "argument": user_name, "num_permissions": len(data) } logger.debug(f"Tool: handle_sec_userDbPermissions: metadata: {metadata}") return create_response(data, metadata)