zoukankan      html  css  js  c++  java
  • Oracle系统中用户权限的赋予,查看和管理(2)

    在Oracle数据库中,用户的权限分为两种(在这里我们不讨论dba或oper的权限,只考虑普通用户的权限),分别是System Privilege系统权限 和User Table Privilege用户数据表权限.

    1.首先,创建用户,以下几条命令可以创建一个用户,前提是必须以DBA的身份登录(如果你不是DBA,不要看下去了):

    create user DB_USER identified by DB_USER_PW '创建用户DB_USER,密码为DB_USER_PW

    grant create session to DB_USER '给用户创建会话的权限

    grant resource to DB_USER


    2.当用户建立后,会自动在Oracle数据库系统中生成属于该用户的Scheme (可以理解为所有属于该用户的表,视图....等对象的集合).

    该用户可以将对这些对象的访问权限赋予其它的系统用户.


    3.该用户用sqlplus登录后,以下命令可以看到该用户的权限(该部分取自于CNOUG网站):

    本用户读取其他用户对象的权限:
      select * from user_tab_privs;
    本用户所拥有的系统权限:
      select * from user_sys_privs;

    ORACLE数据库用户与权限管理

    ORACLE是多用户系统,它允许许多用户共享系统资源。为了保证数据库系统的安全,数据库管理系统配置了良好的安全机制。

    2. 1 ORACLE数据库安全策略

    建立系统级的安全保证
    系统级特权是通过授予用户系统级的权利来实现,系统级的权利(系统特权)包括:建立表空间、建立用户、修改用户的权利、删除用户等。系统特权可授予用户,也可以随时回收。ORACLE系统特权有80多种。

    建立对象级的安全保证
    对象级特权通过授予用户对数据库中特定的表、视图、序列等进行操作(查询、增、删改)的权利来实现。

    建立用户级的安全保证
    用户级安全保障通过用户口令和角色机制(一组权利)来实现。引入角色机制的目的是简化对用户的授权与管理。做法是把用户按照其功能分组,为每个用户建立角色,然后把角色分配给用户,具有同样角色的用户有相同的特权。

    2.2 用户管理

    ORACLE用户管理的内容主要包括用户的建立、修改和删除

    用户的建立
    SQL>CREATE USER jxzy

    >IDENTIFIED BY jxzy_password

    >DEFAULT TABLESPACE system

    >QUATA 5M ON system; //供用户使用的最大空间限额

    用户的修改
    SQL>CREATE USER jxzy

    >IDENTIFIED BY jxzy_pw

    >QUATA 10M ON system;

    删除用户及其所建对象
    SQL>DROP USER jxzy CASCADE; //同时删除其建立的实体

    2.3系统特权管理与控制

    ORACLE 提供了80多种系统特权,其中每一个系统特权允许用户执行一个或一类数据库操作。

    授予系统特权
    SQL>GRANT CREATE USER,ALTER USER,DROP USER

    >TO jxzy_new

    >WITH ADMIN OPTION;

    回收系统特权
    SQL>REVOKE CREATE USER,ALTER USER,DROP USER

    >FROM jxzy_new

    //但没有级联回收功能

    显示已被授予的系统特权(某用户的系统级特权)
    SQL>SELECT*FROM sys.dba_sys_privs

    2.4 对象特权管理与控制

    ORACLE对象特权指用户在指定的表上进行特殊操作的权利。这些特殊操作包括增、删、改、查看、执行(存储过程)、引用(其它表字段作为外键)、索引等。

    授予对象特权
    SQL>GRANT SELECT,INSERT(office_num,office_name),

    >UPDATE(desc)ON office_organization

    >TO new_adminidtrator

    >WITH GRANT OPTION;

    //级联授权

    SQL>GRANT ALL ON office_organization

    >TO new_administrator

    回收对象特权
    SQL>REVOKE UPDATE ON office_orgaization

    >FROM new_administrator

    //有级联回收功能

    SQL>REVOKE ALL ON office_organization

    >FROM new_administrator

    显示已被授予的全部对象特权
    SQL>SELECT*FROM sys.dba_tab_privs

    2.5 角色的管理

    ORACLE的角色是命名的相关特权组(包括系统特权与对象特权),ORACLE用它来简化特权管理,可把它授予用户或其它角色。

    ORACLE数据库系统预先定义了CONNECT 、RESOURCE、 DBA、 EXP_FULL_DATABASE、 IMP_FULL_DATABASE五个角色。CONNECT具有创建表、视图、序列等特权;RESOURCE具有创建过程、触发器、表、序列等特权、DBA具有全部系统特权;EXP_FULL_DATABASE、 IMP_FULL_DATABASE具有卸出与装入数据库的特权。

    通过查询sys.dba_sys_privs可以了解每种角色拥有的权利。

    授予用户角色
    SQL>GRANT DBA TO new_administractor

    >WITH GRANT OPTION;

  • 相关阅读:
    javascript闭包
    Anaconda快速加载opencv
    Opencv3.0python: 编译报错color.cpp:7456: error: (215) scn == 3 || scn == 4 的解决方案
    Vivado 调用自定义IP核
    Xilinx与modelsim的仿真联调
    Altera三速以太网IP核使用(上篇)之快速仿真
    opencv+python视频实时质心显示
    FPGA千兆网UDP协议实现
    MySql添加数据语句
    聚合函数 及执行机理
  • 原文地址:https://www.cnblogs.com/lovewife/p/1427868.html
Copyright © 2011-2022 走看看