zoukankan      html  css  js  c++  java
  • Oracle11g R2学习系列 之七安全性

    其实,对于目前我使用的Oracle的水平来看,还达不到使用安全管理的高度,只是作为一个学习来看一下。

    关于Oracle的安全管理,一般使用OEM来操作完成好了,入口是:OEM的“服务器”属性页中,选择“安全性”栏 

    这里贴出一张服务器的所有栏目的导航页,图中红线框就是我们今天学习的主角了。

    security

    对于这中界面性的东西,没有多少可以记载的,而且从我从业经历来看,界面这种东西是最不稳定的,今天你全部刻印记住了,也许下个版本,哪怕一个hotfix版也可能就改成了另一个样子了,所以,我不打算截更多的OEM操作的图了,操作过了就操作过了,没记住以后操作时再说吧。

     不过,对于PL/SQL的还是要记一下:

    CREATE USER user_name                              /*将要创建的用户名*/
        [IDENTIFIED BY {password | EXTERNALLLY | 
            GLOBALLY AS 'external_name' }]              /*表明Oracle如何验证用户*/
        [DEFAULT TABLESPACE tablespace_name]    /*标识用户所创建对象的默认表空间*/
        [TEMPORARY TABLESPACE tablespace_name]    /*标识用户的临时段的表空间*/
        /*用户规定的表空间存储对象,最多可达到这个定额规定的总尺寸*/
        [QUOTA integer K | integer M | UNLIMTED ON tablespace_name]
        [PROFILE profile_name]                                  /*将指定的概要文件分配给用户*/
        [PASSWORD EXPIRE]
        [ACCOUNT {LOCK | NULOCK}]                     /*账户是否锁定*/
    View Code

    比方说,我现在创建一个叫Ljl的用户口令为Ljl,默认表空间为USERS,临时表空间为TEMP。没有定额,使用默认概要文件,那么我首先以sys的用户登进去。然后执行

    create user Ljl
    identified by Ljl
    default tablespace users
    temporary tablespace temp
    account unlock;
    View Code

    结果显示:

    create user

    退出SQL*PLUS,以Ljl登录上去,发现错误说:ORA-01045: user LJL lacks CREATE SESSION privilege; logon denied

    需要以sysdba的身份给Ljl授create session的权限,看下图

    createsession

    然后就可以以Ljl/Ljl登录了,至于修改删除这些,都遵循可爱的alter,drop动词原则来的。Oracle好就好在这一点上,减少了一些学习曲线。要不然也流行不起来不是!

     创建了用户之后,就应该为用户设置权限,废话,没有权限的僵尸有何用,占空间吗?反过来说,权限就是针对用户来讲的,同样的废话哈。

    权限可以分成两类:系统权限对象权限。对于oracle11gR2来说,使用select count(*) from system_privilege_map;查询发现系统权限有208个之多

     system_privilege_map

    记似乎是记不过来了。而且Oracle还将其分为了不同的类型了。有针对于数据库管理员的维护权限,有针对于开发人员的数据库模式对象权限,有ANY权限类别,要查询一个用户拥有哪些权限,属于何种角色,可以如下所示(为了看得方便,我这里截的是SQLDeveloper的截图了):http://images.cnblogs.com/cnblogs_com/SLKnate/494869/o_7-5.png

     至于对象权限,就是我们常说的select, update, insert之类了,Oracle共包括9类 

    (1)SELECT:读取表、视图、序列中的行。
    (2)UPDATE:更新表、视图和序列中的行。
    (3)DELETE:删除表、视图中的数据。
    (4)INSERT:向表和视图中插入数据。
    (5)EXECUTE:执行类型、函数、包和过程。
    (6)READ:读取数据字典中的数据。
    (7)INDEX:生成索引。
    (8)PEFERENCES:生成外键。
    (9)ALTER:修改表、序列、同义词中的结构

     操作讲完了用户,权限,据我所了解的RBCA解决方案,最后自然还要讲到一个角色,而Oracle的安全管理就是一个不折不扣的基于RBCA的安全解决方案。

    ALTER ROLE role_name
        [ NOT IDENTIFIED ]
        [ IDENTIFIED {BY password∣EXTERNALLY∣GLOBALLY} ];
    View Code

    Grant设置, Remove收回。这两个动词谓语是关键,在所有的安全管理里面,都是这两个。

     另外Oracle里面有一个叫Profile的文件管理,来定义一些常用的权限。如密码可使用多少次等。语法如下:

    CREATE PROFILE LIMIT profile_name
        resource_parameters∣password_parameters

     

  • 相关阅读:
    Java中如何更换jar包中的.class文件并重新打包
    IIS环境配置和项目部署
    C#中Invoke与BeginInvoke区别
    Windows编程 网络编程基础
    Windows编程 网络编程常见结构体
    什么是OpenGL中的深度、深度缓存、深度测试
    三维场景的渲染优化
    矢量数据转换成栅格数据
    vs2010 c# 配置项问题
    宝宝小时候竟然是近视?
  • 原文地址:https://www.cnblogs.com/SLKnate/p/oracle11g_security.html
Copyright © 2011-2022 走看看