Oracle-列出我的架构中的特权-命令

时间:2018-10-18 17:33:22

标签: sql oracle

我可以通过任何方式查看自己的模式中具有哪些DDL特权吗?我正在寻找一个SELECT类型的句子。

我的意思是,我怎么知道我是否可以创建,删除,更改等等。

谢谢。

2 个答案:

答案 0 :(得分:0)

您应该在自己的模式中自动拥有对表的选择特权-它们属于您。您可以确定是否可以基于已授予您的角色创建,删除或更改对象。您可以使用诸如SELECT * FROM USER_ROLE_PRIVS;select dbms_metadata.get_granted_ddl('ROLE_GRANT', user) from dual;之类的查询来获取已授予您的角色的列表,并基于此列表,您将知道数据库中具有哪些特权。

例如,如果您被授予“资源”角色,则可以执行创建表,过程,触发器等操作。

您可以使用诸如select * from session_privs;之类的查询来查看您拥有的每个特权,但这将包括整个数据库的特权,包括与角色相关联的特权。要查看与角色无关的特权,可以使用类似SELECT * FROM USER_SYS_PRIVS;

的查询

答案 1 :(得分:0)

您可以通过查询DBA_SYS_PRIVS,DBA_TAB_PRIVS和DBA_ROLE_PRIVS来获取它,以获取有关系统,表和角色的用户特权的信息。 例如SELECT * FROM DBA_SYS_PRIVS;