《安全生产_数据库安全管理培训课件》由会员分享,可在线阅读,更多相关《安全生产_数据库安全管理培训课件(45页珍藏版)》请在金锄头文库上搜索。
1、数据库安全管理,主要内容,用户管理 权限管理 角色管理 概要文件管理 审计,用户管理,Oracle数据库初始用户 SYS:是数据库中具有最高权限的数据库管理员,可以启动、修改和关闭数据库,拥有数据字典; SYSTEM:是一个辅助的数据库管理员 SCOTT:是一个用于测试网络连接的用户,其口令为TIGER。 PUBLIC:实质上是一个用户组,数据库中任何一个用户都属于该组成员。要为数据库中每个用户都授予某个权限,只需把权限授予PUBLIC就可以了。,用户属性 用户身份认证方式 默认表空间 临时表空间 表空间配额 概要文件 账户状态,身份认证方式(sysdba身份),操作系统认证 条件: 文件$O
2、RACLE_HOME/NETWORK/ADMIN/SQLNET.ORA中的SQLNET.AUTHENTICATION_SERVICES=(NTS) 当前登录操作系统的用户必须属于OraDBA组 方式: Sqlplus / as sysdba conn / as sysdba,身份认证方式(sysdba身份),密码文件认证 条件: 初始化参数REMOTE_LOGIN_PASSWORDFILE =Exclusive 或者 Shared 当前登录操作系统的用户必须属于OraDBA组 方式: Sqlplus用户名/密码 as sysdba conn 用户名/密码 as sysdba,身份认证方式(No
3、rmal身份),普通用户的数据库认证方式 密码认证方式: 条件:没有条件,任何时候都可以 Sqlplus 用户名/密码 conn 用户名/密码 操作系统认证方式: 条件:文件$ORACLE_HOME/NETWORK/ADMIN/SQLNET.ORA中的SQLNET.AUTHENTICATION_SERVICES=(NTS) Sqlplus / conn /,创建用户,Create User Identified By Default Tablespace Temporary Tablespace Quota 数值K| 数值M| Unlimited on 表空间 Profile 概要文件名 De
4、fault role 默认角色 Password Expire Account Lock|Unlock;,举例,Create user a Identified by a1234 Default tablespace users Quota 10M on users; 注意 在创建新用户后,必须为用户授予适当的权限,用户才可以进行相应的数据库操作。例如,授予用户CREATE SESSION权限后,用户才可以连接到数据库。,修改用户,ALTER USER user_name IDENTIFIED BY password|EXTERNALLY|GLOBALLY AS external_name D
5、EFAULT 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 ; 步骤 先删除用户所拥有的对象 再删除用户 将参照该用户对象的其他数据库
6、对象标志为INVALID 处于连接状态的用户不可删除,查询用户信息,ALL_USERS:包含数据库所有用户的用户名、用户ID和用户创建时间。 DBA_USERS:包含数据库所有用户的详细信息。 USER_USERS:包含当前用户的详细信息。 DBA_TS_QUOTAS:包含所有用户的表空间配额信息。 USER_TS_QUOTAS:包含当前用户的表空间配额信息。 V$SESSION:包含用户会话信息。 V$OPEN_CURSOR:包含用户执行的SQL语句信息。,查看数据库所有用户名及其默认表空间。 SELECT SERNAME,DEFAULT_TABLESPACE FROM DBA_USERS;
7、 查看数据库中各用户的登录时间、会话号。 SELECT SID,SERIAL#,LOGON_TIME,USERNAME FROM V$SESSION;,权限管理,权限管理概述 系统权限管理 对象权限管理 查询权限信息,12.3.1权限管理概述,所谓权限就是执行特定类型SQL命令或访问其他用户的对象的权利。 系统权限:系统权限是指在数据库级别执行某种操作的权限,或针对某一类对象执行某种操作的权限。例如,CREATE SESSION权限、CREATE ANY TABLE权限。 对象权限:对象权限是指对某个特定的数据库对象执行某种操作的权限。例如,对特定表的插入、删除、修改、查询的权限。,授权方法
8、直接授权:利用GRANT命令直接为用户授权。 间接授权:先将权限授予角色,然后再将角色授予用户。,授权,Grant 系统权限 to 用户名 with admin option Grant sysdba to 用户名 Grant 对象权限 on 对象名 to 用户名with grant option,撤销权限,revoke 系统权限 from 用户名 revoke sysdba from 用户名 revoke 对象权限 on 对象名 from 用户名,WITH ADMIN OPTION 当甲用户授权给乙用户,且激活该选项,则被授权的乙用户具有管理该权限的能力:或者能把得到的权限再授给其他用户丙,
9、或者能回收授出去的权限。 当甲用户收回乙用户的权限后,乙用户曾经授给丙用户的权限仍然存在 与WITH GRANT OPTION比较 当甲用户授权给乙用户,且激活该选项,则被授权的乙用户具有管理该权限的能力:或者能把得到的权限再授给其他用户丙,或者能回收授出去的权限。 当甲用户收回乙用户的权限后,乙用户曾经授给丙用户的权限也被回收。,撤销具有ADMIN OPTION系统权限,撤销具有GRANT OPTION对象权限,查询权限信息,DBA_TAB_PRIVS:包含数据库所有对象的授权信息 ALL_TAB_PRIVS:包含数据库所有用户和PUBLIC用户组的对象授权信息 USER_TAB_PRIVS
10、:包含当前用户对象的授权信息 DBA_COL_PRIVS:包含所有字段已授予的对象权限 ALL_COL_PRIVS:包含所有字段已授予的对象权限信息 USER_COL_PRIVS:包含当前用户所有字段已授予的对象权限信息。 DBA_SYS_PRIVS:包含授予用户或角色的系统权限信息 USER_SYS_PRIVS:包含授予当前用户的系统权限信。,角色,具有名称的一组权限的定义。使用角色可以简化对用户的授权,只需要将用户添加到角色中,用户自动具有该角色所有的权限。 系统角色 用户自定义角色,Oracle数据库角色概述,角色的概念 所谓角色就是一系列相关权限的集合,预定义角色,预定义角色概述 预定
11、义角色是指在Oracle数据库创建时由系统自动创建的一些常用的角色,这些角色已经由系统授予了相应的权限。 DBA可以直接利用预定义的角色为用户授权,也可以修改预定义角色的权限。 Oracle数据库中有30多个预定义角色。 可以通过数据字典视图DBA_ROLES查询当前数据库中所有的预定义角色,通过DBA_SYS_PRIVS查询各个预定义角色所具有的系统权限。,创建角色,Create role 角色名 Not identified | Identified by 口令,给角色分配权限,Grant 系统权限 to 角色名 Grant 对象权限 on 对象名 to 角色名 Grant 角色 to 角
12、色名 说明 给角色授予适当的系统权限、对象权限或已有角色。 在数据库运行过程中,可以为角色增加权限,也可以回收其权限。 给角色授权时应该注意,一个角色可以被授予另一个角色,但不能授予其本身,不能产生循环授权。,收回权限,revoke 系统权限 from 角色名 revoke 对象权限 on 对象名 from 角色名 revoke 角色 from 角色名,将用户添加到角色中,Grant 角色名 to 用户名 Revoke 角色名 from 用户名,查询角色信息,DBA_ROLES:包含数据库中所有角色及其描述; DBA_ROLE_PRIVS:包含为数据库中所有用户和角色授予的角色信息; USER
13、_ROLE_PRIVS:包含为当前用户授予的角色信息; ROLE_ROLE_PRIVS:为角色授予的角色信息; ROLE_SYS_PRIVS:为角色授予的系统权限信息; ROLE_TAB_PRIVS:为角色授予的对象权限信息; SESSION_PRIVS:当前会话所具有的系统权限信息; SESSION_ROLES:当前会话所具有的角色信息。,查询角色CONNECT所具有的系统权限信息。 SELECT * FROM ROLE_SYS_PRIVS WHERE ROLE=CONNECT; 查询DBA角色被授予的角色信息。 SELECT * FROM ROLE_ROLE_PRIVS WHERE ROL
14、E=DBA;,概要文件,概要文件(PROFILE)是数据库和系统资源限制的集合,是Oracle数据库安全策略的重要组成部分。 利用概要文件,可以限制用户对数据库和系统资源的使用,同时还可以对用户口令进行管理。 在Oracle数据库创建的同时,系统会创建一个名为DEFAULT的默认概要文件。如果没有为用户显式地指定一个概要文件,系统默认将DEFAULT概要文件作为用户的概要文件。 必须将Resource_limit参数设置为true,概要文件才会生效,概要文件,OEM创建 Create profile limit创建 创建或修改用户时启用概要文件,CREATE PROFILE “PRO2“ LI
15、MIT 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
16、1 FAILED_LOGIN_ATTEMPTS 3 PASSWORD_VERIFY_FUNCTION DEFAULT,审计,监视和记录所选用户的数据活动,用于调查可疑活动,监视与收集特定数据库活动的记录。 需要先开启审计功能 Alter system set audit_trail=true scope=spfile 重启数据库 Oracle 11g默认审计功能是开启的,指定审计选项,审计 SQL 语句: 审计系统权限: 审计对象权限:,AUDIT select any table, create any trigger; AUDIT select any table BY hr BY SESSION;,AUDIT table; AUDIT session;,AUDIT ALL on hr.employees; AUDIT UPDATE,DELETE on hr.employees BY ACCESS;,审计的一些其他选项,by access / by session: b