查询用户表空间

查询scott用户emp表的数据文件及表空间

一.在sys用户下

1.查询表空间

SELECT TABLE_NAME,TABLESPACE_NAME FROM DBA_TABLES

WHERE TABLE_NAME=’EMP’

AND OWNER=’SCOTT’

查询用户表空间_第1张图片

2.查询数据文件

SELECT FILE_NAME,TABLESPACE_NAME FROM DBA_DATA_FILES

WHERE TABLESPACE_NAME=’USERS’;

查询用户表空间_第2张图片

整合到一起:

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’)

查询用户表空间_第3张图片

二.在scott用户下

1.查询所在的表空间

查询用户表空间_第4张图片

2.木有然后了,查不了数据文件,没有user_data_files这个表

image

应该可以理解,scott不是dba权限,看看scott的权限吧,在sys用户下查看

DESC DBA_ROLE_PRIVS;

SELECT GRANTED_ROLE,ADMIN_OPTION,DEFAULT_ROLE FROM DBA_ROLE_PRIVS

WHERE GRANTEE=’SCOTT’;

查询用户表空间_第5张图片

赋个DBA权限吧(我只知道DBA权限,哈哈),DBA权限赋完了肯定没问题了,试下吧;当然还是查询DBA_DATA_FILES,这样和第一种sys用户是一样的喽?

GRANT DBA TO SCOTT;

查询用户表空间_第6张图片

查询用户表空间_第7张图片

REVOKE DBA 权限吧

REVOKE DBA FROM SCOTT;

查询用户表空间_第8张图片

你可能感兴趣的:(查询用户表空间)