Oracle,day3

好高兴啊,又可以吃营养快乐了,我擦?我的营养快乐呢?!

[微笑]又来学习oracle了,高高兴兴的打开电脑,又出错了,装上三天,每天都有不一样的错误,每天都有新感觉[微笑][微笑][微笑]

错误代码:ora-01033:oracle initialization or shutdown in progress

百度吧,找到一篇博客,问题相同,走一走吧 Oracle ORA-01033: ORACLE initialization or shutdown in progress 错误解决办法

跟着别人的步骤一步一步的走,走到第五步的时候炸了

哎,公将降大任于私人也,必先苦其心志,饿其…..滚[微笑]

又百度了一篇博客ORA-01589错误的解决方法

跟着这位大牛的步骤一步一步做,到恢复第二个介质文件的时候提示了

已应用的日志。
已完成介质恢复。

然后去执行最后一步

SQL> alter database open resetlogs;
数据库已更改。

去连接数据库,成功了!!!![抓狂]

好了!开始学习吧!

以下是正文


创建表空间

在oracle中数据表是按照表空间来进行管理的。也就是说,建表前,需要新建表空间。必须使用dba权限的用户创建。

创建表空间我们需要用sys或者system用户登录,才有权利去创建一个表空间,登录之后,创建表空间的sql代码为:
create tablespace sstm_space
datafile 'E:\app\system_space\sstm_space.dbf'
size 100m;
/**以下代码其实并不需要,有上面三行就足够了**/
autoextend on next 32m maxsize unlimited
logging
extent management local
segment space management auto; 

提示:

tablespace SSTM_SPACE 已创建。

创建oracle用户

同一数据库中可以有多个用户,每个用户管理自己的数据库对象。比如数据库表、索引、视图等。。使用DBA权限用户创建。

oracle中的create user命令用于创建新用户。每个用户都有自己的默认表空间和临时表空间。如果没有指定,oracle就将system设为默认表空间,将temp设为临时表空间。

create user c##hsc identified by 123 
default tablespace sstm_space;

在这里我们把上面创建的表空间当做用户c##hsc用户的默认表空间给他。

PS:oracle12C 创建用户时好像需要加 c##username,是使用这种格式的,建议看一下12c的新特性,再做测试吧!

查看用户的默认表空间:

select [username],[default_tablespace] from dba_users;

默认情况下用户是锁定状态的,解锁方法:

alter user [username] account unlock;

用户添加权限

connect:
临时用户,特别是那些不需要创建表的用户通常赋予该角色
resource:
更为可靠和正式的数据库用户可以授予该角色,可以创建表、触发器、过程等
DBA:
数据库管理员角色,拥有管理数据库的最高权限。一个具有DBA角色的用户可以撤销任何别的用户的甚至别的DBA权限,这是很危险的,所有不要轻易把该权限授予一些不是很重要的用户。

grant [权限名|角色名] to [用户]
revoke [权限名|角色名] from [用户]

也可以单独把某用户的表的权限授予给别的用户,比如:

grant select on c##hsc.student to c##scott;
/**这里我们把hsc用户的student表的访问权限授予了scott用户**/

Tips:在这里我遇到一个问题,当我授予connect,resource权限给hsc用户后,hsc用户立即就可以建表,但是我想insert的时候却遇到了没有sstm_space表空间访问权限的问题,我明明给了hsc用户这个默认表空间,却不能插入数据,很费解,于是我又给了DBA权限给hsc用户,立马就能insert数据了,然后我又revoke了DBA权限,这时依然能insert数据。我不知道是DBA的权限没有成功撤销还是因为当初resource权限没有成功授予的缘故,费解~


删除用户

drop user [username] cascade;

cascade是一个级联参数,代表删除用户时把他的默认表空间也删掉


删除表空间

drop tablespace (tablespaceName) 
[including contents and datafiles]

这里的including代表把他的内容和数据文件也删掉


导出

关于导出,我们首先需要创建一个目录:

create directory mydir as 'E:\app\testdirectory';

然后把读取和写入这个目录的权限授予用户hsc:

grant read,write on directory mydir to c##hsc;

上面这些都是可以在sql工作表里执行的,但当我们真正需要导出的话,则需要去命令行里去:

expdp mm/oracle schemas=mm dumpfile=mm_data.dmp logfile=mm_bak.log  directory=my_mobile_bak

。。。视频是这样讲的,但是我也没试,哈哈哈!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值