oracle如何切换角色 oracle数据库切换用户命令

oracle 设了用户登陆 如何更换

用pl/sql登陆时可以直接用账号 密码denglu

在晋江等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站设计、网站制作 网站设计制作按需开发,公司网站建设,企业网站建设,品牌网站设计,成都营销网站建设,成都外贸网站制作,晋江网站建设费用合理。

已经登陆pl/sql 切换用户可以这样

connect 用户名/密码 试下看

ORACLE如何切换到用户需要的数据库?

直接登录相应的用户就可以了。

步骤:直接在命令行输入sqlconn

username/password;即可完成切换.

解释:每个用户都只能默认一个数据库,不可能出现多个数据库。所以直接切换到需要的用户下即可完成操作。

问一个关于oracle的问题(如何在pl/sql中用sql语句切换用户)?

在plsql中,不能在sql窗口中执行,要在命令窗口中执行,文件-》新建-》命令窗口,剩下根sqlplus一样

oracle数据库切换问题

你这个属于主、备机切换

1. 察看主库状态

select switchover_status from v$database;

收集主库上的临时表空间的情况,原因是备库激活后临时文件可能丢失,需要手工建上去:

col file_name format a40

select file_name,tablespace_name,bytes/1024/1024 from dba_temp_files;

FILE_NAME                                TABLESPACE_NAME      BYTES/1024/1024

---------------------------------------- -------------------- ---------------

/data/oradata/alihr/temp01.dbf           TEMP                            2048

2.切换主库到standby

alter database commit to switchover to physical standby;

或:

ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN;

shutdown immediate;

startup nomount;

alter database mount standby database;

3.验证要被切换的standby是否接收到switch to 通知

SELECT SWITCHOVER_STATUS FROM V$DATABASE; 

以前的状态就是SESSIONS ACTIVE,现在就变为TO PRIMARY

4.切换物理standby到主用模式,检查redo log是否创建好

ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;

shutdown immediate;

startup;

5. standby数据库切换成主库后,检查是否需要、对临时表空间增加临时文件:

先检查临时文件是否丢失:

col file_name format a60

select file_name,tablespace_name from dba_temp_files;

把结果前面原主库上的临时文件进行对比,如有丢失则使用如下命令增加:

alter tablespace temp add tempfile '/data/oradata/alihr/temp02.dbf' size 2048M reuse;

正常情况下,如果db_file_name_convert参数设置正确的话,11g会自动建立temp file

6.在新的standby机器上

alter system set log_archive_dest_state_2='defer';

alter database recover managed standby database disconnect from session;

7.检查主备库中fal参数

fal_server服务名是在standby机器的tnsnames中,指向主库,fal_client是在主库上的tnsnames中,指向standby。

fal参数只在standby机器上生效,所以在standby机器上fal_server指向主库,fal_client机器指向备库.

而主库上的fal参数虽然不生效,但为了避免主库切换成standby时,我们还要修改fal参数,所以现在就设置好,

让fal_server指向现在的standby数据库,fal_client指向自己。

8.在新的主库

alter system set log_archive_dest_state_2='enable';

alter system archive log current; 

然后到备库上检查备库机器上日志是否正常的传过来了。

9.检查和调整主备库两台机器中的crontab中的数据库备份脚本和删除归档脚本。

=================oracle11g的最大保护和最大可用模式下的切换==================

如果主库是意外宕机的,则直接把备库切换成主库:

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH;

shutdown immediate;

connect / as sysdba;

startup mount;

ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;

shutdown immediate;

connect / as sysdba;

startup mount;

ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE AVAILABILITY;

alter database open;

注意:上面操作中是手工的把数据库重新置成MAXIMIZE AVAILABILITY,否则数据库起来后是最大性能模式。

检查数据库的角色:

select database_role from v$database;

原有主库启动后,如果不是硬盘坏,主库上的数据还存在,则把主库转换成standby就可以了:

主库上:

startup mount;

recover automatic database;

ALTER DATABASE CONVERT TO PHYSICAL STANDBY;

shutdown immediate;

注意千万不要把主库打开了,否则会导致主库的SCN发生变化,无法转换成standby数据库了。

在把原先的主库转化为standby时,有时可能报如下错误:

SQL alter database recover managed standby database finish;

alter database recover managed standby database finish

*

ERROR at line 1:

ORA-00283: recovery session canceled due to errors

ORA-19909: datafile 1 belongs to an orphan incarnation

ORA-01110: data file 1: '/opt/oracle/oradata/oratest/system01.dbf'

这里把到rman中:

list incarnation of database;

reset database to incarnation 1;

recover database;

reset database to incarnation 2;

=========================================================

failover在物理standby的切换

1.检查standby看是否使用了standby log

2.有standby log,执行下面的命令

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH;

2.1 没有standby log则不执行上面的

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH SKIP STANDBY LOGFILE;

3. 切换

ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;

3.1 如果上面3步骤失败,则

ALTER DATABASE ACTIVATE STANDBY DATABASE;

4. 重启db

shutdown immediate

startup

switchover的方法:

主库和物理standby的切换

1.察看主库状态

SELECT SWITCHOVER_STATUS FROM V$DATABASE;

2.切换

ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY;

3.原主库

shutdown immediate;

startup nomount

alter database mount standby database;

4.验证要被切换的standby是否接收到switch to 通知

SELECT SWITCHOVER_STATUS FROM V$DATABASE; 

增加online redo日志

5.切换物理standby到主

ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;

shutdown immediate;

startup;

6.在新的standby机器(也就是老的主库)

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

7.在新的主库

alter system archive log current; 

========active standby database===========

当:

alter database activate standby database;

原来的主库只能通过闪回转化成standby database,但要求数据库的flashback打开。

在新主库上:

select to_char(standby_became_primary_scn) from v$database;

在旧主库上:

SHUTDOWN IMMEDIATE;

STARTUP MOUNT;

FLASHBACK DATABASE TO SCN standby_became_primary_scn;

ALTER DATABASE CONVERT TO PHYSICAL STANDBY;

select max(sequence#) from v$log_history where RESETLOGS_TIME=(select max(RESETLOGS_TIME) from v$log_history); 

实例恢复:

recover managed standby database disconnect using current logfile;

=================lgwr设置====================================

alter system set log_archive_dest_3 = 'location=/disk3/arch/bopscha reopen=2 MAX_FAILURE=3';

alter system set log_archive_dest_state_3 = alternate;

alter system set log_archive_dest_1 = 'location=/disk2/arch/bopscha alternate=log_archive_dest_3 reopen=60 MAX_FAILURE=5' ;

*.log_archive_dest_2='SERVICE=DTMRT LGWR ASYNC  VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=DTMRT';

alter database add standby logfile group 4 ('/oracle/u02/ORA10GDG/STANDBYRD01.LOG') size 200M;

select group#,thread#,sequence#,archived,status from v$standby_log;

alter database set standby database to maximize {availability | performance | protection};

select protection_mode from v$database;

ORA-19527:

LOG_FILE_NAME_CONVERT='/u02/oracle/oradata/oract/','/u02/oracle/oradata/oract/'

alter system set log_archive_dest_2='SERVICE=bopsteststb lgwr sync affirm';

select frequency, duration from v$redo_dest_resp_histogram where dest_id=2 and frequency1;

SQL ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

SQL ALTER DATABASE OPEN;

SQL ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT; 

alter database convert to snapshot standby;

alter database convert to physical standby;

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;

alter database commit to switchover to physical standby;

alter database activate standby database finish apply;

alter database recover managed standby database finish; 

旧主库转换成standby的步骤:

在新主库上:

select to_char(standby_became_primary_scn) from v$database;

在旧主库上:

SHUTDOWN IMMEDIATE;

STARTUP MOUNT;

FLASHBACK DATABASE TO SCN standby_became_primary_scn;

ALTER DATABASE CONVERT TO PHYSICAL STANDBY;

ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH FORCE;

ORACLE数据库中的权限和角色

ORACLE数据库中的权限和角色

Oracle数据库是一种大型关系型的数据库,我们知道当使用一个数据库时,仅仅能够控制哪些人可以访问数据库,哪些人不能访问数据库是无法满足数据库访问控制的。DBA需要通过一种机制来限制用户可以做什么,不能做什么,这在Oracle中可以通过为用户设置权限来实现。权限就是用户可以执行某种操作的权利。而角色是为了方便DBA管理权限而引入的一个概念,它实际上是一个命名的权限集合。

1 权限

Oracle数据库有两种途径获得权限,它们分别为:

① DBA直接向用户授予权限。

② DBA将权限授予角色(一个命名的包含多个权限的集合),然后再将角色授予一个或多个用户。

使用角色能够更加方便和高效地对权限进行管理,所以DBA应该习惯于使用角色向用户进行授予权限,而不是直接向用户授予权限。

Oracle中的权限可以分为两类:

•系统权限

•对象权限

1.1 系统权限

系统权限是在数据库中执行某种操作,或者针对某一类的对象执行某种操作的权利。例如,在数据库中创建表空间的权利,或者在任何模式中创建表的权利,这些都属于系统权限。在Oracle9i中一共提供了60多种权限。

系统权限的权利很大,通常情况下:

① 只有DBA才应当拥有alter database系统权限,该权限允许用户对数据库物理结构和可用性进行修改。

② 应用程序开发者一般应该拥有Create Table、Create View和Create Type等系统权限,用于创建支持前端的数据库模式对象。

③ 普通用户一般只具有Create session系统权限(可以通过Connection角色获得),只有Create Session系统权限的用户才能连接到数据库

④ 只有具有Grant Any PRivilege系统权限用户,或者获取了具有With Admin Option选项的系统权限的用户,才能够成为其它用户授予权限。

1.2对象权限

对象权限是针对某个特定的模式对象执行操作的权利。只能针对模式对象来设置和管理对象权限。

对于模式对象:表、视图、序列、存储过程、存储函数、包都可以对象设置权限。不同类型模式对象具有不同的对象权限。比如,表、视图等对象具有查询(Select)、修改(Update)、删除(Delete)等对象权限,而存储过程、存储函数等对象则具有执行(Execute)等对象权限。

但是并不是所有的模式对象都可以设置对象权限。比如簇、索引、触发器以及数据库链接等模式就不具有对象权限。这些模式对象的访问控制是通过相应的.系统权限来实现的,比如,要对索引进行修改,必须拥有Alter Any Index系统权限。

用户自动拥有他的模式中所有对象的全部对象权限,他可以将这些对象权限授予其他的用户或角色。比如,Test1用户创建了一个表Table1,在没有授权的情况下,用户Test2不能查询、修改、删除这个表。如果Test1将ETP表的Select对象权限授予了Test2,则该用户就可以查询Table1表了。如果在为其它用户授予对象权限时用了With Grant Option选项,被授予权限的用户还可以将这个权限在授予其他用户。

2 角色

2.1角色的概念

角色就是多个相关权限的命名集合。通过角色来进行对用户授予权限,可以大大简化DBA的工作量。比如,处于统一部门中的30多个用户都需要访问数据库中的一系列表,DBA可以将这些表的中合适的对象权限授予一个角色,然后在把这个角色授予这些用户,这样进行操作要比为没有用户进行授权要便捷多了,而且要对这些用户的权限进行统一修改,只需要修改角色的权限即可。

2.2角色的优点

通过角色为用户授予权限,而不是直接向各个用户授权,具有以下优点:

•简化权限管理 DBA将用户群分类,然后为每一类用户创建角色,并将该角色授予这类用户所需要的权限,最后在将改角色授予该类中的各个用户。这样不仅简化了授权操作,而且当这类用户的权限需求发生改变时,只需要把角色的权限进行改动,而不必修改每一位用户的权限。

•动态权限管理 角色可以被禁用或激活。当角色被禁止使用时,拥有该角色的用户不再拥有授予改角色的权限了。这样就可以对多个用户的权限进行动态控制了。

•灵活的编程能力 角色是存储在数据字典中的,并且可以为角色设置口令。这样就能够在应用程序中对角色进行控制。比如禁用或者激活等操作。

下面以Oracle9i为例,给出具体的实现用户授权:

(1)设定各种角色,及其权限

CREATE ROLE checkerrole DENTIFIEDBYxm361001;

CREATE ROLE defaultrole IDENTIFIEDBYdefaultrole;

GRANT SELECT,UPDATE ON

account.paytable TO checkerrole;

GRANT CONNECT TO defaultrole;

(2)创建用户

CREATE USER xiaoli IDENTIFIEDBY xiaoli;

(3)授权

GRANT checkerrole TO xiaoli;

GRANT defaultrole TO xiaoli;

(4)设定用户缺省的角色

ALTER USER xiaoli DEFAULTROLE defaultrole;

(5)注册过程

CONNECT xiaoli/xiaoli@oracle

此时用户只有其缺省角色的权限。

(6)激活角色

SET ROLE checkerrole IDENTIFIEDBY xm361001;

----操作成功后,xiaoli拥有checkerrole的权限。

----这里的角色和口令是固定的,在应用系统中可以由应用管理人员自行设置则更为方便安全

;

linux的图形界面中,如何从oracle普通用户切换至root用户

1、在桌面的上边界有当前账户名字,点一下,有个logout或者quit,点击后可以退出,然后重新用root登录。

2、命令行输入 su 或者 su -

提示输入root的密码,输入之后回车就切换到root了,但是这仅限于当前终端而已,再打开一个终端依然是普通用户。


文章名称:oracle如何切换角色 oracle数据库切换用户命令
本文地址:http://hbruida.cn/article/hissee.html