zoukankan      html  css  js  c++  java
  • Oracle 安全性一

    创建和管理数据库用户账户

    用户账户属性

    用户账户拥有很多在创建账户时定义的属性。这些属性将应用于连接到账户的会话,在会话运行期间,DBA或会话可以更改其中一些属性。

    • 用户名
    • 身份验证方法
    • 默认表空间
    • 表空间配额
    • 临时表空间
    • 用户配置文件
    • 账户状态

    在创建用户时,用户名和身份验证方法是必需的,其他的都有默认值。

    1. 用户名 数据库中的用户名必须是唯一的,必须以字母开头,字符数不能超过30个,只能包含字母、数字、$和_。用户名不能是保留字。字母区分大小写,但所有字母将自动转换为大写字母。如果在双引号中指定用户名,可以不遵守这些规则(长度除外),以后必须使用双引号连接到账户。
    2. 默认表空间和配额 每个用户账户都有默认的表空间。用户创建的任何模式对象(如表或索引)将保存在此表空间中。用户可以拥有获得配额的任何表空间上的对象,但除非在创建对象时指定另一个表空间,否则,对象就放在用户的默认表空间中。如果在创建用户时未指定默认表空间,数据库范围的默认表空间将应用于所有用户账户。可以在创建数据库时设置默认表空间,也可以以后使用下面的语法进行更改:ALTER DATABASE DEFUALT TABLESPACE tablespace_name; 如果创建数据库时未指定默认表空间,则将SYSTEM设置为默认表空间。“配额”是表空间中用户允许占用的空间量。到达配额之前,用户可以创建对象,并为其分配区间。如果表空间中的配额已经用尽,则将无法创建任何对象。配额可以随时更改。如果将用户配额限制为低于其已拥有的对象大小(甚至缩减为0),对象将生存下来,且仍可用,但不允许变大。要创建段,用户必须具有执行CREATE TABLE的权限,而且拥有在其中创建表的表空间上的配额
    3. 临时表空间 永久对象(如表)存储在永久表空间中,而临时对象存储在临时表空间中。如果会话为执行某些操作,需要的空间量超出了会话PGA的可用空间量,则需要临时表空间中的空间,为每个用户账户都会分配临时表空间,但连接到该账户的所有用户会话将共享此临时表空间。不需要为用户授予临时表空间上的配额。其原因是,临时表空间中的对象并不归用户真正拥有,而是属于SYS用户,SYS用户拥有所有表空间上的无限配额。要更改用户的临时表空间(将影响连接到账户的所有未来会话),请使用ALTER USER命令:ALTER USER username TEMPORARY TABLESPACE tablespace_name;
    4. 账户状态 每个用户账户都有一定的状态,如DBA_USERS的ACCOUNT_STATUS列所示。有5种可能的状态:
      • 打开(OPEN) 账户可供使用
      • 锁定(LOCKED) 表示DBA故意锁定账户,任何用户都不能连接到锁定的账户。
      • 过期(EXPIRED) 表示口令生命周期已经终结。口令只拥有有限的生命周期。在重置口令之前,任何用户都不能连接到EXPIRED账户。
      • 正常过期(EXPIRED(GRACE))这表示“正常时间段(grace period)”生效。口令在生命周期结束时并不立即过期:可以配置一个正常时间段,在此期间,连接到相应账户的用户有机会更改口令。
      • 超时锁定(LOCKED(TIMED)) 这表示由于登录尝试失败,账户已被锁定。可以将账户配置为:在错误口令出现一定的次数后,账户将自动锁定。

    要锁定账户和解除账户的锁定,请使用以下命令:

    ALTER USER username ACCOUNT LOCK;

    ALTER USER username ACCOUNT UNLOCK;

    要强制用户更改口令,请使用以下命令:

    ALTER USER username PASSWORD EXPIRE;

    这将立即开启正常阶段,强制用户在下次尝试登录时更改口令。不存在诸如“alter...unexpired”的命令,要使账户再次完全运行,唯一的途径是重置口令。

    身份验证方法

    用户账户必须具有身份验证方法:数据库可以借助这些方法,确定查实创建会话(连接到账户的会话)的用户是否有权这么做。最简单的技术是提供一个与数据库中存储的口令匹配的口令,除此之外,还有其他方法:

    • 操作系统身份验证
    • 口令文件身份验证
    • 口令身份验证
    • 外部身份验证
    • 全局身份验证

    前两项技术仅供管理员使用,最后一项技术要求使用LDAP目录服务器。LDAP目录服务器是Oracle Internet Directory,作为Oracle Fusion Middleware Suite的一部分发布。

    创建账户

    CREATE USER命令包含两个必需的参数:用户名和身份验证方法。它可选地接收指定默认表空间和临时表空间的子句、一个或多个配额子句、命名配置文件以及锁定账户和使口令过期的命令。

    1 create user scott identified by tiger
    2 default tablespace users temporary tablespace temp
    3 quota 100m on users,quota unlimited on example
    4 profile developer_profile
    5 password expire
    6 account unlock;

    只有第一行是必需的,其他的都具有默认设置。

    1. 提供用户名,以及用于口令验证的口令。
    2. 提供默认表空间和临时表空间
    3. 设置默认表空间和另一个表空间上的配额。
    4. 为用于口令和资源管理的配置文件命名。
    5. 强制用户立即更改口令。
    6. 使账户变得可用。

    除名称外,可以使用ALTER USER命令调整账户上的每个属性。

    删除账户:drop user scott;

    只有用户不拥有任何对象时,此命令才能成功,即要求模式是空的。如果不希望首先确定拥有的所有对象并删除它们,则可以指定CASCADE将这些与用户一起删除:

    drop user scott cascade;

    授予和撤销权限

    系统权限

    常用的权限如下:

    • 创建会话(CREATE SESSION) 
    • 受限制会话(RESTRICTED SESSION)
    • 更改数据库(ALTER DATABASE)
    • 更改系统(ALTER SYSTEM)
    • 创建表空间(CREATE TABLESPACE)
    • 创建表(CREATE TABLE)
    • 授予任何对象权限(GRANT ANY OBJECT PRIVILEGE)
    • 创建任何表(CREATE ANY TABLE)
    • 删除任何表(DROP ANY TABLE)
    • 插入任何表、更新任何表、删除任何表(INSERT ANY TABLE,UPDATE ANY TABLE,DELETE ANY TABLE)
    • 选择任何表(SELECT ANY TABLE)

    权限分析

    重要的过程:

    • dbms_privilege_capture.create_capture
    • dbms_privilege_capture.enable_capture
    • dbms_privilege_capture.disable_capture
    • dbms_privilege_capture.generate_result

    重要的视图:

    • dba_used_privs
    • dba_unused_privs

    创建和管理配置文件

    口令配置文件的限制

    使用配置文件(profile)可以实施口令策略。

  • 相关阅读:
    MongoDB学习(附录一) 安装mongodb3.6时碰到的问题
    详细图解mongodb下载、安装、配置与使用
    大数据时代的数据存储,非关系型数据库MongoDB
    python获取风和天气城市数据 ID
    智能车学习(二十一)——浅谈CCD交叉以及横线摆放
    智能车学习(二十)——浅谈C车硬连接与软连接
    智能车学习(十九)——硬件电路设计
    智能车学习(十八)——电机学习
    智能车学习(十七)——舵机学习
    智能车学习(十六)——CCD学习
  • 原文地址:https://www.cnblogs.com/zhaochunyi/p/10682223.html
Copyright © 2011-2022 走看看