系统权限并不针对某一个特定的对象 而是针对整 个数据库范围 比如 在数据库中创建 空间的权力 (对应的系统权限名称为 CREATE TABLESPACE) 或者为其他模式创建表权力(对应的系 统权限名称为 CREATEANYTABLE) ii. 对象权限 对象权限是一种对于特定的表 视图 序列 过程 函数或程序包执行特定操作的一种权限或权利 表 2 列 出了 Oracle 所提供的对象权限。 ![]() b)授予权限 授予权限是通过 GRANT 命令实现的 但是根据授 予的是系统权限还是对象权限 GRANT 命令语法是有 区别的 i. 授予系统权限 CREATESESSl0N 是一个用户访问数据库必须至 少具有的系统权限 系统权限授权工作通常由 DBA 完 成 但是授权时可以带有 WITHADMINOPTION 选项 使得被授予者可以进一步将此权限授予其他用户 ii. 授予对象权限 一个对象的拥有者具有该对象的所有权限 他可以 将该对象上的权限授予数据库的其他用户 如果他允许 被授予者可以再转授此权限给另外的用户 授权时需要 带有 WITHGRANTOPTION 选项 c) 回收权限 回收权限的命令是 REVOKE 执行回收权限操作的 用户同时必须具有授予相同权限的能力与 GRANT 命 令相类似 回收权限时也会根据是系统权限还是对象权 限 语法会有些不同 d) 查看权限 i. 显示用户所具有的系统权限 DBA 通过查询数据字典 dba_sys_privs 可以了解指 定用户所具有的系统权限以及 WITH ADMINOPTION 选项 如下所示 SQL>SELECT* FROMdba sys_privsWHEREgrantee= TESTUSER 此例查询的仅是用户 testuser 所具有的系统权限情况 GRANTEE 表示权限拥有者 VILEGE 表示系统权限名 ADMIN OPTION 表示转授系统权限选项 其中 YES 意指可以转授 而 NO 表示不能转授 有时用户也需要 了解自己拥有哪些权限 此时查询 user sys privs 数 据字典即可 ii. 显示用户所具有的对象权限 通过查询 dba_tab privs user_tab_privs 两个数据 字典视图 就可以获得用户在哪个对象有哪些对象权限 信息 3 角色管理 角色就是一组权限的集合 角色可以被授予用户或 其他的角色 把角色分配给用户 就是把角色所拥有的 权限分配给了用户 使用角色可以更容易地进行权限管理 主要体现在 三个方面 (1) 减少了授权工作 用户可以先将权限授予一个 角色 然后再将角色授予每一个用户 而不是将一组相 同的权限授予多个用户 (2) 动态权限管理 当一组权限需要改变时 只需要 更改角色的权限 则所有被授予了此角色的用户自动地 立即获得了修改后的权限 (3) 方便地控制角色的可用性 角色可以临时禁用 和启用 从而使权限变得可用和不可用 当建立数据库时 Oracle 自动定义了多个角色 系 统预定义的角色包括几个 (1)CONNECT RESOURCE DBA 提供这些角色的 目的是为了向后与 Oracle 服务器的早期版本兼容 (2)EXP ULLDATABASE IMP_FULLDATABASE 导出 导入数据库的权限 (3)DELETE CATALOG_ROLE 对于数据字典表 的 DELETE 权限 (4)EXECUTE_CATALOG_ROLE 对于数据字典程 序包的 EXECUTE 权限 (5)SELECT-CATALOG_ROLE 对于数据字典表的 SELECT 权限 许多数据字典视图包含了授予用户和角色的权限 信息 查询这些视图可以了解当前数据库中已经建立的 角色 以及这些角色所拥有的系统权限和对象权限 4PROFILE 管理 PROFILE 也称配置文件或概要文件 是口令限制和 资源限制的命名集合 例如 使用 PROFILE 可以指定口 令有效期 进行口令复杂性校验 指定用户连接时问以 及最大空闲时间等 数据库每个用户都会对应一个配置 文件 PROFILE 具有以下一些作用 (1) 可以限制用户执行某些需要消耗大量资源的 SQL 操作 (2) 确保在用户会话空闲一段时间后 将用户从数 据库注销 (3)在大而复杂的多用户数据库系统中 可以合理分 配资源 (4) 控制用户口令的使用 当建立数据库时 系统会自动建立 DEFAULT 配置 文件 该文件的所有口令及资源限制选项初始值均为 UNLIMITED 即未进行任何口令和资源限制 当建立用 户时 如果不指定 PROFILE 子句 则 Oracle 会将 DEFAULT 分配给该用户 根据用户所承担任务的不同 |