Workshop 1-Lesson 8 Administering User Security

来源:互联网 发布:华能营口电厂知乎 编辑:程序博客网 时间:2024/05/23 00:40

目标:
- 创建和管理DB用户账户 * 验证用户 * 分配默认存储空间(表空间)
- grant和revoke权限
- 创建和管理role
- 创建和管理profile * 实现标准的密码安全性功能 * 控制用户使用资源

1. Database User Accounts
每个用户账户都有:
1) 唯一用户名
2) 一种验证方式
3)一个默认表空间
4)一个临时表空间
5)一个用户档案profile
6)一个初始化consumer group
7)一种账户状态
一个schema:
- 一个DB用户所拥有的对象的集合
-与用户账户名相同

2. Predefined Administrative Accounts
1)sys账户
- 被授予DBA角色,以及一些其他角色
- 具有所有带ADMIN OPTION的权限
- 用于startup,shutdown,以及一些其他维护任务
- 拥有数据字典和AWR
2) SYSTEM账户
• SYSTEM account is granted the DBA, MGMT_USER, and AQ_ADMINISTRATOR_ROLE roles.
• DBSNMP account is granted the OEM_MONITOR role.(EM管理引擎,监控和管理数据库)
• SYSMAN account is granted the MGMT_USER, RESOURCE and SELECT_CATALOG_ROLE roles.(用于执行EM管理任务)

3. Authenticating Users
当创建用户时,必须指定采用哪种鉴权方式:
1) 密码鉴权:
表示通过oracle鉴权
大小写敏感 不超过30字节,通过网络通道启用AES自动加密
2) 外部鉴权:
表示通过DB之外的方法(OS,lerberos,radius)
通过外部鉴权,DB可以依靠OS,网络鉴权服务,或其他外部鉴权服务限制DB账户访问。
DB密码不用设置。
对于OS鉴权:只要设置OS_AUTHENT_PREFIX(定义每个OS用户的前缀)
对于与操作系统拥有相同用户名的用户账户,直接登录 不需要密码:
例如OS账户叫vero,那么DB中必须有一个账户叫OSP$vero

SYS@VERO> show parameter OS_AUTHENT_PREFIX(静态参数)NAME      TYPE  VALUE------------------------------------ ----------- ------------------------------os_authent_prefix      stringSYS@VERO> create user oracle identified externally;SYS@VERO> shutdown immediate;SYS@VERO> startup;[oracle@vero1 ~]$ sqlplus /
  • Global鉴权:
    With the Oracle Advanced Security option, global authentication enables users to be identified through the use of Oracle Internet Directory.

4. 管理员鉴权
1)操作系统安全
DBA们必须有OS权限创建和删除文件
典型的数据库用户不应该有创建和删除文件权限
2)管理员安全
对于SYSDBA,SYSOPER,SYSASM连接
-DBA用户以名字进行审计的密码文件和强大的身份验证方法
- OS验证OS账户名
- 在鉴权用户方式上,操作系统验证优先于密码文件验证
- 密码文件使用大小写敏感验证方式

5. 权限
两种类型的用户权限:
- system:使用户能够执行数据库中特殊的动作
1)授予一个权限带ANY子句,意味着权限可以跨越schema line,SYS和DBA用户可以被授予所有ANY权限

GRANT <system_privilege> TO <grantee clause> [WITH ADMIN OPTION]

[WITH ADMIN OPTION]允许用户授予系统权限给其他用户

2)有些系统权限只授予管理员:
* RESTRICTED SESSION
* SYSOPER的权限:
- STARTUP and SHUTDOWN
- CREATE SPFILE
- ALTER DATABASE OPEN/MOUNT/BACKUP
- ALTER DATABASE ARCHIVELOG
- ALTER DATABASE RECOVER (Complete recovery only. Any form of incomplete
recovery, such as UNTIL TIME|CHANGE|CANCEL|CONTROLFILE, requires
connecting as SYSDBA.)
- RESTRICTED SESSION
* SYSDBA还包括不完全恢复和删除数据库,SYSDBA系统权限只允许用户以SYS用户连接
* SYSASM
* Drop ANY object
* CREATE, MANAGE, DROP, and ALTER TABLESPACE
* CREATE LIBRARY
* CREATE ANY DIRECTORY
* GRANT ANY OBJECT PRIVILEGE 允许你授予对象权限给不属于你的对象
* ALTER DATABASE and ALTER SYSTEM

- object:使用户能够访问和操作指定的对象

GRANT <object_privilege> ON <object> TO <grantee clause> [WITH GRANT OPTION]

10. Revoking System Privileges with ADMIN OPTION

场景:
1. DBA授予CREATE TABLE with ADMIN OPTION权限给Joe
2. Joe创建一张表
3. Joe授予CREATE TABLE权限给Emily
4. Emily创建一张表
5. DBA从Joe那里收回CREATE TABLE权限
结果:
Joe的表仍然存在,但Joe不能再创建新表了;
Emliy的表仍然存在,并且她仍然有CREATE TABLE权限。

SYSTEM权限可以这样想象:
央妈要搞好祖国建设,于是给了一个叫Joe的人大领导职位,让他去招人,搞建设。
然后Joe在市里面搞房地产,建了一栋大楼叫table1,还招了一个小蜜叫Emily,给她一个领导职位,搞建设。Emily回乡也建了一栋大楼table2。
这时候央妈发现Joe不像话,贪污腐败。把他收押了。收回了他的职位和权力。
这时候:
1.table1,table2楼已经建了,总不能拆了吧。所以它还在。
2.小蜜Emily又没贪污腐败,继续干她工作呗。所以她还是小领导。
所以,SYSTEM权限只是拥有权力。

11. Revoking Object Privileges with Grant OPTION
场景:
1. Joe被授予可以SELECT employees表的对象权限,并且还有GRANT OPTION的权限
2. Joe授予SELECT employees表的对象权限给了Emily
3. 从Joe那里收回SELECT employees表的对象权限,Emily的权限也被级联收回了。
结果:
Joe和Emily都不能SELECT employees了。

OBJECT权限可以这样想象:
央妈要搞好祖国建设,于是给了一个叫Joe的人5000w,让他去招人,给贫困山区建一所学校。
Joe把这个一大笔钱分给了他的小蜜Emliy。
结果这两人不学好,没建学校,正在吃喝玩乐用了。
央妈发现了,不止两人都要坐牢,钱也要收回!

Secure Roles
1) 角色可以设置为非默认,在需要时启用:
SET ROLE vacationdba;
2) 角色可以通过鉴权保护
- NONE
- PASSWORD
- EXTERNAL
- GLOBAL
3) roles can also be secured programmatically.
CREATE ROLE secure_application_role
IDENTIFIED USING ;
通过创建一个PLSQL存储过程,检查用户网络地址,用户运行程序,天数,其他安全需求从而创建一个secure application roles

0 0
原创粉丝点击