数据库安全管理教材

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
预定义角色是指在Oracle数据库创建时由系统自动创建的一些 常用的角色,这些角色已经由系统授予了相应的权限。
DBA可以直接利用预定义的角色为用户授权,也可以修改预定 义角色的权限。
Oracle数据库中有30多个预定义角色。 可以通过数据字典视图DBA_ROLES查询当前数据库中所有的预
定义角色,通过DBA_SYS_PRIVS查询各个预定义角色所具有的 系统权限。
DBA_USERS:包含数据库所有用户的详细信息。 USER_USERS:包含当前用户的详细信息。 DBA_TS_QUOTAS:包含所有用户的表空间配额信息。 USER_TS_QUOTAS:包含当前用户的表空间配额信息。 V$SESSION:包含用户会话信息。 V$OPEN_CURSOR:包含用户执行的SQL语句信息。
方式:
Sqlplus用户名/密码 as sysdba conn 用户名/密码 as sysdba
身份认证方式(Normal身份)
普通用户的数据库认证方式 密码认证方式:
条件:没有条件,任何时候都可以
Sqlplus 用户名/密码 conn 用户名/密码
操作系统认证方式:
条件:文件$ORACLE_HOME/NETWORK/ADMIN/SQLNET.ORA中的 SQLNET.AUTHENTICATION_SERVICES=(NTS)
数据库安全管理
主要内容
用户管理 权限管理 角色管理 概要文件管理 审计
用户管理
Oracle数据库初始用户 SYS:是数据库中具有最高权限的数据库管理员,可以启动、修 改和关闭数据库,拥有数据字典; SYSTEM:是一个辅助的数据库管理员 SCOTT:是一个用于测试网络连接的用户,其口令为TIGER。 PUBLIC:实质上是一个用户组,数据库中任何一个用户都属于 该组成员。要为数据库中每个用户都授予某个权限,只需把权 限授予PUBLIC就可以了。
才会生效
概要文件
OEM创建 Create profile limit创建 创建或修改用户时启用概要文件
CREATE PROFILE "PRO2" LIMIT CPU_PER_SESSION 6000 CPU_PER_CALL 10 CONNECT_TIME 10 IDLE_TIME 3 SESSIONS_PER_USER 1 LOGICAL_READS_PER_SESSION 20 LOGICAL_READS_PER_CALL 2 PRIVATE_SGA DEFAULT COMPOSITE_LIMIT DEFAULT PASSWORD_LIFE_TIME 7 PASSWORD_GRACE_TIME 2 PASSWORD_REUSE_MAX 2 PASSWORD_REUSE_TIME unlimited PASSWORD_LOCK_TIME 1 FAILED_LOGIN_ATTEMPTS 3 PASSWORD_VERIFY_FUNCTION DEFAULT
Sqlplus / conn /
创建用户
Create User<用户名> Identified By <口令> Default Tablespace <默认表空间> Temporary Tablespace <临时表空间> Quota 数值K| 数值M| Unlimited on 表空间 Profile 概要文件名 Default role 默认角色 Password Expire Account Lock|Unlock;
Grant sysdba to 用户名
Grant 对象权限 on 对象名 to 用户名[with grant option]
对象权限
适合对象
对象权限功能说明
SELECT
表、视图、序列
查询数据操作
UPDATE
表、视图
更新数据操作
DELETE
表、视图
删除数据操作
INSERT
表、视图
插入数据操作
REFERENCES 表
WITH ADMIN OPTION
当甲用户授权给乙用户,且激活该选项,则被授权的乙用户 具有管理该权限的能力:或者能把得到的权限再授给其他用 户丙,或者能回收授出去的权限。
当甲用户收回乙用户的权限后,乙用户曾经授给丙用户的权 限仍然存在
与WITH GRANT OPTION比较
当甲用户授权给乙用户,且激活该选项,则被授权的乙用户 具有管理该权限的能力:或者能把得到的权限再授给其他用 户丙,或者能回收授出去的权限。
查询角色信息
DBA_ROLES:包含数据库中所有角色及其描述; DBA_ROLE_PRIVS:包含为数据库中所有用户和角色授予的角色
信息; USER_ROLE_PRIVS:包含为当前用户授予的角色信息; ROLE_ROLE_PRIVS:为角色授予的角色信息; ROLE_SYS_PRIVS:为角色授予的系统权限信息; ROLE_TAB_PRIVS:为角色授予的对象权限信息; SESSION_PRIVS:当前会话所具有的系统权限信息; SESSION_ROLES:当前会话所具有的角色信息。。
用户属性
用户身份认证方式 默认表空间 临时表空间 表空间配额 概要文件 账户状态
身份认证方式(sysdba身份)ຫໍສະໝຸດ Baidu
操作系统认证
条件:
文件$ORACLE_HOME/NETWORK/ADMIN/SQLNET.ORA中 的SQLNET.AUTHENTICATION_SERVICES=(NTS)
举例
Create user a Identified by a1234 Default tablespace users Quota 10M on users; 注意
在创建新用户后,必须为用户授予适当的权限,用户才 可以进行相应的数据库操作。例如,授予用户CREATE SESSION权限后,用户才可以连接到数据库。
当前登录操作系统的用户必须属于OraDBA组
方式:
Sqlplus / as sysdba conn / as sysdba
身份认证方式(sysdba身份)
密码文件认证
条件:
初始化参数REMOTE_LOGIN_PASSWORDFILE =Exclusive 或者 Shared
当前登录操作系统的用户必须属于OraDBA组
查看数据库所有用户名及其默认表空间。 SELECT SERNAME,DEFAULT_TABLESPACE FROM DBA_USERS;
查看数据库中各用户的登录时间、会话号。 SELECT SID,SERIAL#,LOGON_TIME,USERNAME FROM V$SESSION;
对象权限:对象权限是指对某个特定的数据库对象 执行某种操作的权限。例如,对特定表的插入、删 除、修改、查询的权限。
授权方法
直接授权:利用GRANT命令直接为用户授权。 间接授权:先将权限授予角色,然后再将角色授予
用户。
授权
Grant 系统权限 to 用户名 [with admin option]
角色的概念
所谓角色就是一系列相关权限的集合
用户
MANAGER1
MANAGER2
EMPLOYEE1
EMPLOYEE2
角色
HR_MGR
HR_EMP
权限
CREATE TABLE
SELECT ON JOBS
CREATE SESSION
INSERT ON JOBS
UPDATE ON JOBS
预定义角色
预定义角色概述
利用概要文件,可以限制用户对数据库和系统资源的使用, 同时还可以对用户口令进行管理。
在Oracle数据库创建的同时,系统会创建一个名为DEFAULT 的默认概要文件。如果没有为用户显式地指定一个概要文件,
系统默认将DEFAULT概要文件作为用户的概要文件。 必须将Resource_limit参数设置为true,概要文件
Jeff
Emi
REVOKE
Bob
Jeff
Emi
查询权限信息
DBA_TAB_PRIVS:包含数据库所有对象的授权信息 ALL_TAB_PRIVS:包含数据库所有用户和PUBLIC用户组
的对象授权信息 USER_TAB_PRIVS:包含当前用户对象的授权信息 DBA_COL_PRIVS:包含所有字段已授予的对象权限 ALL_COL_PRIVS:包含所有字段已授予的对象权限信息 USER_COL_PRIVS:包含当前用户所有字段已授予的对
修改用户
ALTER USER user_name [IDENTIFIED]
[BY password|EXTERNALLY|GLOBALLY AS 'external_name'] [DEFAULT TABLESPACE tablespace_name] [TEMPORARY TABLESPACE temp_tablesapce_name] [QUOTA n K|M|UNLIMITED ON tablespace_name] [PROFILE profile_name] [DEFAULT ROLE role_list|ALL [EXCEPT role_list] |NONE] [PASSWORD EXPIRE] [ACCOUNT LOCK|UNLOCK];
删除用户
基本语法
DROP USER user_name [ CASCADE ];
步骤
先删除用户所拥有的对象 再删除用户 将参照该用户对象的其他数据库对象标志为
INVALID 处于连接状态的用户不可删除
查询用户信息
ALL_USERS:包含数据库所有用户的用户名、用户ID和用户创建时 间。
权限管理
权限管理概述 系统权限管理 对象权限管理 查询权限信息
12.3.1权限管理概述
所谓权限就是执行特定类型SQL命令或访问其他用 户的对象的权利。
系统权限:系统权限是指在数据库级别执行某种操 作的权限,或针对某一类对象执行某种操作的权限。 例如,CREATE SESSION权限、CREATE ANY TABLE权限。
查询角色CONNECT所具有的系统权限信息。
SELECT * FROM ROLE_SYS_PRIVS WHERE ROLE='CONNECT';
查询DBA角色被授予的角色信息。
SELECT * FROM ROLE_ROLE_PRIVS WHERE ROLE='DBA';
概要文件
概要文件(PROFILE)是数据库和系统资源限制的集合,是 Oracle数据库安全策略的重要组成部分。
收其权限。 给角色授权时应该注意,一个角色可以被授予另一个角
色,但不能授予其本身,不能产生循环授权。
收回权限
revoke 系统权限 from 角色名 revoke 对象权限 on 对象名 from 角色名 revoke 角色 from 角色名
将用户添加到角色中
Grant 角色名 to 用户名 Revoke 角色名 from 用户名
创建角色
Create role 角色名 [Not identified | Identified by 口令]
给角色分配权限
Grant 系统权限 to 角色名 Grant 对象权限 on 对象名 to 角色名 Grant 角色 to 角色名
说明
给角色授予适当的系统权限、对象权限或已有角色。 在数据库运行过程中,可以为角色增加权限,也可以回
当甲用户收回乙用户的权限后,乙用户曾经授给丙用户的权 限也被回收。
撤销具有ADMIN OPTION系统权限
DBA
Jeff
Emi
用户
GRANT
权限
REVOKE
DBA
Jeff
Emi
对象
REVOKE CREATE TABLE FROM jeff;
撤销具有GRANT OPTION对象权限
GRANT
Bob
在其他表中创建外键时可以引用 该表
EXECUTE
存储过程、函数、包 执行PL/SQL存储过程、函数和包
READ
目录
读取目录
ALTER
表、序列
修改表或序列结构
INDEX

为表创建索引
ALL
具有对象权限的所有 模式对象
某个对象所有对象权限操作集合
撤销权限
revoke 系统权限 from 用户名 revoke sysdba from 用户名 revoke 对象权限 on 对象名 from 用户名
象权限信息。 DBA_SYS_PRIVS:包含授予用户或角色的系统权限信息 USER_SYS_PRIVS:包含授予当前用户的系统权限信。
角色
具有名称的一组权限的定义。使用角色可以简 化对用户的授权,只需要将用户添加到角色中, 用户自动具有该角色所有的权限。
系统角色 用户自定义角色
Oracle数据库角色概述
相关文档
最新文档