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具体的权限可以看下表:

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              --创建表

(0)

相关推荐

  • Oracle删除当前用户下所有表的方法适用于有或没有删除权限

    1.如果有plsql客户端,则可以使用该用户登录,选中所有表 右键Drop即可. 2.如果有删除用户的权限,则可以: drop user user_name cascade; 加了cascade就可以把用户连带的数据全部删掉. 删除后再创建该用户. --创建用户 create user 用户名 profile default identified by 密码 default tablespace 表空间名称 temporary tablespace TEMP account unlock; --

  • Oracle 用户权限管理方法

    sys;//系统管理员,拥有最高权限 system;//本地管理员,次高权限 scott;//普通用户,密码默认为tiger,默认未解锁 sys;//系统管理员,拥有最高权限 system;//本地管理员,次高权限 scott;//普通用户,密码默认为tiger,默认未解锁 二.登陆 sqlplus / as sysdba;//登陆sys帐户 sqlplus sys as sysdba;//同上 sqlplus scott/tiger;//登陆普通用户scott sqlplus / as sys

  • Oracle新建用户、角色,授权,建表空间的sql语句

    oracle数据库的权限系统分为系统权限与对象权限.系统权限( database system privilege )可以让用户执行特定的命令集.例如,create table权限允许用户创建表,grant any privilege 权限允许用户授予任何系统权限.对象权限( database object privilege )可以让用户能够对各个对象进行某些操作.例如delete权限允许用户删除表或视图的行,select权限允许用户通过select从表.视图.序列(sequences)或快照

  • Oracle 8x监控sysdba角色用户登陆情况

    正在看的ORACLE教程是:Oracle 8x监控sysdba角色用户登陆情况. 在Oracle 8i版本之前,使用internal用户来执行数据库的启动和关闭以及create database等操作:从8i版本以后,Oracle已经逐渐淘汰了internal用户,采用授与sysdba或者sysoper角色的用户才可以执行数据库的启动和关闭等操作,为保持用户习惯在8i中依旧保留了internal用户和svrmgrl,但已完全可以不使用svrmgrl工具和internal用户了.最新发布的orac

  • Oracle的用户、角色及权限相关操作

    1.创建用户 create user KD identified by 123456; 2.授予连接数据库的权限 grant connect to KD; 3.将Scott用户的emp表授权给KD可以查询 grant select on scott.emp to KD; grant create table to KD; 4.回收权限 revoke select on scott.emp from KD; 5.表的增删改权限授权 grant select,inset,delete,update

  • oracle用户权限、角色管理详解

    Oracle 权限设置 一.权限分类: 系统权限:系统规定用户使用数据库的权限.(系统权限是对用户而言). 实体权限:某种权限用户对其它用户的表或视图的存取权限.(是针对表或视图而言的). 二.系统权限管理: 1.系统权限分类: DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构. RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构. CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构.

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

    1)最重要的区别,存储的数据的重要性不同 [sys]  所有oracle的数据字典的基表和视图都存放在sys用户中,这些基表和视图对于oracle的运行是至关重要的,由数据库自己维护,任何用户都不能手动更改.sys用户拥有dba,sysdba,sysoper等角色或权限,是oracle权限最高的用户. [system]  用户用于存放次一级的内部数据,如oracle的一些特性或工具的管理信息.system用户拥有普通dba角色权限. 2)其次的区别,权限的不同. [system]用户只能用nor

  • 浅析Oracle中sys、system和Scott用户下的数据库连接问题

    system默认:manager sys默认:change_on_install 使用SQL Plus登录数据库时,system使用密码manager可直接登录. 由于为自己的密码时更改过的,所以我的密码不是使用manager登陆,但是代码格式依然是差不多的. 代码示例: conn system 输入密码:1234 conn system/输入密码 但如果是sys用户,密码必须加上as sysdba,即完整密码为:change_on_install as sysdba 代码示例: conn sy

  • Oracle中sys和system的区别小结

    1. SYS用户具有DBA权限,并且拥有SYS模式,只能通过SYSDBA登陆数据库.是Oracle数据库中权限最高的帐号 SYSTEM具有DBA权限.但没有SYSDBA权限.平常一般用该帐号管理数据库就可以了. 2. (1)sys -- sysdba system --sysoper (2)startup/shutdown/dba管理两个都能做 (3)sys拥有数据字典(dictionay),或者说dictionay属于sys schema (4)sysdba比sysoper多了一个create

  • 查看postgresql数据库用户系统权限、对象权限的方法

    PostgreSQL简介 PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象关系型数据库管理系统.POSTGRES的许多领先概念只是在比较迟的时候才出现在商业网站数据库中.PostgreSQL支持大部分的SQL标准并且提供了很多其他现代特性,如复杂查询.外键.触发器.视图.事务完整性.多版本并发控制等.同样,PostgreSQL也可以用许多方法扩展,例如通过增加新的数据类型.函数.操作符

  • Angular中使用ui router实现系统权限控制及开发遇到问题

    前端去实现权限控制听起来有点扯淡(实际也有点扯淡),掩耳盗铃,主要是担心安全问题,但是如果在前后端分离的情况下,需要做一个带有权限控制的后台管理系统,angular基于ui-router应该怎么做呢? 权限的设计中比较常见的就是RBAC基于角色的访问控制,基本思想是,对系统操作的各种权限不是直接授予具体的用户,而是在用户集合与权限集合之间建立一个角色集合.每一种角色对应一组相应的权限. 一旦用户被分配了适当的角色后,该用户就拥有此角色的所有操作权限.这样做的好处是,不必在每次创建用户时都进行分配

  • mysql中DCL常用的用户和权限控制

    目录 前言 一.用户控制管理 二.权限控制管理 三. 数据库权限列表 前言 本文总结了mysql中DCL,常用的一些权限控制,后续使用到其他会继续补充. 一.用户控制管理 创建用户 create user '用户名'@'主机名' identified by '密码'; 修改用户密码 alter user '用户名'@'主机名' identified with mysql_native_password by '密码'; 删除用户 drop user '用户名'@'主机名'; 例如: #1 查询用

  • 详解Linux系统中设置SFTP服务用户目录权限的方法

    前言 在工作或者学习的时候,我们常常会遇到这样的需求,限制一个Linux用户,让他只能在指定的目录下进行添加.修改.删除操作,并且只能使用sftp登录服务器,不能用ssh操作.这些可以通过配置sftp服务实现. 方法如下 提供sftp服务的有vsftpd和internal-sftp,这里用的是系统自带的internal-sftp,操作步骤如下: 1.创建新用户ui,禁止ssh登录,不创建家目录 useradd -s /sbin/nologin -M www 2.设置用户密码 passwd www

  • java中使用Filter控制用户登录权限具体实例

    学jsp这么长时间,做的项目也有七八个了,可所有的项目都是用户登录就直接跳转到其拥有权限的页面,或者显示可访问页面的链接.使用这种方式来幼稚地控制访问权限.从来没有想过如果我没有登录,直接输入地址也可以直接访问用户的页面的. 在jsp中权限的控制是通过Filter过滤器来实现的,所有的开发框架中都集成有Filter,如果不适用开发框架则有如下实现方法: LoginFilter.java 复制代码 代码如下: public class LoginFilter implements Filter {

  • oracle忘记sys/system/scott用户密码的解决方法

    一.忘记除SYS.SYSTEM用户之外的用户的登录密码. 用SYS (或SYSTEM)用户登录. CONN SYS/PASS_WORD AS SYSDBA; 使用如下语句修改用户的密码. ALTER USER user_name IDENTIFIED BY newpass; 注意:密码不能全是数字.并且不能是数字开头.否则会出现:ORA-00988: 口令缺失或无效 二.忘记SYS用户,或者是SYSTEM用户的密码. 如果是忘记SYSTEM用户的密码,可以用SYS用户登录.然后用ALTER US

随机推荐