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