修改oracle用户名,表空间名字,

在数据库管理系统中,演示了如何使用SQL语句更新用户信息并重命名表空间,强调了仅sys用户具备的权限。
SQL> select user#,name,password from user$ where name ='PD_ID_ID';                    ###而且只有sys用户可以。

     USER# NAME                           PASSWORD
---------- ------------------------------ ------------------------------
       201 PD_ID_ID                       04EE38BC2261946D


SQL> update user$ set NAME='PD_IN_ID' where USER#=201; 

1 row updated.

SQL> commit;

Commit complete.


 ALTER TABLESPACE us_ID_ID_data  RENAME TO us_IN_ID_data

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29654823/viewspace-1779007/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29654823/viewspace-1779007/

<think> 首先,用户查询的是在Oracle数据库中向不同用户名不同表空间导入数据的方法。这意味着数据导入的目标用户表空间与导出时的不同。 从提供的引用中,提取关键信息: - 引用[1]:描述了Oracle数据库的创建表空间、用户、授权导入数据的步骤。包括创建临时表空间、数据表空间、用户,然后授权,最后导入数据。具体命令如: - 创建表空间:`create tablespace ...` - 创建用户:`create user ... identified by ... default tablespace ... temporary tablespace ...` - 授权:需要给用户授权,如DBA权限或其他权限。 - 导入数据:使用`imp`或其他工具导入。 - 引用[2]:提到不同用户不同表空间的数据导入导出DMP文件。给出了创建用户的命令:`CREATE USER ... IDENTIFIED BY ... DEFAULT TABLESPACE ... TEMPORARY TABLESPACE ...`。 - 引用[3]:讨论Oracle数据库导出导入dmp文件,使用数据泵或传统方式。创建用户的命令:`create user ... identified by ... default tablespace ...`。 - 引用[4]:覆盖表空间、用户、表的创建导入导出。强调创建表空间时指定路径属性。 关键是处理不同用户表空间的导入。Oracle的导入工具(如`imp`或`impdp`)允许指定目标用户表空间。用户需要确保导入的目标用户存在,并有权访问目标表空间。 核心步骤: 1. **创建目标表空间(如果需要)**:如果目标表空间不存在,需要提前创建。使用`CREATE TABLESPACE`命令。 2. **创建目标用户**:创建用户,并指定默认表空间临时表空间。使用`CREATE USER ... IDENTIFIED BY ... DEFAULT TABLESPACE ... TEMPORARY TABLESPACE ...;` 3. **授权**:给目标用户必要的权限,如`GRANT CONNECT, RESOURCE, DBA TO username;` 或更细粒度的权限。 4. **导入数据**:使用导入工具(如`imp`或`impdp`)指定导入到不同的用户表空间。 - 对于传统的`imp`工具,可以使用`FROMUSER``TOUSER`参数来指定源用户目标用户。对于表空间,如果数据文件路径不同,可能需要重映射。 - 对于数据泵`impdp`,可以使用`REMAP_SCHEMA`来映射用户,`REMAP_TABLESPACE`来映射表空间。 具体方法: - **使用传统imp工具**: - 命令语法:`imp username/password@database FILE=export.dmp FULL=Y` 或其他选项。 - 指定目标用户:`imp ... TOUSER=new_user`(如果导出文件中有多个用户,可能需要`FROMUSER``TOUSER`)。 - 处理表空间:如果源目标表空间名称不同,可能需要手动修改或使用`TRANSPORT_TABLESPACE`选项。但在标准导入中,表空间映射可能自动处理,如果用户有权限。否则,使用`REMAP_TABLESPACE`在imp中可能有限,不如impdp灵活。 - **使用数据泵impdp**(推荐,更强大): - 命令语法:`impdp username/password DIRECTORY=dir_name DUMPFILE=export.dmp` - 映射用户:`REMAP_SCHEMA=source_user:target_user` - 映射表空间:`REMAP_TABLESPACE=source_tablespace:target_tablespace` - 其他选项如`FULL=Y`导入所有内容。 用户提到“向不同用户名不同表空间导入数据”,所以导出文件可能来自不同的源用户表空间。因此,使用`impdp`的`REMAP_SCHEMA``REMAP_TABLESPACE`是最佳方式。 确保目录对象可用:数据泵需要目录对象来访问文件系统。 参考引用中的步骤: - 引用[1]强调了创建表空间用户。 - 引用[2][3]提供了创建用户的命令。 - 引用[4]详细了表空间创建。 在我的回答中: - 结构化步骤:清晰、逐步解释。 - 使用中文回答。 - 生成相关问题。 - 添加引用标识,如[^1],基于提供的引用。 - 包括LaTeX格式:行内用$...$,独立数学公式用$$...$$(但Oracle不太涉及数学,可能不需要)。 - 帮助用户逐步解决。 回答结构: 1. **引言**:简要解释情况。 2. **步骤详解**: a. 创建目标表空间(如需要)。 b. 创建目标用户并绑定表空间。 c. 授权给目标用户。 d. 导入数据,指定用户表空间映射。 e. 使用impdp的示例。 3. **总结**。 4. **生成相关问题**。 生成相关问题: - 基于主题,如Oracle导入常见问题、优化方法等。 - 例如: 1. 如何处理导入时的表空间错误? 2. 数据泵与传统imp的区别? 3. 如何导入到多个不同表空间? 引用标识:在相关段落末尾添加[^1]、[^2]等,引用对应的引用内容。 </think> ### Oracle数据库向不同用户名不同表空间导入数据的方法 在Oracle数据库中,向不同用户名不同表空间导入数据时,需要确保目标用户表空间已正确创建并授权,然后使用导入工具(如传统`imp`或数据泵`impdp`)指定映射关系。以下是详细步骤,基于Oracle的最佳实践引用信息[^1][^2][^3]。 --- #### 步骤1: 创建目标表空间(如不存在) 如果目标表空间尚未创建,需先定义数据表空间临时表空间。使用`CREATE TABLESPACE`命令指定路径、大小自动扩展属性: ```sql -- 创建数据表空间(示例) CREATE TABLESPACE NEW_DATA_TBS DATAFILE 'F:\oracle\oradata\ORCL\NEW_DATA_TBS.dbf' SIZE 100M AUTOEXTEND ON NEXT 50M MAXSIZE 20480M EXTENT MANAGEMENT LOCAL LOGGING; -- 创建临时表空间(示例) CREATE TEMPORARY TABLESPACE NEW_TEMP_TBS TEMPFILE 'F:\oracle\oradata\ORCL\NEW_TEMP_TEMP.dbf' SIZE 50M AUTOEXTEND ON NEXT 50M MAXSIZE 20480M EXTENT MANAGEMENT LOCAL; ``` - **关键点**:路径需与实际存储位置匹配;`AUTOEXTEND ON`确保空间不足时自动扩容[^1][^4]。 #### 步骤2: 创建目标用户并绑定表空间 创建新用户,并指定默认数据表空间临时表空间: ```sql CREATE USER NEW_USER IDENTIFIED BY your_password DEFAULT TABLESPACE NEW_DATA_TBS -- 绑定数据表空间 TEMPORARY TABLESPACE NEW_TEMP_TBS -- 绑定临时表空间 PROFILE DEFAULT; ``` - **说明**:`NEW_USER`是新用户名,`your_password`是密码;必须绑定到已存在的表空间[^2][^3]。 #### 步骤3: 授权给目标用户 授予新用户必要的权限以执行导入操作: ```sql GRANT CONNECT, RESOURCE, DBA TO NEW_USER; -- 基础权限 GRANT UNLIMITED TABLESPACE TO NEW_USER; -- 允许无限制使用表空间 ``` - 如需更细粒度权限,使用`GRANT CREATE TABLE, INSERT ANY TABLE, ...`[^1][^3]。 #### 步骤4: 导入数据并映射用户表空间 使用数据泵工具`impdp`(推荐,支持高级映射)或传统`imp`导入数据文件(如`.dmp`文件)。 - **方法A: 使用数据泵`impdp`(Oracle 10g+)** 通过`REMAP_SCHEMA`映射用户,`REMAP_TABLESPACE`映射表空间: ```bash impdp system/password@ORCL DIRECTORY=DATA_PUMP_DIR DUMPFILE=export.dmp REMAP_SCHEMA=SOURCE_USER:NEW_USER -- 源用户到目标用户 REMAP_TABLESPACE=SOURCE_TBS:NEW_DATA_TBS -- 源表空间到目标表空间 FULL=Y -- 导入所有内容 ``` - **参数解释**: - `DIRECTORY`: 指定转储文件目录(需预先创建)。 - `REMAP_SCHEMA`: 将源用户对象映射到目标用户。 - `REMAP_TABLESPACE`: 将源表空间对象映射到目标表空间[^3][^4]。 - **方法B: 使用传统`imp`工具(兼容旧版本)** 通过`FROMUSER``TOUSER`指定用户映射,但表空间映射需手动处理: ```bash imp system/password@ORCL FILE=export.dmp FROMUSER=SOURCE_USER TOUSER=NEW_USER IGNORE=Y -- 忽略创建错误 ``` - **注意**:如果表空间名称不同,导入后需手动迁移对象或使用`ALTER TABLE ... MOVE TABLESPACE ...`命令[^1][^2]。 #### 常见问题处理 - **权限错误**:确保目标用户有`IMP_FULL_DATABASE`权限(通过`GRANT IMP_FULL_DATABASE TO NEW_USER;`)。 - **表空间不足**:检查表空间大小,使用`ALTER TABLESPACE ... ADD DATAFILE ...`扩展。 - **字符集不一致**:导出导入数据库字符集必须匹配,避免乱码[^1][^3]。 完成导入后,验证数据: ```sql SELECT * FROM DBA_OBJECTS WHERE OWNER = 'NEW_USER'; -- 检查对象是否导入 SELECT TABLESPACE_NAME FROM USER_TABLES; -- 确认表空间绑定 ``` 通过以上步骤,您可以高效地将数据导入到指定用户表空间,解决跨环境迁移问题[^1][^2][^3]. --- ### 相关问题 1. 如何导出Oracle数据到DMP文件以便在不同用户间迁移? 2. 数据泵(IMPDP/EXPDP)与传统工具(IMP/EXP)的主要区别是什么? 3. 导入数据时遇到“表空间不存在”错误应如何解决? [^1]: oracle 数据库创建表空间、用户、数据库实例、授权、数据导入... [^2]: Oracle数据库中不同用户不同表空间的数据导入导出DMP文件... [^3]: Oracle数据库怎么导出导入dmp文件,使用数据泵的方式备份还原... [^4]: oracle数据库表空间、用户、表的创建导入导出...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值