今天超产啊,连续4篇,要有这个进度今年肯定能有收获
查了一下用户和表空间的概念,应该用户概念还是和SqlServer一样,只是在公司做项目时对用户权限不够重视,基本都是用sa,要是管理严格的话,也要像Oracle这样,区分好什么用户能干什么事。
【表空间】和【库】概念差不多,一个表空间可以被多个用户访问,一个用户也可以访问多个表空间。
以测试库来说,STDOC下有两个表空间STDOC和STDOCDB,其中STDOC下没有表,表都在STDOCDB里。
为什么用STDOC登进去后直接就能查STDOCDB下的表?因为STDOCDB表空间可被STDOC访问
为什么用SYSTEM不能直接查询?要SELECT * FROM STDOC.XXX?因为system(以及其它被赋予管理员权限的账号)虽然有权限可以查看指定用户下的表,但要加上用户名前缀。因为表空间是属于该用户的,而没有属于system。
SELECT DISTINCT OWNER FROM DBA_SEGMENTS S WHERE S.TABLESPACE_NAME = 'STDOCDB'
使用该命令可以查出表空间属于哪个用户(即可以直接访问)