In my opinion, SYSDBA and SYSOPER are system privileges.
You can find them by
select * from system_privilege_map where name like 'SYS%'As I know
1. schema: SYS, SYSTEM, SYSMAN
2. privilege: SYSDBA, SYSOPER
3. role: DBA
Note: The DBA role does not include the SYSDBA or SYSOPER system privileges.
-------------
sysdba、sysoper是一种很特殊的权限,可以启动与关闭、创建与删除数据库等,不包含在dba权限之内的。
两个权限是超越数据库的权限(新建,启动,关闭数据库),在数据库之上,所以dba_roles中没有(??)。
只要用internal用户将此权限授给其它的用户就可以用此用户加 as sysdba 登录,可以关闭和启动数据库了。并可以进行oracle DBA所不能做的操作。
授权:
SQL> grant sysdba,sysoper to jcat
收回权限:
SQL> revoke sysdba from jcat
查看这两个权限的拥有情况(需一定的权限,sys就可以看):
SQL> select * from v$pwfile_users
-------------
sysdba 拥有最高的系统权限 (sysdba的权限包含所有sysoper的权限)
sysoper主要用来启动、关闭数据库
相比之下,SYSDBA比SYSOPER多了两个权限:
1)change character set,改变字符集设置;
2)CREATE DATABASE,创建数据库。
sysoper登陆后用户是 public
sysdba 登陆后是 sys
可以通过以下方式进行验证:
SQL> conn test/test as sysoper;
SQL> show user
USER 为"PUBLIC"
SQL> conn test/test as sysdba
SQL> show user
USER 为"SYS"
posted on 2006-10-25 15:12
Jcat 阅读(556)
评论(0) 编辑 收藏 所属分类:
Database