表空间,其实是 默认表空间。
也就是这个用户 CREATE TABLE ... () 语句, 不指定表空间的话。 就默认把表,建立在那个 默认表空间 上面。
没有给他指定其它表空间的管理权限.但用户A能操作其它表空间,在其它表空间中创建表,是怎么回事哪。
这个要看你到底给了多少权限给这个用户A
你要是
SQL> GRANT CONNECT TO A;
Grant succeeded.
SQL> GRANT DBA TO A;
Grant succeeded.
那么这个 用户A, 确实是可以干很多你不希望他干的事情。
所以,除了A的权限, 还要看看A的角色。
还有一个问题就是一个表空间中有几个数据文件,那用户A在创建一个表后,这个表被放到那个数据文件了?
这个表放那个数据文件,由数据库自己管理的。
原因也很简单。
比如你现在表空间 100M 只有1个文件。
数据库就只有一个很大的表
当运行一段时间后,表空间不足了。
你对这个表空间,增加一个 100M的文件。
使得这个表空间有 200M了。
那么,实际上,这个表,最后会在2个数据文件上,都有数据。
它们是多对一关系。
解释:一个用户只能属于一个数据库,但是一个数据库中可以有多个用户。
扩展:实际上这里面还有表空间的概念,一个数据库可以有多个表空间,一个用户可以默认一个表空间,但是可以操作多个表空间,多个用户可以同时用一个表空间。
@DBSQL 是你数据库的实例名,你可以通过sqlplus /nolog
conn /as sysdba
show parameter instance
查看名称是什么,然后就换为什么就可以,如果你想要和例子一样的,你可以通过DBCA建立一个SID为DBSQL 的数据库就ok了
你去掉@DBSQL能导入是因为你是在本机导入它不需要使用网络服务,而@DBSQL用这样导入使用网络服务,但是建好库后可能没有配置网络服务也可能连监听也没有建,如果你本机上再没有其他的库那么肯定是就导入到你的库里。你现在可以看下你配没配我说的这两个,如果没有配那么配上用你的用户登进去就能看见数据导没导入到你的库里了。
用netca配下
file=C:\personnel_manage.dmp
换成file="C:\personnel_manage.dmp"
试试.