Teradata - проверить, был ли предоставлен доступ - PullRequest
0 голосов
/ 13 февраля 2020

Меня попросили создать отчет обо всех пользователях определенных баз данных, и если в последний раз они обращались к каждой таблице. Первая часть достаточно проста.

SELECT DISTINCT Current_Date
   ,Trim(R.DATABASENAME) AS Database_Name
   ,R.TABLENAME as TABLE_NAME
	 ,R.USERNAME AS USER_NAME
	 ,R.ACCESSRIGHT AS ACCESS_RIGHT
	FROM dbc.AllRightsV R
	WHERE DatabaseName IN ('A','B','C')

Но получить последний раз, если таковые имеются, они получили доступ к каждой таблице, оказывается трудно. Единственное предложение, которое я смог найти, чтобы вытащить этот уровень детализации, это использовать DB C .DBQLOBJTBL. Однако, когда я проверяю диапазон дат, доступных в этой таблице, я нахожу только сегодняшнюю дату.

				
SELECT 
Max(Cast(O.COLLECTTIMESTAMP AS DATE)) AS LAST_ACCESS_DT
,Min(Cast(O.COLLECTTIMESTAMP AS DATE)) AS FIRST_ACCESS_DT
FROM DBC.DBQLOBJTBL O

Есть ли запись доступа для каждой базы данных.таблицы, для каждого пользователя где-то хранится?

...