Oracle中sys和system用户的区别

Oracle中sys和system用户的区别

1.数据库的启动需要以SYSDBA/SYSOPER身份登录。

2.如果在同一主机上使用IPC连接到数据库使用操作系统授权,登录任何一个用户都可以拥有as sysdba和as sysoper。

3.sys和system用户的区别

    SYS用户具有DBA权限,并具有SYS模式。只能通过SYSDBA登录数据库,是Oracle数据库中权限最高的帐号。sys用户具有“SYSDBA”和“SYSOPER”权限,登陆em时也只能用这两个身份,不能用normal。而system登录em时只能用normal模式登录。sys拥有数据字典(dictionary),或者说dictionary属于sys schema。

    system用户具有DBA权限,但是没有SYSDBA权限。平常一般用该帐号管理数据库。登录em时只能使用normal登录。 

4.SYSDBA权限和SYSOPER权限区别

    “SYSOPER”权限,即数据库操作员权限,sysoper主要用来启动、关闭数据库,sysoper 登陆后用户是 public。权限包括:打开数据库(STARTUP, ALTER DATABASE OPEN/MOUNT/OPEN),服务器(CREATE SPFILE,etc)

  关闭数据库服务器 
  备份数据库 
  恢复数据库RECOVERY 
  日志归档ARCHIVELOG 
  会话限制RESTRICTED SESSION

    “SYSDBA”权限,即数据库管理员权限,最高的系统权限。任何具有sysdba登录后用户是“SYS”。权限包括:管理功能, 创建数据库(CREATE DATABASE)以及 “SYSOPER”的所有权限

      其他用户需要手动grant权限,show user为该用户的名称。

SQL>conn / as sysdba 
已连接。 
SQL>grant sysoper to test; 
授权成功。 
SQL>grant sysdba to test; 
授权成功。 
SQL>conn test/test as sysoper; 
已连接。 
SQL>show user 
USER 为"PUBLIC" 
SQL>conn test/test as sysdba; 
已连接。 
SQL>show user; 
USER 为"SYS" 
SQL>conn test/test; 
已连接。 
SQL>show user 
USER 为"test"

5.dba和sysdba的区别:

    sysdba,是管理oracle实例的,它的存在不依赖于整个数据库完全启动,只要实例启动了,他就已经存在,以sysdba身份登陆,装载数据库、打开数据库。

    只有在数据库完全启动后,dba角色才有了存在的基础.

分类: Oracle

https://www.cnblogs.com/fkeyta/p/5598659.html

Oracle中sys和system用户、系统权限和角色的区别

 更新时间:2016年05月25日 11:51:11   作者:秦风   我要评论

本文从用户、系统权限和角色三个维度分别介绍了Oracle中sys和system的区别,希望对大家有所帮助。

1)最重要的区别,存储的数据的重要性不同

【sys】  所有oracle的数据字典的基表和视图都存放在sys用户中,这些基表和视图对于oracle的运行是至关重要的,由数据库自己维护,任何用户都不能手动更改。sys用户拥有dba,sysdba,sysoper等角色或权限,是oracle权限最高的用户。

【system】  用户用于存放次一级的内部数据,如oracle的一些特性或工具的管理信息。system用户拥有普通dba角色权限。

2)其次的区别,权限的不同。

【system】用户只能用normal身份登陆em,除非你对它授予了sysdba的系统权限或者syspoer系统权限。

【sys】用户具有“SYSDBA”或者“SYSOPER”系统权限,登陆em也只能用这两个身份,不能用normal。

 以sys用户登陆Oracle,执行select * from V_$PWFILE_USERS;可查询到具有sysdba权限的用户,如:

复制代码 代码如下:

SQL> select * from V_$PWFILE_USERS;
  USERNAME SYSDBA SYSOPER
  SYS TRUE TRUE

Sysdba和sysoper两个系统权限区别

normal 、sysdba、 sysoper有什么区别

normal 是普通用户

另外两个,你考察他们所具有的权限就知道了

sysdba拥有最高的系统权限,登陆后是 sys

sysoper主要用来启动、关闭数据库,sysoper 登陆后用户是 public

sysdba和sysoper属于system privilege,也称为administrative privilege,拥有例如数据库开启关闭之类一些系统管理级别的权限sysdba和sysoper具体的权限可以看下表:

//files.jb51.net/file_images/article/201605/2016525115143054.png

oracle <wbr>sys和system用户区别

system如果正常登录,它其实就是一个普通的dba用户,但是如果以as sysdba登录,其结果实际上它是作为sys用户登录的,这一点类似Linux里面的sudo的感觉,从登录信息里面我们可以看出来。因此在as sysdba连接数据库后,创建的对象实际上都是生成在sys中的。其他用户也是一样,如果 as sysdba登录,也是作为sys用户登录的,看以下实验: 

SQL> create user strong identified by strong;

用户已创建。

SQL> conn strong/strong@magick as sysdba;

已连接。

SQL> show user;

USER 为 "SYS"

SQL> create table test(a int);

表已创建。

SQL> select owner from dba_tables where table_name='test';

未选定行 //因为创建表时oracle自动转为大写,所以用小写查的时候是不存在的;

SQL> select owner from dba_tables where table_name='TEST';

OWNER

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

SYS

dba和sysdba的区别

dba、sysdba这两个系统角色有什么区别呢

在说明这一点之前我需要说一下oracle服务的创建过程

创建实例→启动实例→创建数据库(system表空间是必须的)

启动过程

实例启动→装载数据库→打开数据库

sysdba,是管理oracle实例的,它的存在不依赖于整个数据库完全启动,只要实例启动了,他就已经存在,以sysdba身份登陆,装载数据库、打开数据库。只有数据库打开了,或者说整个数据库完全启动后,dba角色才有了存在的基础!

1.DBA权限主要包含的是数据库管理相关的权限

2.需要给你的用户admin赋予建表等相关权限,比如
grant create table to admin; --创建表 grant create view to admin; -- 创建视图

3.也可以直接给connect和resource角色,其包括大部分需要的 grant connect,resource to admin; 
这两个角色包括的权限(以oracle 10g为例)有: 

CONNECT角色:    --是授予最终用户的典型权利,最基本的
CREATE    SESSION    --建立会话
RESOURCE角色:    --是授予开发人员的
CREATE    CLUSTER         --建立聚簇
CREATE    PROCEDURE    --建立过程
CREATE    SEQUENCE      --建立序列
CREATE    TABLE              --建表
CREATE    TRIGGER          --建立触发器
CREATE    TYPE                --建立类型
CREATE    OPERATOR       --创建操作者
CREATE    INDEXTYPE      --创建索引类型
CREATE    TABLE              --创建表

您可能感兴趣的文章:

https://www.jb51.net/article/85051.htm

oracle中sys用户和system用户的区别

一、最重要的区别:存储数据的重要性不同

【sys】所有 oracle 的数据字典的基表和视图都存放在 sys 用户中,这些基表和视图对于 oracle 的运行是至关重要的,由数据库自己维护,任何用户都不能手动更改。 sys 用户拥有 dba , sysdba , sysoper 等角色或权限,是 oracle 权限最高的用户。

【 system 】 用户用于存放次一级的内部数据,如 oracle 的一些特性或工具的管理信息。 system 用户拥有普通 dba 角色权限。

二、其次的区别:权限的不同

【 system 】用户只能用 normal 身份登陆 em ,除非你对它授予了 sysdba 的系统权限(grant sysdba to system)或者 sysoper 系统权限。
【 sys 】用户具有 “SYSDBA” 或者 “SYSOPER” 系统权限,登陆 em 也只能用这两个身份,不能用 normal 。

以 sys 用户登陆 Oracle ,执行 select * from V_$PWFILE_USERS; 可查询到具有 sysdba 权限的用户,如:

SQL> select * from V_$PWFILE_USERS;
   USERNAME SYSDBA SYSOPER
        SYS         TRUE     TRUE

   Sysdba 和 sysoper 两个系统权限区别

normal 、 sysdba 、 sysoper 有什么区别
normal 是普通用户
另外两个,你考察他们所具有的权限就知道了
sysdba 拥有最高的系统权限,登陆后是 sys
sysoper 主要用来启动、关闭数据库, sysoper 登陆后用户是 public

sysdba 和 sysoper 属于 system privilege ,也称为 administrative privilege ,拥有例如数据库开启关闭之类一些系统管理级别的权限 sysdba 和 sysoper 具体的权限可以看下表:

 系统权限  sysdba  sysoper 
区别  Startup( 启动数据库 )  startup 
Shutdown( 关闭数据库 )  shutdown 
alter database open/mount/backup  alter database open/mount/backup 
改变字符集  none 
create database( 创建数据库 )  None 不能创建数据库 
drop database( 删除数据库 )  none 
create spfile  create spfile 
alter database archivelog( 归档日志 )  alter database archivelog 
alter database recover( 恢复数据库 )  只能完全恢复,不能执行不完全恢复 
拥有restricted session( 会话限制 ) 权限  拥有restricted session 权限 
可以让用户作为sys 用户连接  可以进行一些基本的操作,但不能查看用户数据 
登录之后用户是sys  登录之后用户是public 

 system 如果正常登录,它其实就是一个普通的 dba 用户,但是如果以 as sysdba 登录,其结果实际上它是作为 sys 用户登录的,这一点类似 Linux 里面的 sudo 的感觉,从登录信息里面我们可以看出来。因此在 as sysdba 连接数据库后,创建的对象实际上都是生成在 sys 中的。其他用户也是一样,如果 as sysdba 登录,也是作为 sys 用户登录的,看以下实验:
SQL> create user strong identified by strong;

https://www.cnblogs.com/bowenbk/p/6371368.html

猜你喜欢

转载自blog.csdn.net/xuheng8600/article/details/84316068