Oracle学习 第18天 用户、表空间

今天超产啊,连续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'

使用该命令可以查出表空间属于哪个用户(即可以直接访问)

原文地址:https://www.cnblogs.com/liuyouying/p/6366296.html