我可以通过任何方式查看自己的模式中具有哪些DDL特权吗?我正在寻找一个SELECT类型的句子。
我的意思是,我怎么知道我是否可以创建,删除,更改等等。
谢谢。
答案 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;