TABLESPACE为READ ONLY,可进行的DML和DDL操作(部分举例)

本文介绍在Oracle数据库中创建只读表空间的过程,并通过具体示例演示如何使用该表空间进行常见操作,包括创建用户、授予权限、创建表、插入数据及尝试执行在只读表空间上被禁止的操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建测试表空间

create tablespace tablespacereadonly datafile '/u02/oradata/orcl/tablespacereadonly01.dbf' size 1m autoextend on next 1m maxsize unlimited;

创建测试用户

create user ureadonly identified by "123456" default tablespace tablespacereadonly;

给测试用户授权

grant connect,resource to uoffline;

创建测试表

create table t01(id integer,name varchar2(10));

插入测试数据

insert into t01(id,name) values (1,'a');

insert into t01(id,name) values (2,'b');

commit;

select * from t01;

将表空间置为只读

alter tablespace tablespacereadonly read only;

select * from t01;

--insert into...

--不可修改

insert into t01(id,name) values (3,'c');

--delete from...

--不可修改
delete from t01 where id=1;

--create table...

--创建表空间时需要分配空间,表空间为只读,故不允许操作

--不可修改
create table t02(id integer,name varchar2(10));

--alter table...rename to...

--alter table...rename to...只删除数据字典的相关信息(表并没有实际删除),而数据字典存在在system表空间中,system表空间未置为只读

--可修改

alter table t02 rename to t01;

--alter table...add...

--alter table...add...只修改数据字典的相关信息,而数据字典存在在system表空间中,system表空间未置为只读

--可修改

alter table t01 add age integer;

--alter table...drop column...不仅修改数据字典的相关信息,同时也将该字段占用的空间进行释放,由于表空间为只读,故不可操作

--不可修改

alter table t01 drop column age;

--alter table...rename column...to...

--alter table...rename column...to...只修改数据字典的相关信息,而数据字典存在在system表空间中,system表空间未置为只读

--可修改

alter table t01 rename column age to ages;

--alter table...modify...只修改数据字典的相关信息,而数据字典存在在system表空间中,system表空间未置为只读

--可修改

alter table t01 modify name varchar2(20);

--drop table...

--drop table只删除数据字典的相关信息(表并没有实际删除),而数据字典存在在system表空间中,system表空间未置为只读
--可修改
drop table t01;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值