如何查找哪个用户在 Oracle 数据库中创建了数据库视图?

问题描述 投票:0回答:1

我需要确定谁在 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,但我仍在研究其余部分,以及如何修改我的查询。

oracle oracle11g oracle10g
1个回答
0
投票

如果您想找出谁拥有该视图,那么您可以使用:

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视图(不一定是所有者)。为此,您需要在数据库上启用审核,然后您可以查询审核跟踪。

© www.soinside.com 2019 - 2024. All rights reserved.