zoukankan      html  css  js  c++  java
  • Oracle数据库安全(一)用户管理

    一、预定义用户

         用户管理是Oracle数据库管理的核心和基础。

         在创建Oracle数据库时,系统预定义创建的用户根据作用不同又可以分为以下3类

             管理员用户

             实例方案用户

             内置用户

        此外Oracle数据库还包含两个特殊的用户scott和PUBLIC。

         1.用户属性

           用户的安全属性包括以下几个:

               (1)用户名:在同一个数据库中,用户名必须是唯一的,并且用户名不能与角色名相同。

               (2)用户身份认证:当用户连接数据库时,必须经过身份认证,因此创建用户时必须制定用户的身份认证方式。

               (3)默认表空间

               (4)临时表空间

               (5)表空间配额

               (6)概要文件:每个用户必须具有一个概要文件,从会话级和调用级两个层次限制用户对数据库系统资源的使用,同时设置用户的口令管理策略。

               (7)设置用户的默认角色:通过设置用户的默认角色,可以禁用或激活用户所具有的角色。

               (8)账户状态:在创建用户的同时,可以设定用户的初始状态,包括口令是否过期以及账户是否锁定等。

        2.创建用户

            (1)语法

             CREATE USER user1 IDENTIFITED  [BY password]|

             [EXTERNALLY [AS 'certificate_DN|kerberos_principal_name']]|

             [GLOBALLY AS 'directory_DN']|

             [DEFAULT TABLESPACE tablespace]

             [TEMPORARY TABLESPACE tablespace|tablespace_group_name]

             [QUOTA n K|M|UNLIMITED ON tablespace]

             [PROFILE profile]

             [PASSWORD EXPIRE]

             [ACCOUNT LOCK|UNLOCK];

        (2)实例

              创建一个用户user1,采用数据库身份认证,口令为user1pwd,默认表空间为users,在该表空间的配额为10MB,在TBS1表空间上的配额为20MB ,默认临时表空间为TEMP,初始状态为不锁定     

    create user user1 identified by user1pwd
    default tablespace users
    temporary tablespace temp
    quota 10M on users
    quota 20M on tbs1
    account unlock;
    

      3.用户身份认证

            当用户连接数据库时,必须经过身份认证。Oracle提供了数据库身份认证、外部身份认证以及全局身份认证3种身份认证方法。

             (1)数据库身份认证:数据库身份认真是指数据库的用户名与口令都保存在数据库的内部,且口令以加密方式存储。

                                            为了保证数据库身份认证的安全性,Oracle建议采用概要文件加强口令的管理,包括账户锁定,口令有效期,口令过期,及口令复杂度校验

                   主要的优点有:

                          所有的用户账户及认证都由数据库自身控制,不需要依赖数据库之外的任何东西

                          Oracle提供了强大的口令管理特性,进一步加强了安全性

                         当数据库用户量较少时,数据库身份认证管理比较方便。

             (2)外部身份认证:外部身份认证是指用户的账户由Oracle数据库管理,但口令管理和身份验证由外部服务来完成。

                     创建一个采用操作系统神风认证额非数据库管理员用户

                            如果采用客户端操作系统认证,需要将数据库的初始化参数REMOTE_OS_AUTHENT设置为true,并关闭数据库重新启动。该参数默认为FALSE,即只能支持数据库服务器本地操作认证

                           确保网络配置文件sqlnet.ora中的SQLNET.AUTHENTICATION_SERVICES=(NTS).

                           查询初始化参数,确保值为OPS$

    SQL> show parameter os_authent_prefix;
     
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    os_authent_prefix                    string      OPS$
    

                      创建一个操作系统用户,如sunfengdong,隶属于adminstrators用户组

                         在数据库中创建一个名为OPS$SFDsunfengdong的数据库用户,并授予权限

                 (3)全局身份认证:是采用Oracle数据库的高级安全组件,利用LDAP目录服务器集中管理用户信息,包括用户的身份认证。

         4.修改用户

            将用户user口令修改为user1,用时将该用户锁定

            alter user user1 identified by user1 account lock;

        5.删除用户

            drop user cascade;

            如果用户存在数据库对象,则必须使用cascade,先删除模式,再删除用户。

       

  • 相关阅读:
    《Think Python》第7章学习笔记
    Arrays和String单元测试
    结对编程项目-四则运算 第二周
    2018-2019-2 20175227张雪莹《Java程序设计》 实验二《Java面向对象程序设计》
    类定义
    20175227张雪莹 2018-2019-2 《Java程序设计》第六周学习总结
    结对编程项目-四则运算 第一周 阶段性总结
    迭代和JDB
    20175227张雪莹 2018-2019-2 《Java程序设计》第五周学习总结
    结对学习小组
  • 原文地址:https://www.cnblogs.com/evencao/p/3213631.html
Copyright © 2011-2022 走看看