查询scott用户emp表的数据文件及表空间
一.在sys用户下
1.查询表空间
SELECT TABLE_NAME,TABLESPACE_NAME FROM DBA_TABLES
WHERE TABLE_NAME=’EMP’
AND OWNER=’SCOTT’
2.查询数据文件
SELECT FILE_NAME,TABLESPACE_NAME FROM DBA_DATA_FILES
WHERE TABLESPACE_NAME=’USERS’;
整合到一起:
SELECT FILE_NAME,TABLESPACE_NAME FROM DBA_DATA_FILES
WHERE TABLESPACE_NAME IN
(SELECT TABLESPACE_NAME FROM DBA_TABLES
WHERE TABLE_NAME=’EMP’AND OWNER=’SCOTT’)
二.在scott用户下
1.查询所在的表空间
2.木有然后了,查不了数据文件,没有user_data_files这个表
应该可以理解,scott不是dba权限,看看scott的权限吧,在sys用户下查看
DESC DBA_ROLE_PRIVS;
SELECT GRANTED_ROLE,ADMIN_OPTION,DEFAULT_ROLE FROM DBA_ROLE_PRIVS
WHERE GRANTEE=’SCOTT’;
赋个DBA权限吧(我只知道DBA权限,哈哈),DBA权限赋完了肯定没问题了,试下吧;当然还是查询DBA_DATA_FILES,这样和第一种sys用户是一样的喽?
GRANT DBA TO SCOTT;
REVOKE DBA 权限吧
REVOKE DBA FROM SCOTT;