sec_userRoles
Retrieve roles assigned to a specific user in Teradata databases to manage access permissions and security configurations.
Instructions
Get roles assigned to 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 core logic of the 'sec_userRoles' tool. It takes a Teradata connection and user_name, queries DBC.RoleInfoV and DBC.RoleMembersV for roles matching the user_name (using LIKE), formats the results as JSON, adds metadata, and returns a formatted response.def handle_sec_userRoles(conn: TeradataConnection, user_name: str, *args, **kwargs): """ Get roles assigned to a user. Arguments: user_name - user name to analyze Returns: ResponseType: formatted response with query results + metadata """ logger.debug(f"Tool: handle_sec_userRoles: 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 r.RoleName, r.CreatorName, r.CreateTimeStamp, Rm.Grantor, Rm.WhenGranted, Rm.DefaultRole, Rm.WithAdmin FROM DBC.RoleInfoV r JOIN DBC.RoleMembersV Rm ON r.RoleName = Rm.RoleName WHERE r.RoleName LIKE '%{user_name}%' (NOT CASESPECIFIC);""") data = rows_to_json(cur.description, rows.fetchall()) metadata = { "tool_name": "sec_userRoles", "argument": user_name, "num_roles": len(data) } logger.debug(f"Tool: handle_sec_userRoles: metadata: {metadata}") return create_response(data, metadata)