如何用sys as sysdba权限连接数据库进行ExpImp

如何用sys as sysdba权限连接数据库进行ExpImp,第1张

如何用sys as sysdba权限连接数据库进行Exp/Imp

expsys/XXX@test file=d:\daochudmp tables=(table1,table2)

file是你存储的路径,tables是你要导出表的名字。如果是某个用户的全库可以用owner=XXX

@是你连接服务器的ip和地址,例如19291681/orcl或者你建好的连接名称

因为实用sys所以会提示让你重新输入用户

这时候输入:sys as sysdba ,回车

然后输入sys的密码(默认不显示,照常输入即可。)然后 回车。

导入:

imp sys/XXX@TEST file=d:\daochudmp

sys用户提示如上,如果有报错可以添加ignore=y

看来是文件出问题了。可以先清除日志,就可以OPEN

DATABASE了,再SWITCH

LOG

alter

database

clear

logfile

group

3;

alter

database

open;

alter

system

switch

logfile;

如果你的数据库该参数值为none或别的值,请修改为两者中的一个,shared表示该口令文件可以被几个数据库公用,使用相同SYSDBA的口令二、在数据库服务器上的oracle目录下\ora81\database下执行如下命令orapwd file=PWDdevORA password=oracle entries=3 -- 其中PWDdev的dev为数据库实例名,修改为你的数据库实例名,password的oracle表示sys和internal帐号的口令,entries的值3表示可以允许有3个用户有sysdba的权限。如果不在oracle下database目录执行,需要指定file文件的路径,当然生成文件后复制到该目录下也可以。三、重新启动数据库

DBA是“角色”,而SYSDBA是系统权限,被授予SYSDBA权限的用户可以启动/关闭/创建/删除/备份数据库。

你可以执行下面语句查询DBA角色具有的权限

SELECT  FROM DBA_ROLE_PRIVS

 WHERE GRANTED_ROLE = 'DBA';

首先,清空DATA_PUMP_DIR环境变量:

C:\> set DATA_PUMP_DIR=

创建DATA_PUMP_DIR的目录:

CONNECT SYSTEM/MANAGER

CREATE OR REPLACE DIRECTORY data_pump_dir AS 'D:\DataPump';

GRANT read, write ON DIRECTORY data_pump_dir TO scott;

-- On windows, place all expdp parameters on one single line:

C:\> expdp system/manager@my_db_alias DUMPFILE=expdp_sdmp

LOGFILE=expdp_slog SCHEMAS=scott

如果SCOTT用户不是授权用户,不能使用默认的DATA_PUMP_DIR。

ORA-39002: invalid operation

ORA-39070: Unable to open the log file

ORA-39145: directory object parameter must be specified and non-null

用户SCOTT的解决方法:如上面53,SCOTT可以设置环境变量DATA_PUMP_DIR为MY_DIR:

-- On windows, place all expdp parameters on one single line:

C:\> set DATA_PUMP_DIR=MY_DIR

C:\> expdp scott/tiger@my_db_alias DUMPFILE=expdp_sdmp

LOGFILE=expdp_slog SCHEMAS=scott

或者这种特定场景下,用户SCOTT也可以有目录DATA_PUMP_DIR的读和写权限:

-- On windows, place all expdp parameters on one single line:

C:\> set DATA_PUMP_DIR=DATA_PUMP_DIR

C:\> expdp scott/tiger@my_db_alias DUMPFILE=expdp_sdmp

LOGFILE=expdp_slog SCHEMAS=scott

1、

sysdba是一个身份,不是权限,被授予sysdba身份的用户登录时有两种模式可以选择,一是普通模式,二是sysdba模式。以sysdba模式登录时可以关闭数据库,普通模式则没有权限。

确认你当前模式的方法是在命令行窗口执行show user,普通模式显示zzy,sysdba模式显示sys。

2、

上面说到了,sysdba是一个身份,不是权限,所以user_sys_privs查不到。

正确的查询方法是select from v$pwfile_users;

如有帮助请采纳

以上就是关于如何用sys as sysdba权限连接数据库进行Exp/Imp全部的内容,包括:如何用sys as sysdba权限连接数据库进行Exp/Imp、怎么使数据库只能用sysdba打开、如何解决无法以SYSDBA的身份远程登陆ORACLE数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9336949.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存