当前位置:首页>开发>正文

oracle建表为什么不在用户指定的表空间里面 plsql怎么创建用户而且分配表空间?如果不制定表空间会怎样?以及授权的整个创建用户完整流程

2023-05-31 18:02:32 互联网 未知 开发

 oracle建表为什么不在用户指定的表空间里面 plsql怎么创建用户而且分配表空间?如果不制定表空间会怎样?以及授权的整个创建用户完整流程

oracle建表为什么不在用户指定的表空间里面

为用户指定表空间时,同时还需要为该用户在指定的表空间中分派定额才能在指定的表空间中创建表.你为用户授予了DBA的权限,自然就拥有了SYS用户的权限,所以可以往system表空间中写入数据.当你没有授予DBA权限时,是绝对不会在你所指定的表空间中创建表的.表空间ems_temp与ems是属于不同的表空间.
SQL>revoke dba from ONEZERO/*撤消DBA权限
SQL>grant create session,create table to ONEZERO/*为用户分派适当的权限
SQL>alter user ONEZERO default tablespace ems_temp quota unlimited on ems_temp/*为用户ONEZERO在ems_temp表空间中分派定额,这里是无限限的unlimited,即用户可以无限制的使用该表空间.也可以为其指定相应的大小.

plsql怎么创建用户而且分配表空间?如果不制定表空间会怎样?以及授权的整个创建用户完整流程

plsql创建用户首先是要有权限,有权限下,创建用户的命令是
create user username identified by password default tablespace tablespacename
如果没有指定表空间default tablespace tablespacename,则会把这个用户添加到系统默认的表空间中;
授权:grant dba,resource,connect....(各种权限) to username
添加一个用户基本的流程应该是这样:
创建一个该用户的表空间,当然也可以跟其他用户共用某个表空间
create tablesapce tablespacename datafile 指定一个目录/username.dbf size 100m autoextend on next 100m mazsize 300m 这些指定的大小可以自定义
创建用户
create user username identified by password default tablespace tablespacename
授权
grant dba,resource,connect to username 需要具体哪些权限也可以自定义指定
码字不容易,望采纳!!

oracle怎么把创建的设置默认的表空间

在导入/创建Oracle数据库表,有时我们会检查发现,导入/创建后表,所创建的表空间并非是我们想要的默认表空间。此时我们需要先修改用户的默认表空间,再导入的方式来解决该问题。
alter user 你的用户名 default tablespace 你想默认的表空间
例如:alter user platform default tablespace platform
执行生效后,此时,再导入脚本或者创建表,就会在指定的默认空间下了

oracle如何在自己的用户名下建立表空间?

oracle中的表空间不是某个用户独享的对象,每个用户都有一个默认表空间,可以多个用户默认同一个表空间,但实际上我们经常把所有表空间的使用权限全部赋予某个帐户,默认表空间只是在创建表或者索引的时候如果不指定表空间名才会默认使用的表空间,下面是实例:

把全部表空间使用权限赋予"SCOTT"帐户
GRANT UNLIMITED TABLESPACE TO "SCOTT"

删除"SCOTT"帐户对所有表空间的使用权限
REVOKE UNLIMITED TABLESPACE FROM "SCOTT"

ORACLE创建表空间失败

1 从你得目录看是windows平台
2 oracle建表语句正常没有问题
3 需要你提供错误代码或截图,如ORA***
4 猜测你得问题可能是:
(1)权限问题,是否有建立表空间的权限 unlimited tablespaces
(2)D盘下否有足够的剩余空间,需要大于你给的500M
(3)对于修改路径,其实建在哪个目录下都是可以的,但是建议统一将datafile放在一个自定位置方便管理
(4)注意路径的分号,英文全角半角等

oracle表空间权限问题

你需要理解一个模式的概念。。。
新建用户A 无论他是管理员还是只用CONNECT 权限的用户,新建的时候都会产生一个和用户绑定的模式。SYSTEM的用户也是有模式的,名字PUBLIC.
例如。新建个用户A , 就有了模式A ,用用户新建了个表空间ATS,这个ATS就是属于模式A 的。ATS里所有的对象,表啊 视图啊 索引啊。。别的用户,无论是什么系统权限的,包括SYS也是不能访问的。
如果B 需要访问ATS里面的东西的话,必须要用户A赋予B SELECT 的对象权限,注意 ,是对象权限,就是说是针对ATS里某个对象的,可以使表,也可以是表空间。
赋予的方法就是 登录A 使用 GRANT语句 赋予B 。
赋予之后 B 要访问 ATS里的表A 的时候,,就SELECT * FROM ATS.A 记得要带上模式名字。

打字手累。。。加分。。。 _

最新文章