第七章 用户管理
1.创建用户
CREATE USER 用户名
IDENTIFIED {BY 用户名 | EXTERNALLY | GLOBALLY AS '外部名'}
[PASSWORD EXPIRE]
[DEFAULT TABLESPACE 表领域名]
[TEMPORARY TABLESPACE 临时表名]
[QUOTA {大小 | UNLIMITED} ON 表领域名]
[ACCOUNT {LOCK | UNLOCK}]
[PROFILE profile名]
1)认证方式
密码认证
EXTERNALLY(OS 认证)
用户名 OS_AUTHENT_PREFIX初始化参数指定前缀,比如 OS_AUTHENT_PREFIX=OPS$,创建用户
create user ops$oracle ideneified EXTERNALLy;
3)GLOBALLY
Oracle Advanced Security可选认证方式,指纹认证,X.509证明书...
如果没有指定表领域,则使用默认的表领域。
临时表领域:用于SQL相关的ORDER BY和GROUP BY指定,内部sort用。
数据库表级别定义内容,可以从 DATABASE_PROPERTIES数据字典视图检索。
PROFILE
数据库使用率
对于实例的使用限制
密码管理
参数 说明
SESSIONS_PER_USER 用户使用同时session数
CPU_PER_SESSION 1个session的CPU时间
CPU_PER_CALL 1个call的CPU时间
CONNECT_TIME 每session的连接时间
IDLE_TIME session连接最长闲置时间
LOGICAL_READS_PER_SECOND
LOGICAL_READS_PER_CALL
PRIVATE_SGA
COMPOSITE_LIMIT
2.权限
系统权限
GRANT 系统权限 TO 用户名 | PUBLIC [,] [WITH ADMIN OPTION];
UNLIMITED TABLESPACE 用户可以使用所有的表领域 包括SYSTEM和SYSAUX。
2)对象权限
GRANT 对象权限名 | ALL ON 对象名 TO 用户名 | [WITH GRANT OPTION];
3.角色 ROLE
事前定义的角色中,可以访问数据字典视图的 SELECT_CATALOG_ROLE,包含了 SELECT ANY DICTIONARY的系统权限
4. 角色作成
CREATE ROLE角色名
IDENTIFIED {BY 用户名 | EXTERNALLY | GLOBALLY AS '外部名'}
5. 默认角色的定义 设置用户的默认角色
ALTER USER 用户名 DEFAULT ROLE 角色名
6.激活角色
SET ROLE 角色名 IDENTIFIED BU 密码
7.应用角色,只适用于特定的PL/SQL
CREATE ROLE 角色名 IDENTIFIED USING 存储过程名
第八章 数据库的安全
数据库安全
1.权限最小化原则实践
默认用户帐号管理
管理权限的限制
权限(系统权限和对象权限)的赋予权限
DROP ANY TABLE权限以及其他的管理员权限
DBA权限
SYSDBA,SYSOPER权限
具有DBA权限的用户
SQL> select grantee from dba_role_privs where granted_role='DBA';
具有SYSDBA,SYSOPER权限的用户
SQL>select * from v$pwfile_users;
2.数据字典的保护
07_DICTIONARY_ACCESSIBILITY=FALSE
使用GRANT命令,只赋予必须的用户具有访问数据字典的权限
SELECT ANY DICTIONARY系统权限,可以访问所有的数据字典
3.PUBLIC 用户的权限
UTL_SMTP :使用数据库SMTP邮件服务器,可以发送任意信件
UTL_TCP:
UTL_HTTP:
UTL_FILE:
DBMS_OBFUSCATION_TOOLKIT: 数据加密
4.OS目录访问的权限
使用UTL_FILE_DIR初始化参数,PL/SQL对于操作系统目录能进行设定。默认,能够访问目录。
5.操作系统认证的无效化
REMOTE_OS_AUTHENT=FALSE
6.标准密码安全技能的实现
FAILED_LOGIN_ATTEMPTS: 最多登录失败次数
PASSWORD_LOCK_TIME:超过失败次数后,账户锁定的天数(日)
PASSWORD_LIFE_TIME:密码的有效期间
PASSWORD_GRACE_TIME:密码变更的期间
PASSWORD_REUSE_TIME:密码可再使用的天数(日)
PASSWORD_REUSE_MAX:最多可重用的回数
PASSWORD_VERIFY_FUNCTION:密码复杂性评价的PL/SQL函数。$ORACLE_HOME/rdbms/admin/utlpwdmg.sql脚本来作成
7.数据库活动的审查
8.数据库审查
初始化参数 AUDIT_TRAIL:审查结果的保存的位置
NONE: 审查无效
DB: 审查结果保存到数据库
OS: 审查结果保存到系统文件上
AUDIT_FILE_DEST:目录指定
审查: SQL审查,系统权限,对象权限,session审查。
首先,SQL审查,CREATE TABLE,DROP TABLE,TRUNCATE TABLE。
SESSION审查:用户名成功,失败,连接到实例。保存
连接的时刻
切断的时刻
处理理论 I/O
处理的物理I/O
审查option的表示
ALL_DEF_AUDIT_OPTS:默认审查
DBA_STMT_AUDIT_OPTS:sql审查
DBA_PRIV_AUDIT_OPTS:权限审查
DBA_OBJ_AUDIT_OPTS:schema对象权限审查
-: 不审查
S: session别的审查
A:Access类的审查
9.审查结果的表示
DBA_AUDIT_TRAIL:所有审查实体的确认
DBA_AUDIT_EXISTS:AUDIT EXISTS/AUDIT NOEXISTS记录的确认
DBA_AUDIT_OBJECT:对象相关的确认
DBA_AUDIT_SESSION:Session相关记录的确认
DBA_AUDIT_STATEMENT:SQL相关的确认
10.基于值的审查:使用trig
11.FGA
DBMS_FGA审查策略
FGA策略:DBMS_FGA.ADD_POLICY
DBMS_FGA.ENABLE_POLICY,DBMS_FGA.DISABLE_POLICY
已经存在的策略再追加,就会发生错误
SQL审查
所有的SQL审查,使用NULL条件
审查条件没有效的情况下,访问审查对象会发生错误
事件处理不存在的情况下,只做成记录
FGA审查实体
DBA_FGA_AUDIT_TRAIL:所有FGA事件确认
ALL_AUDIT_POLICIES:现在用户能够访问的所有FGA策略
DBA_AUDIT_POLICIES:数据库内的所有FGA策略
USER_AUDIT_POLICIES:用户对象的所有FGA策略
AUDIT_SYS_OPERATIONS