Using the below query i am trying to get the db_unique_name from v$database combined with the PRIVILEGE column of DBA_PRIV_AUDIT_OPTS.But i am getting the error 'ORA-00918:column ambiguously defined'.Please suggest.Thanks.
select db_unique_name||':'||PRIVILEGE DB_NAME_PRIV,PROXY_NAME,PRIVILEGE,SUCCESS,FAILURE from
(SELECT d.PRIVILEGE,d.PROXY_NAME,d.PRIVILEGE,d.SUCCESS,d.FAILURE from DBA_PRIV_AUDIT_OPTS d
where d.PRIVILEGE in ('AUDIT SYSTEM','AUDIT ANY','ALTER SYSTEM','GRANT ANY ROLE','GRANT ANY PRIVILEGE','GRANT ANY OBJECT PRIVILEGE','CREATE USER','ALTER USER','DROP USER')),v$database;
You specified d.privilege
twice, so just removed extra one:
select db_unique_name||':'||PRIVILEGE DB_NAME_PRIV,PROXY_NAME,PRIVILEGE,SUCCESS,FAILURE from
(SELECT d.PRIVILEGE,d.PROXY_NAMEd.SUCCESS,d.FAILURE from DBA_PRIV_AUDIT_OPTS d
where d.PRIVILEGE in ('AUDIT SYSTEM','AUDIT ANY','ALTER SYSTEM','GRANT ANY ROLE','GRANT ANY PRIVILEGE','GRANT ANY OBJECT PRIVILEGE','CREATE USER','ALTER USER','DROP USER')),v$database;
Also why not simply without subquery?
select db_unique_name||':'||PRIVILEGE DB_NAME_PRIV,PROXY_NAME,PRIVILEGE,SUCCESS,FAILURE
from DBA_PRIV_AUDIT_OPTS d, v$database
where d.PRIVILEGE in (
'AUDIT SYSTEM','AUDIT ANY','ALTER SYSTEM'
,'GRANT ANY ROLE','GRANT ANY PRIVILEGE'
,'GRANT ANY OBJECT PRIVILEGE','CREATE USER'
,'ALTER USER','DROP USER'
);
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.