我需要确定谁在 Oracle 数据库中创建了视图。我自己无法访问数据库,因此我正在寻找要提供的查询。我相信 TSQL 数据库的等效项是
Select p.name, v.*
FROM sys.all_views v
JOIN sys.database_principals p ON p.principal_id = v.schema_id
WHERE v.name = 'name of view'
我相信 sys.database_principals 相当于 Oracle DB 的 USER,但我仍在研究其余部分,以及如何修改我的查询。
如果您想找出谁拥有该视图,那么您可以使用:
SELECT owner
FROM all_views
WHERE view_name = 'YOUR_VIEW'
或:
SELECT owner
FROM all_objects
WHERE object_name = 'YOUR_VIEW'
AND object_type = 'VIEW'
注意:除非您使用带引号的标识符(这被认为是不好的做法),否则视图的名称将为大写。
但是,数据字典不会告诉您哪个用户CREATED视图(不一定是所有者)。为此,您需要在数据库上启用审核,然后您可以查询审核跟踪。