如何用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_PRIVSWHERE 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数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)