oracle数据库表空间及权限调整示例

简介:

一、情况说明

1.背景情况

1).用户采用DBA权限,DBA权限具有访问数据库所有用户数据的权限,不安全。
2).表空间与用户没有对应关系,无法直接标识用户与表空间(根据自己情况)。
3).迁移涉及到表、索引、LOB对象的迁移。
注:如果涉及到LONGRAW字段类型表,还需要先建LONGRAW字段转成LOB对象。

本文只是找了情景环境,做一个记录过程,相对于操作系统中文件,文件夹的数据库的移动,数据库中也就是数据库对象进行的一些操作与管理。

本文出自:http://koumm.blog.51cto.com/

2.具体任务

1.将gsjsso用户下的表全部移动到一个新建的表空间gsjsso。

2.将gsjsso用户从DBA权限降权为普通用户。

image

image

二、迁移过程如下

1.创建GSJSSO表空间,并将gsjsso用户缺省表空间改为GSJSSO表空间。

image

2.构建迁移表SQL语句

1
2
3
4
select  'alter table ' ||ds.owner|| '.' ||ds.segment_name|| ' move tablespace GSJSSO;'
from dba_segments ds
where ds.tablespace_name  in ( 'JTTSSO' ) and ds.owner =  'GSJSSO'
and ds.segment_type =  'TABLE' ;

232104728.jpg

3.构建迁移索引SQL语句

1
2
3
4
select  'alter INDEX ' ||ds.owner|| '.' ||ds.segment_name|| ' rebuild tablespace GSJSSO;'
from dba_segments ds
where ds.tablespace_name  in ( 'JTTSSO' ) and ds.owner =  'GSJSSO'
and ds.segment_type =  'INDEX' ;

image

4.构建迁移LOB大对象SQL语句过程

1)查看GSJSSO用户在JTTSSO空间中的LOB对象,说明:LOB是造成不能成功通过导入来改变空间原因。只能采用如下方式。

1
2
3
4
5
6
7
8
9
10
col TABLESPACE_NAME  for  a20;
col DS.OWNER|| '.' ||DS.SEGMENT_NAME  for  a40;
col DATA_TYPE  for  a15;
select ds.tablespace_name,ds.owner|| '.' ||ds.segment_name,ds.segment_type,
dtc.DATA_TYPE,dtc.COLUMN_NAME
from dba_tab_columns dtc , dba_segments ds
where dtc.TABLE_NAME = ds.segment_name
and dtc.OWNER = ds.owner
and ds.tablespace_name  in  ( 'JTTSSO' )
and DATA_TYPE like  '%LOB' ;

image

2)构建迁移LOB大对象SQL语句

1
2
3
select   'alter table ' ||dtc.owner|| '.' ||dtc.TABLE_NAME|| ' move lob(' ||dtc.COLUMN_NAME|| ') store as(tablespace ' ||du.default_tablespace|| ');'
from dba_tab_columns dtc,dba_users du
where dtc.OWNER = du.username and dtc.OWNER  in ( 'GSJSSO' ) and dtc.DATA_TYPE like  '%LOB' ;

image

5.执行构建SQL语句迁移表,索引,LOB对象等数据

1)复制迁移表SQL语句在SQLPLUS中执行。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
alter table GSJSSO.ED_SEND_CONFIG move tablespace GSJSSO;
alter table GSJSSO.ED_SEND_CONFIG_HOST move tablespace GSJSSO;
alter table GSJSSO.ED_SEND_CONFIG_LOG move tablespace GSJSSO;
alter table GSJSSO.ED_SEND_CONFIG_ORG move tablespace GSJSSO;
alter table GSJSSO.ED_SEND_CONFIG_USER move tablespace GSJSSO;
alter table GSJSSO.IDM_ROLE_MENU_ITEM move tablespace GSJSSO;
alter table GSJSSO.IDM_SYS_ADMIN_ROLE move tablespace GSJSSO;
alter table GSJSSO.IDM_SYS_ADMIN_USER move tablespace GSJSSO;
alter table GSJSSO.IDM_SYS_CONFIG move tablespace GSJSSO;
alter table GSJSSO.IDM_SYS_LOG move tablespace GSJSSO;
alter table GSJSSO.IDM_SYS_MENU move tablespace GSJSSO;
alter table GSJSSO.IDM_USER_ROLE move tablespace GSJSSO;
alter table GSJSSO.NET_PLATFORM_ORGANIZE_T move tablespace GSJSSO;
alter table GSJSSO.NET_PLATFORM_USER_T move tablespace GSJSSO;
alter table GSJSSO.PORTAL_ADAPTER move tablespace GSJSSO;
alter table GSJSSO.PORTAL_ADAPTER_RESOURCE move tablespace GSJSSO;
alter table GSJSSO.PORTAL_ADAPTER_RESOURCE_PRAM move tablespace GSJSSO;
alter table GSJSSO.PORTAL_SYS_ADMIN_USER move tablespace GSJSSO;
alter table GSJSSO.PORTAL_SYS_CONSTANTS move tablespace GSJSSO;
alter table GSJSSO.PORTAL_TEMPLATE_STYLE move tablespace GSJSSO;
alter table GSJSSO.PORTAL_TEMPLATE_USER move tablespace GSJSSO;
alter table GSJSSO.PORTAL_TEMPLATE_ZIP move tablespace GSJSSO;
alter table GSJSSO.PORTAL_USER_HEAD_PICTURE move tablespace GSJSSO;
alter table GSJSSO.PORTAL_USER_LOGIN move tablespace GSJSSO;
alter table GSJSSO.SSO_HOST move tablespace GSJSSO;
alter table GSJSSO.SSO_HOST_CONFIG move tablespace GSJSSO;
alter table GSJSSO.SSO_ORG move tablespace GSJSSO;
alter table GSJSSO.SSO_SESSION move tablespace GSJSSO;
alter table GSJSSO.SSO_USER move tablespace GSJSSO;
alter table GSJSSO.SYS_ADMIN_USER move tablespace GSJSSO;
alter table GSJSSO.SYS_CONFIG move tablespace GSJSSO;

2)复制迁移索引SQL语句在SQLPLUS中执行。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
alter INDEX GSJSSO.PK_ED_SEND_CONFIG rebuild tablespace GSJSSO;
alter INDEX GSJSSO.PK_ED_SEND_CONFIG_HOST rebuild tablespace GSJSSO;
alter INDEX GSJSSO.PK_ED_SEND_CONFIG_LOG rebuild tablespace GSJSSO;
alter INDEX GSJSSO.PK_ED_SEND_CONFIG_ORG rebuild tablespace GSJSSO;
alter INDEX GSJSSO.PK_ED_SEND_CONFIG_USER rebuild tablespace GSJSSO;
alter INDEX GSJSSO.ROLE_MENU rebuild tablespace GSJSSO;
alter INDEX GSJSSO.ID_PK rebuild tablespace GSJSSO;
alter INDEX GSJSSO.PK_IDM_SYS_ADMIN_USER rebuild tablespace GSJSSO;
alter INDEX GSJSSO.MENUID_PK rebuild tablespace GSJSSO;
alter INDEX GSJSSO.USER_ROLE rebuild tablespace GSJSSO;
alter INDEX GSJSSO.SYS_C005154 rebuild tablespace GSJSSO;
alter INDEX GSJSSO.SYS_C005157 rebuild tablespace GSJSSO;
alter INDEX GSJSSO.SYS_C005159 rebuild tablespace GSJSSO;
alter INDEX GSJSSO.SYS_C005161 rebuild tablespace GSJSSO;
alter INDEX GSJSSO.SYS_C005163 rebuild tablespace GSJSSO;
alter INDEX GSJSSO.PK_PORTAL_SYS_ADMIN_USER rebuild tablespace GSJSSO;
alter INDEX GSJSSO.PK_PORTAL_SYS_CONSTANTS rebuild tablespace GSJSSO;
alter INDEX GSJSSO.PK_PORTAL_TEMPLATE_STYLE rebuild tablespace GSJSSO;
alter INDEX GSJSSO.PK_PORTAL_TEMPLATE_USER rebuild tablespace GSJSSO;
alter INDEX GSJSSO.SYS_C005173 rebuild tablespace GSJSSO;
alter INDEX GSJSSO.PK_PORTAL_USER_LOGIN rebuild tablespace GSJSSO;
alter INDEX GSJSSO.SYS_C005181 rebuild tablespace GSJSSO;
alter INDEX GSJSSO.SYS_C005189 rebuild tablespace GSJSSO;
alter INDEX GSJSSO.SYS_C005193 rebuild tablespace GSJSSO;
alter INDEX GSJSSO.PK rebuild tablespace GSJSSO;
alter INDEX GSJSSO.PK_U rebuild tablespace GSJSSO;
alter INDEX GSJSSO.PK_SYS_ADMIN_USER rebuild tablespace GSJSSO;

3)复制迁移LOB对象SQL语句在SQLPLUS中执行。

1
2
alter table GSJSSO.PORTAL_USER_LOGIN move lob(DESCRIPTION) store  as (tablespace GSJSSO);
alter table GSJSSO.ED_SEND_CONFIG_LOG move lob(DETAIL) store  as (tablespace GSJSSO);

6.验证迁移后的结果

image

查询GSJSSO用户在JTTSSO表空间还有没有对象。

image

三、降权过程如下

1.查询GSJSSO用户权限,并赋予普通权限

image

2.查询GSJSSO表空间信息

image

3.取消DBA权限

image

image

4.赋予GSJSSO用户无限制使用GSJSSO表空间的权限

image

查看使用空间配额,如需要其它额外权限,可以直接赋予。

image

至此数据库调整完毕。





一、情况说明

1.背景情况

1).用户采用DBA权限,DBA权限具有访问数据库所有用户数据的权限,不安全。
2).表空间与用户没有对应关系,无法直接标识用户与表空间(根据自己情况)。
3).迁移涉及到表、索引、LOB对象的迁移。
注:如果涉及到LONGRAW字段类型表,还需要先建LONGRAW字段转成LOB对象。

本文只是找了情景环境,做一个记录过程,相对于操作系统中文件,文件夹的数据库的移动,数据库中也就是数据库对象进行的一些操作与管理。

本文出自:http://koumm.blog.51cto.com/

2.具体任务

1.将gsjsso用户下的表全部移动到一个新建的表空间gsjsso。

2.将gsjsso用户从DBA权限降权为普通用户。

image

image

二、迁移过程如下

1.创建GSJSSO表空间,并将gsjsso用户缺省表空间改为GSJSSO表空间。

image

2.构建迁移表SQL语句

1
2
3
4
select  'alter table ' ||ds.owner|| '.' ||ds.segment_name|| ' move tablespace GSJSSO;'
from dba_segments ds
where ds.tablespace_name  in ( 'JTTSSO' ) and ds.owner =  'GSJSSO'
and ds.segment_type =  'TABLE' ;

232104728.jpg

3.构建迁移索引SQL语句

1
2
3
4
select  'alter INDEX ' ||ds.owner|| '.' ||ds.segment_name|| ' rebuild tablespace GSJSSO;'
from dba_segments ds
where ds.tablespace_name  in ( 'JTTSSO' ) and ds.owner =  'GSJSSO'
and ds.segment_type =  'INDEX' ;

image

4.构建迁移LOB大对象SQL语句过程

1)查看GSJSSO用户在JTTSSO空间中的LOB对象,说明:LOB是造成不能成功通过导入来改变空间原因。只能采用如下方式。

1
2
3
4
5
6
7
8
9
10
col TABLESPACE_NAME  for  a20;
col DS.OWNER|| '.' ||DS.SEGMENT_NAME  for  a40;
col DATA_TYPE  for  a15;
select ds.tablespace_name,ds.owner|| '.' ||ds.segment_name,ds.segment_type,
dtc.DATA_TYPE,dtc.COLUMN_NAME
from dba_tab_columns dtc , dba_segments ds
where dtc.TABLE_NAME = ds.segment_name
and dtc.OWNER = ds.owner
and ds.tablespace_name  in  ( 'JTTSSO' )
and DATA_TYPE like  '%LOB' ;

image

2)构建迁移LOB大对象SQL语句

1
2
3
select   'alter table ' ||dtc.owner|| '.' ||dtc.TABLE_NAME|| ' move lob(' ||dtc.COLUMN_NAME|| ') store as(tablespace ' ||du.default_tablespace|| ');'
from dba_tab_columns dtc,dba_users du
where dtc.OWNER = du.username and dtc.OWNER  in ( 'GSJSSO' ) and dtc.DATA_TYPE like  '%LOB' ;

image

5.执行构建SQL语句迁移表,索引,LOB对象等数据

1)复制迁移表SQL语句在SQLPLUS中执行。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
alter table GSJSSO.ED_SEND_CONFIG move tablespace GSJSSO;
alter table GSJSSO.ED_SEND_CONFIG_HOST move tablespace GSJSSO;
alter table GSJSSO.ED_SEND_CONFIG_LOG move tablespace GSJSSO;
alter table GSJSSO.ED_SEND_CONFIG_ORG move tablespace GSJSSO;
alter table GSJSSO.ED_SEND_CONFIG_USER move tablespace GSJSSO;
alter table GSJSSO.IDM_ROLE_MENU_ITEM move tablespace GSJSSO;
alter table GSJSSO.IDM_SYS_ADMIN_ROLE move tablespace GSJSSO;
alter table GSJSSO.IDM_SYS_ADMIN_USER move tablespace GSJSSO;
alter table GSJSSO.IDM_SYS_CONFIG move tablespace GSJSSO;
alter table GSJSSO.IDM_SYS_LOG move tablespace GSJSSO;
alter table GSJSSO.IDM_SYS_MENU move tablespace GSJSSO;
alter table GSJSSO.IDM_USER_ROLE move tablespace GSJSSO;
alter table GSJSSO.NET_PLATFORM_ORGANIZE_T move tablespace GSJSSO;
alter table GSJSSO.NET_PLATFORM_USER_T move tablespace GSJSSO;
alter table GSJSSO.PORTAL_ADAPTER move tablespace GSJSSO;
alter table GSJSSO.PORTAL_ADAPTER_RESOURCE move tablespace GSJSSO;
alter table GSJSSO.PORTAL_ADAPTER_RESOURCE_PRAM move tablespace GSJSSO;
alter table GSJSSO.PORTAL_SYS_ADMIN_USER move tablespace GSJSSO;
alter table GSJSSO.PORTAL_SYS_CONSTANTS move tablespace GSJSSO;
alter table GSJSSO.PORTAL_TEMPLATE_STYLE move tablespace GSJSSO;
alter table GSJSSO.PORTAL_TEMPLATE_USER move tablespace GSJSSO;
alter table GSJSSO.PORTAL_TEMPLATE_ZIP move tablespace GSJSSO;
alter table GSJSSO.PORTAL_USER_HEAD_PICTURE move tablespace GSJSSO;
alter table GSJSSO.PORTAL_USER_LOGIN move tablespace GSJSSO;
alter table GSJSSO.SSO_HOST move tablespace GSJSSO;
alter table GSJSSO.SSO_HOST_CONFIG move tablespace GSJSSO;
alter table GSJSSO.SSO_ORG move tablespace GSJSSO;
alter table GSJSSO.SSO_SESSION move tablespace GSJSSO;
alter table GSJSSO.SSO_USER move tablespace GSJSSO;
alter table GSJSSO.SYS_ADMIN_USER move tablespace GSJSSO;
alter table GSJSSO.SYS_CONFIG move tablespace GSJSSO;

2)复制迁移索引SQL语句在SQLPLUS中执行。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
alter INDEX GSJSSO.PK_ED_SEND_CONFIG rebuild tablespace GSJSSO;
alter INDEX GSJSSO.PK_ED_SEND_CONFIG_HOST rebuild tablespace GSJSSO;
alter INDEX GSJSSO.PK_ED_SEND_CONFIG_LOG rebuild tablespace GSJSSO;
alter INDEX GSJSSO.PK_ED_SEND_CONFIG_ORG rebuild tablespace GSJSSO;
alter INDEX GSJSSO.PK_ED_SEND_CONFIG_USER rebuild tablespace GSJSSO;
alter INDEX GSJSSO.ROLE_MENU rebuild tablespace GSJSSO;
alter INDEX GSJSSO.ID_PK rebuild tablespace GSJSSO;
alter INDEX GSJSSO.PK_IDM_SYS_ADMIN_USER rebuild tablespace GSJSSO;
alter INDEX GSJSSO.MENUID_PK rebuild tablespace GSJSSO;
alter INDEX GSJSSO.USER_ROLE rebuild tablespace GSJSSO;
alter INDEX GSJSSO.SYS_C005154 rebuild tablespace GSJSSO;
alter INDEX GSJSSO.SYS_C005157 rebuild tablespace GSJSSO;
alter INDEX GSJSSO.SYS_C005159 rebuild tablespace GSJSSO;
alter INDEX GSJSSO.SYS_C005161 rebuild tablespace GSJSSO;
alter INDEX GSJSSO.SYS_C005163 rebuild tablespace GSJSSO;
alter INDEX GSJSSO.PK_PORTAL_SYS_ADMIN_USER rebuild tablespace GSJSSO;
alter INDEX GSJSSO.PK_PORTAL_SYS_CONSTANTS rebuild tablespace GSJSSO;
alter INDEX GSJSSO.PK_PORTAL_TEMPLATE_STYLE rebuild tablespace GSJSSO;
alter INDEX GSJSSO.PK_PORTAL_TEMPLATE_USER rebuild tablespace GSJSSO;
alter INDEX GSJSSO.SYS_C005173 rebuild tablespace GSJSSO;
alter INDEX GSJSSO.PK_PORTAL_USER_LOGIN rebuild tablespace GSJSSO;
alter INDEX GSJSSO.SYS_C005181 rebuild tablespace GSJSSO;
alter INDEX GSJSSO.SYS_C005189 rebuild tablespace GSJSSO;
alter INDEX GSJSSO.SYS_C005193 rebuild tablespace GSJSSO;
alter INDEX GSJSSO.PK rebuild tablespace GSJSSO;
alter INDEX GSJSSO.PK_U rebuild tablespace GSJSSO;
alter INDEX GSJSSO.PK_SYS_ADMIN_USER rebuild tablespace GSJSSO;

3)复制迁移LOB对象SQL语句在SQLPLUS中执行。

1
2
alter table GSJSSO.PORTAL_USER_LOGIN move lob(DESCRIPTION) store  as (tablespace GSJSSO);
alter table GSJSSO.ED_SEND_CONFIG_LOG move lob(DETAIL) store  as (tablespace GSJSSO);

6.验证迁移后的结果

image

查询GSJSSO用户在JTTSSO表空间还有没有对象。

image

三、降权过程如下

1.查询GSJSSO用户权限,并赋予普通权限

image

2.查询GSJSSO表空间信息

image

3.取消DBA权限

image

image

4.赋予GSJSSO用户无限制使用GSJSSO表空间的权限

image

查看使用空间配额,如需要其它额外权限,可以直接赋予。

image

至此数据库调整完毕。


本文转自 koumm 51CTO博客,原文链接:http://blog.51cto.com/koumm/1314154,如需转载请自行联系原作者


相关文章
|
4天前
|
存储 自然语言处理 Oracle
Oracle数据库字符集概述及修改方式
【8月更文挑战第15天】Oracle 数据库字符集定义了数据的编码方案,决定可存储的字符类型及其表示方式。主要作用包括数据存储、检索及跨系统传输时的正确表示。常见字符集如 AL32UTF8 支持多语言,而 WE8MSWIN1252 主用于西欧语言。修改字符集风险高,可能导致数据问题,需事先备份并评估兼容性。可通过 ALTER DATABASE 语句直接修改或采用导出-导入数据的方式进行。完成后应验证数据完整性。此操作复杂,须谨慎处理。
|
11天前
|
SQL Oracle 关系型数据库
"揭秘!一键解锁Oracle日志清理魔法,让海量归档日志无处遁形,守护数据库健康,告别磁盘空间告急噩梦!"
【8月更文挑战第9天】随着Oracle数据库在企业应用中的普及,归档日志管理对保持数据库健康至关重要。归档日志记录所有更改,对数据恢复极为重要,但也可能迅速占用大量磁盘空间影响性能。利用Oracle提供的RMAN工具,可通过编写Shell脚本来自动清理归档日志。脚本包括设置环境变量、连接数据库、检查和删除指定时间前的日志,并记录执行情况。通过Cron作业定时运行脚本,可有效管理日志文件,确保数据库稳定运行。
36 7
|
8天前
|
Oracle 关系型数据库 MySQL
Mysql和Oracle数据库死锁查看以及解决
【8月更文挑战第11天】本文介绍了解决MySQL与Oracle数据库死锁的方法。MySQL可通过`SHOW ENGINE INNODB STATUS`查看死锁详情,并自动回滚一个事务解除死锁;也可手动KILL事务。Oracle则通过查询V$LOCK与V$SESSION视图定位死锁,并用`ALTER SYSTEM KILL SESSION`命令终止相关会话。预防措施包括遵循ACID原则、优化索引及拆分大型事务。
|
10天前
|
监控 Oracle 关系型数据库
"深度剖析:Oracle SGA大小调整策略——从组件解析到动态优化,打造高效数据库性能"
【8月更文挑战第9天】在Oracle数据库性能优化中,系统全局区(SGA)的大小调整至关重要。SGA作为一组共享内存区域,直接影响数据库处理能力和响应速度。本文通过问答形式介绍SGA调整策略:包括SGA的组成(如数据缓冲区、共享池等),如何根据负载与物理内存确定初始大小,手动调整SGA的方法(如使用`ALTER SYSTEM`命令),以及利用自动内存管理(AMM)特性实现智能调整。调整过程中需注意监控与测试,确保稳定性和性能。
22 2
|
12天前
|
Oracle 关系型数据库 数据库
[oracle]拆分多用户的公共表空间
[oracle]拆分多用户的公共表空间
|
20天前
|
开发框架 Oracle 关系型数据库
ABP框架使用Oracle数据库,并实现从SQLServer中进行数据迁移的处理
ABP框架使用Oracle数据库,并实现从SQLServer中进行数据迁移的处理
|
1天前
|
数据采集 Oracle 关系型数据库
实时计算 Flink版产品使用问题之怎么实现从Oracle数据库读取多个表并将数据写入到Iceberg表
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
25天前
|
Oracle 关系型数据库 数据库
|
25天前
|
SQL Oracle 关系型数据库
关系型数据库Oracle结束 RMAN 会话:
【7月更文挑战第25天】
35 1
|
6天前
|
SQL 数据库
拒绝了对对象 ‘GetTips‘ (数据库 ‘vipsoft‘,架构 ‘dbo‘)的 EXECUTE 权限
拒绝了对对象 ‘GetTips‘ (数据库 ‘vipsoft‘,架构 ‘dbo‘)的 EXECUTE 权限
17 0

推荐镜像

更多