引言 网络技术的快速发展,数据库的普遍应用,使得数据 库安全问题变得越来越重要 这个问题一直是围绕着数 据库管理员的噩梦 Oracle 作为一种大型的数据库系 统 其安全问题更为突出 数据库的安全性是指保护数据以防止非法用户使 用 避免数据被有意或无意地丢失 泄露或破坏 数据库 的安全性控制通常有用户标识和鉴定 存取控制 视图 控制 审计 数据加密等常用方法 下面以日常所使用的 Oracle 数据库产品为例 从数据库用户安全 权限设置 数据限制等几个方面对其安全性能进行分析研究 1 用户安全管理 用户是定义在数据库中的一个名称 它是 Oracle 数 据库的基本访问控制机制 当用户要连接到 Oracle 数据 库以进行数据访问时 必须要提供合法的用户名及其口 令 如 CONNECTscott tiger Oracle 数据库是可以为多 个用户共享使用的 一个数据库中通常会包含多个用 户 数据库在新建后通常会自动建好一些用户 其中最 重要的有 sys 和 system 两个管理员用户及 scott 等一些 普通用户 数据库每个用户都可以拥有自己的对象 一 个用户所拥有对象的集合称为一个模式 用户与模式具 有一一对应的关系 并且两者名称相同 不同模式中可 以具有相同的数据库对象名 即不同用户下的对象名称 可以相同 对象的访问格式为[模式名.]对象名 只有访 问自己模式对象时 模式名才可以省略 1.1 用户创建 数据库管理员可以定义和创建新的数据库用户 可 以为用户更改口令 可以锁定某用户禁止其登录数据 库 总之 用户管理工作是数据库管理员的职责之一 创建用户必须具有 CREATEUSER 系统权限 通 常情况下只有数据库管理员或安全管理员才拥有 CREATEUSER 权限 创建用户时除了指定用户名外 还要指出验证方 式 默认使用表空间 空间使用限额 用户是否被锁定 用于资源限制的概要文件等选项 验证方式包括数据库 口令验证 操作系统验证 数据库口令验证要求用户登 录时必须要提供口令。 1.2 特权用户 特权用户是指具有特殊 权限 (SYSDBA 或 SYSOPER)的数据库用户 这类用户主要用于执行数据 库的维护操作 例如 启动和关闭数据库 建立数据库 备份和恢复等任务 从 Oracle9i 开始 当建立实例服务时会建立名称为 sys 的特权用户 另外 当将初始化参数 REMOTE -LOGIN_PASSWORDFILE 设置为 EXCLUSIVE 时 还 可以将 SYSDBA 和 SYSOPER 特权授予其他用户 需要注意的是 从 Oracle9i 开始 sys 用户或其他欲 以特权身份登录的用户登录必须带有 AsSYSDBA 或 ASSYSOPER 子句 而且特权用户都对应 sys 用户 表 1 验证了这一点。 ![]() 1.3修改用户 更改口令 使用 ALTERUSER 命令可以修改用户的信息 但 是需要由 DBA 或者具有 ALTERUSER 系统权限的用 户来完成 用户经常更改登录口令是一个不错的习惯 每个用户都可以使用如下 命令修改其自身口令 SQL>ALTERUSERtestuserIDENTIFIEDBYertghj 当 用户遗忘了口令无法登录时 可以由 DBA 使用上述命 令为其重设一个新口令 更改某个表空间的使用配额 用户在某个表空间的使用配额可能会根据实际情 况有所调整 更改用户的状态 不希望某用户使用数据库数据时 可以将此用户进 行锁定 SQL>ALTERUSERtestuserACCOUNTLOCK 而解除对 testuser 用户账户的锁定 使用如下命令 SQL>ALTERUSERtestuserACCOUNTUNLOCK 删除 用户之后 Oracle 会从数据字典中删除用户及该用户拥 有对象的信息 特权用户具有启动 关闭数据库等特权 通过查询 动态性能视图 v$pwfile_users 可以确定有哪些特权用户 及他们有哪些特权 这样的话就保证了 Oracle 数据库的 安全 2 权限管理 权限用于限制用户可执行的操作 即限制用户在数 据库中或对象上可以做什么 不可以做什么 新建立用 户没有任何权限 不能执行任何操作 只有给用户授予 了特定权限或角色之后 该用户才能连接到数据库 进 而执行相应的 SQL 语句或进行对象访问操作 a) 权限类型 Oracle 中权限分为系统权限和对象权限两种类型 i. 系统权限 系统权限是在数据库中执行某种操作 或者针对某 一类的对象执行某种操作的权力 |