相关术语
- 数据库用户帐户:用来管理数据库对象的所有权和访问权限
- 口令: Oracle 数据库使用的验证手段
- 权限:执行特定类型的SQL 语句或访问其他用户的对象的权利
- 角色:由相关权限组成的已命名组,可将其授予给用户或其它角色。
- 概要文件:一组已命名的针对数据库用法和实例资源的资源限制条件
- 限额:表空间中允许的空间容量。
用户
- 数据库用户帐户
- 唯一的用户名:不超过30个字节,不包含特殊符号,以字母开头
- 验证方法:最常见为口令
- 默认表空间:如果用户未指定其它表空间,则可在这个表空间中创建对象。(不等于说有创建对象的权限,需要单独授权)
- 临时表空间:用户可在其中创建临时对象(如排序和临时表)的表空间。
- 用户概要文件:分配给用户的一组资源与口令的限制。
- 使用者组:由资源管理器使用
- 锁定状态:用户只能访问“未锁定”帐户
- 预定义账户
- sys
- 授予有 DBA 角色
- 具有 ADMIN OPTION 的所有权限(with admin option 用于系统权限授权,给一个用户授予系统权限带上with admin option 时,此用户可把此系统权限授予其他用户或角色,但收回这个用户的系统权限时,这个用户已经授予其他用户或角色的此系统权限不会因传播无效)
- 执行启动、关闭和某些维护命令时所必需的帐户(SYSDBA,SYSOPER)
- 拥有数据字典(数据字典视图和动态性能视图的区别)
- 拥有自动工作量资料档案库 (AWR)
- system
- 授予有 DBA 角色
- 没有sysdba权限
- sys和sysdba的区别:简单的说sys是一个角色,sysdba是一个权限
- 创建用户:选择“Administration > Schema > Users & Privileges > Users(管理 > 方案 > 用户和权限 > 用户)”,然后单击“Create(创建)”按钮。
验证用户
- 口令:oracle database验证
- 外部:操作系统认证
- 全局
- 管理员验证
- 操作系统安全性
- DBA 必须具有创建或删除文件的操作系统权限
- 普通数据库用户不应具有创建或删除数据库文件的操作系统权限
- 管理员安全性
- 口令文件验证会按名称记录 DBA 用户
- 操作系统验证并不记录具体用户
- 对于 SYSDBA 和 SYSOPER,操作系统验证优先于口令文件验证
权限
- 系统权限::每种系统权限都允许用户执行一种或一类特定的数据库操作。系统权限可由管理员授予,或者由可以显式授予管理权限的用户授予
- 授予管理员的权限(grant create table to hr)
- RESTRICTED SESSION:在受限模式下打开的数据库也可以登录
- SYSDBA和 SYSOPER:使用这两个权限可以在数据库中执行关闭、启动、恢复及其它管理任务。使用 SYSOPER 用户可执行基本操作任务,但不能查看用户数据。
- DROP ANY 对象:使用DROP ANY 权限用户可删除其他用户拥有的对象。
- CREATE、MANAGE、DROP 和 ALTER TABLESPACE
- CREATE ANY DIRECTORY:使用Oracle 数据库开发人员可以在 PL/SQL 内调用外部代码
- GRANT ANY OBJECT PRIVILEGE:使用此权限,您可以授予对他人所拥有的对象的对象权限。
- ALTER DATABASE和 ALTER SYSTEM
- 撤销权限(revoke create table from hr)(撤销系统权限时不会产生级联效应)
- 对象权限:对象权限允许用户对特定对象执行一个特定的操作。在没有特定权限的情况下,用户只能访问自己拥有的对象。对象权限可以由对象的所有者或管理员授予,也可以由为其显式授予了对象授予权限的用户授予。
- 授予对象权限
- 选择对象类型
- 选择对象
- 选择权限
- 撤销对象权限(会产生级联效应)
角色
- 作用
- 简化权限管理
- 动态地管理权限:如果修改了与某个角色关联的权限,则授予该角色的所有用户都会立即自动获得修改过的权限。
- 有选择性地应用权限:启用或禁用角色可以暂时打开或关闭权限。
- 预定义角色
- 创建角色:选择“Administration > Schema > Users & Privileges > Roles(管理 > 方案 > 用户和权限 > 角色)
- 保护角色:
- 角色可能不是默认的:SET ROLE vacationdba;
- 可以通过验证来保护角色。
- 通过编程来保护角色:CREATE ROLE secure_application_role IDENTIFIED USING <security_procedure_name>;
概要文件(指定时间内一恶搞用户只能有一个概要文件,修改概要文件则下次登录时生效)
- 定义:指一组已命名的针对数据库用法和实例资源的资源限制条件
- 作用:
- 控制资源占用
- 管理帐户状态和口令失效
口令安全性
- 帐户锁定:如果用户的登录失败次数达到了指定次数,系统会在设置的一段时间内自动锁定帐户。
- FAILED_LOGIN_ATTEMPTS 参数指定了在锁定帐户前失败的尝试登录次数。
- PASSWORD_LOCK_TIME 参数指定了尝试登录失败次数达到指定次数后帐户的锁定天数。
- 口令过期和失效:使用户口令具有生存期,口令在此生存期之后失效,必须进行更改。
- PASSWORD_LIFE_TIME 参数指定了口令的生存期(以天为单位),此时间之后,口令会失效。
- PASSWORD_GRACE_TIME 参数指定了口令失效后首次成功登录之后,更改口令的宽限期(以天为单位)。
- 口令历史记录:检查新口令以确保在指定时间内或者在指定口令更改次数内不重复使用口令。
-
- PASSWORD_REUSE_TIME:指定用户不能在指定天数内重复使用口令
- PASSWORD_REUSE_MAX:指定在可重复使用当前口令之前需要更改口令的次数
- 这两个参数是互相排斥的,因此,如果其中一个参数值没有被设置 UNLIMITED,则另一个参数必须设置为 UNLIMITED
- 口令复杂性验证:对口令进行复杂性检查可验证口令是否符合特定的规则。
限额
- 无限制:允许用户最大限度地使用表空间中的可用空间
- 值:用户可以使用的空间,以千字节或兆字节为单位。
- UNLIMITED TABLESPACE 系统权限:此系统权限会覆盖所有单个的表空间限额,并向用户提供所有表空间(包括 SYSTEM和 SYSAUX)的无限制限额。
- 何时补充限额?使用 PURGE子句删除了用户拥有的对象或者自动清除了回收站中的对象时会补充限额。