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)可以实施口令策略。

 

posted @ 2019-04-12 09:27  赵春义  阅读(238)  评论(0编辑  收藏  举报