Lesson 6 Administering User Security

目标Objectives:
  • 创建和管理数据库用户组
          - 给用户权限
          - 分配默认的存储区域(表空间)
  • 赋予和收回权限
  • 创建和管理角色roles
  • 创建和管理profiles
 
role 对sys privilege 和object privilege的打包.
Profiles 利用已命名的一系列资源来限制数据库的使用和实例的资源
Quota 是在给与的表空间中的空间允许,这是用户控制资源使用的其中一种方式

 
1.User 用户:
 
数据库用户账户Database User Accounts
 
要使用数据库,用户必须定义一个有效的数据库账户并且成功为其授权所需权限。最佳实践是每个使用者都有自己的账户,会避免潜在的安全漏洞,在极少数情况下,用户共享一个相同的数据库帐户,此时,操作系统和用用必须为数据库提供充足的安全性保障。
 
每个数据库用户账户都要有以下:
  • 独一无二的用户名:不超过30字节,不能包含特殊字符,必须以字母开始。
  • 一种认证方式:最常见的是密码,还包括操作系统和数据字典认证、生物认证,28种
  • 一个默认表空间:用户默认创建对象的空间。要注意,拥有默认表空间并不意味着这个用户又在表空间中创建对象或者分配空间的权限。这些权限都是单独赋予的。
  • 一个临时表空间:创建临时对象的空间,比如排序表(sorts table)和临时表(temporary table)
  • 用户配置文件User Profile:对用户资源和密码的限制。
  • 消费者组别Consumer Group:资源管理者使用。
  • 锁定的状态:用户只能使用解锁的帐号。
 
预定义账户:SYS和SYSTEM
 
SYS账户:
- 被授予DBA角色
- 拥有ADMIN OPTION的所有权限
- 需要起停和运维命令
- 拥有数据字典
- 拥有AWR(自动工作载入仓库)
 
SYSTEM账户只有普通DBA权限
 
这些账户不用作日常工作。不能被删除。
 
创建用户
在EM中可以管理。
 
EM Administration>Schema>User&Privileges>Users -Create
 
如果没有选择默认表空间,系统定义默认变量会被使用,通常对于临时表空间:如果没有特定一个,那么系统定义的临时表空间将会被使用。
 
2.Authentication 认证
 
认证用户Authenticating Users
 
验证意味着定义某些要使用数据资源或应用(用户、设备等其他)身份,有效化未来使用到的关系,验证同样通过准许接入和执行特定身份来使账户有效化,认证完毕之后,认证进程可以允许或限制接入等级和动作限定。
 
当创建一个用户时,必须要决定它要使用的认证手段。
 
密码Password:同样被称为数据库认证,为每个User创建相关联的、在试图连接时要提供的密码,当设置好一个密码之后,可以马上销掉,来要求User在第一次登陆后进行更改,当要决定注销User密码时,必须保证User有更改密码的能力。一些应用并不具备这种功能。
密码通常在网络间传播之前总是自动的并且在网络连接(Client/Sever,Sever/Sever)中传播时通过使用标准的DES算法进行加密。
External:同样被称为操作系统认证。User可以不通过特定的用户名密码来连接数据库,如果系统和网络允许可使用此种方式认证,设置OS_AUTHENT_PREFIX变量,默认值为OPS$,
     如果user的操作系统账户为tsmith,需要连接数据库并且通过系统认证的方式,数据库会检查该user是否为OPS$tsmith,正确则允许访问。
Global:使用高级配置选项进行高级认证,全局授权允许用户通过生物特征、x509证书、特定的设备和互联网字典来进行定义。
 
管理者认证Administrator Authentication
 
操作系统安全
     DBA必须有操作系统创建和删除文件的权限
     普通数据库用户不应该有操作系统创建和删除数据库文件的权限
管理者安全
     SYSDBA和SYSORER通过密码文件和操作系统认证。
          - 密码文件认证记录DBA名字
          - 系统认证不记录特定的用户
          - 系统认证优先级比密码认证的高
 
OS安全:在UNIX和LINUX默认DBA属于installOS组,拥有新建和删除数据库文件的权限。
管理者安全: SYSDBA和SYSOPER连接仅在带有密码文件的证书或者拥有操作系统权限和允许认证后认证。如果使用的是操作系统认证,那么数据库并不使用提供的用户名和密码。当没有密码文件、提供的用户名和密码不在特定文件、或者未提供用户名和密码时,使用操作系统认证。
无论如何,如果通过密码文件认证成功,那么链接是通过用户名进行,如果通过操作系统认证成功,那么连接不会记录在特定的用户中。
 
*注意:OS认证优先级高于密码认证。特定的,如果你是操作系统中OSDBA和OSOPER组的成员,并且你作为SYSDBA和SYSOPER连接,你将通过关联的管理权限连接,无视自定义的密码和用户名。
 
解锁一个User账户并且重置密码
 
在安装和数据库创建阶段,可以解锁和重置多个oracle支持的user账户,如果当时没有选择解锁账户,可以在Users界面点击解锁和重新设定密码。
 
3.Privilege
权限Privileges
 
一共有两种用户权限
System:允许用户在数据库中执行特定动作。
Object:允许用户接入和修改特定对象。
 
权限是执行特定SQl命令和介入其他用户的对象的权限,
 
Sysyem Privileges系统权限:
 
要赋予系统权限,点击编辑用户页面的系统权限按钮,选择列表中提供的合适的权限,点选后点击移动箭头选入选中的系统权限列表。
使用ANY赋予权限意味着权限跨越了schema行,比如,CREATE TABLE权限允许创建表但仅在自己的schema中。SELECT ANY TABLE权限意味着可以选择其他用户拥有的表格。
 
选择admin option 检查盒子可以管理权限并且将系统权限授予其他用户。
 
在授予系统许可之前要谨慎思考安全需求,一些系统特权经常只能给予管理者:
  • RESTRICTED SESSION:这个权限允许用户在数据库处于限制状态下接入。
  • SYSDBA&SYSOPER:这两个权限允许启停恢复数据库和其他管理工作,SYSOPER允许用户执行基本的操作任务,但不能查看其他用户的数据,包括以下几个系统特权:
    • STARTUP and SHUTDOWN
    • CREATE SPFILE
    • ALTER DATABASE OPEN/MOUNT/BACKUP
    • ALTER DATABASE ARCHIVELOG
    • ALTER DATABASE RECOVER(只能做一致性恢复)
    • RESTRICTED SESSION
SYSDBA系统权限增加不一致恢复和删除数据库,富有效率的,SYSDBA系统权限允许一个用户以SYS身份连接数据库。
  • DROP ANY OBJECT
  • CREATE,MANAGE,DROP,and ALTER TABLESPACE
  • CREATE ANY DIRECTORY
  • GRANT ANY OBJECT PRIVILEGE
  • ALTER DATABASE and ALTER SYSTEM
 
Object Privileges对象权限
 
授权方式与系统权限类似,从左栏选定添加到指定对象的右栏。
 
Revoking System Privileges with ADMIN OPTION 使用ADMIN OPTION撤销系统权限【OCP考试出题点】
 
使用GRANT指令来授权的系统权限,可以被REVOKE指令撤销。使用ADMIN OPTION可以对任何数据库user的系统权限进行撤销,撤销者与授权者可以不是同一个人。
 
***当系统权限收回时,没有级联效应。
 
Scenario:
1.DBA使用ADMIN OPTION授予Jeff CREATE TABLE这个系统权限
2.Jeff创建了一个表
3.Jeff授予Emi CREATE TABLE系统权限
4.Emi创建了一个表
5.DBA收回了Jeff的CREATE TABLE系统权限
 
The Result:
Jeff的表仍存在,但不能再创建新的表。
Emi的表仍存在,并且能继续拥有CREATE TABLE系统权限
 
Revoking Object Privileges with GRANT OPTION 使用GRANT OPTION撤销对象权限
 
***当对象权限收回时,有级联效应。
 
1.与DML语句关联的对象权限在收回时产生级联效应,当SELECTED ANY TABLE 授权给一个user,并且user已经创建了使用该表的程序,所有在user的schema中的程序在它们可用之前必须被重新编译。
2.使用GRANT OPTION授权的对象权限在收回时也有级联效应。
 
Scenario
1.Jeff通过GRANT OPTION获得在EMPLOYEES上的SELECT对象权限。
2.Jeff将在EMPLOYEES上的SELECT权限授予Emi 
3.然后,收回Jeff的SELECT权限,此时Emi的权限同样级联影响被收回。
 
4.Role 角色
 
角色带来的好处Benefits of Roles
 
  • 更简单的管理权限:使用角色来简化权限的管理。比起授权同样的权限给几个用户,可以直接给角色授权,再把角色指定给每个用户。
  • 动态管理权限:如果与角色相关联的权限被修改了,所有角色下需要修改权限的用户可以自动马上被修改。
  • 可选择的应用权限:角色可以被enabled和disabled来暂时性的开关权限。enable一个角色同样可以验证某个user是否分派给这个角色。
 
分配权限给角色和分派角色给users
Assigning Privileges to Roles and Roles to Users:
 
大多数系统下,将特定的权限授予每个单独的用户太过消耗时间,而且特别容易出错。Oracle提供了简单和可控的通过角色来授权的管理措施。
 
Roles are named groups of related privileges that are granted to users or to other roles.
 
角色被设计用来简化权限的管理和提高安全性。
 
Role Characteristics:
  • 授予和撤销角色的权限操作与user相同
  • 角色就像系统权限一样可以被users和其他角色来授予和收回。
  • 角色可以同时拥有系统和对象权限
  • 角色可以需要密码来enable
  • 角色被任何人拥有,不在任何schema中
 
预定义角色
 
有几种角色是在数据库创建脚本运行时自动预定义的。CONNECT自动被授权给EM创造的User,在最先数据库版本中,CONNECT角色包含更多权限,比如CREATE TABLE和CREATE DATABASE LINK因为安全原因被删去。
 
  • 注意授权给RESOURCE角色包含授权给UNLIMITED TABLESPACE权限。
 
     功能性角色:
     其他角色保证管理特殊功能在安装时候的创建。比如,XDBADMIN包括管理安装了XML[Extensible Markup Language]构件数据库所需的权限,AQ_ADMINISTRATOR_ROLE提供管理优先级队列的权限。HS_ADMIN_ROLE包括着异构设备所需的权限。不能脱离Oracle的支持来更改已授予这些功能角色的权限,因为可能破坏所需要的功能。
 
创建角色
 
     管理——》Schema——》用户和权限——》角色——》创建
 
角色安全性
 
  • 角色可以非默认                SET ROLE vacationdba
  • 角色可以通过认证来保护
  • 角色可以编程方式来保护
 
为用户分配角色
 
角色是可以分配给用户和其他角色的一系列权限的集合。可以通过角色来管理数据库权限,增加一个角色的权限再将这个角色授权给用户,这个用户就拥有了该角色的权限。
默认情况下,EM自动授权CONNECT角色给新用户,这允许用户连接数据库和在自己的Schema中创建数据库的对象。
 
5.Profile
配置文件和用户
 
用户在任何给定的时间内只能分配一个配置文件。
配置文件:控制资源消耗、管理账户状态和注销密码。
 
配置文件Profiles利用已命名的一系列数据库资源使用限制和实例资源,同样管理账户状态和用户密码的(长度、有效期等)限制。每个用户都被分配了一个配置文件,并且在给定的时间内可能只属于一个配置文件,如果用户当被更改配置文件时已经连接,这些改动会直到他们下次登陆才生效。
默认配置文件Default Profiles服务是作为其他配置文件的基础。
配置文件不能利用用户资源限制除非RESOURCE_LIMIT初始参数设置为TRUE。
当需要设置资源限制时,必须设置数据库系统启动参数RESOURCE_LIMIT,此参数默认值为FALSE
可以使用如下命令来启动当前资源限制:
alter system set RESOURCE_LIMIT=true;
当需要以后启动时也启动限制,必须在init.ora中设置
RESOURCE_LIMIT=true
 
配置文件允许管理员控制以下系统资源:
CPU:CPU资源可限制在每一个单对话和单呼叫基本单元中。
CPU_PER_SESSION:定义了一个SESSION占用的CPU的时间(1/100 秒),当达到这个限制用户不能在此会话中执行任何操作,
此时必须先断开连接,再连接才行。
CPU_PER_CALL :限制每次调用SQL语句期间(parse、execute、fetch)可用的CPU时间总量,单位是百分之一秒。达到限制时
语句以报错结束。不同于CPU_PER_SESSION的是,没达到CPU_PER_SESSION限制,还可以进行新的查询。
可能出现的报错:
ORA-02392 exceeded session limit on CPU usage, you are being logged off
Cause: An attempt was made to exceed the maximum CPU usage allowed by the CPU_PER_SESSION clause of the user profile.
Action: If this happens often, ask the database administrator to increase the CPU_PER_SESSION limit of the user profile.
Network/Memory:每个数据库对话消费着系统存储资源,并且(如果对话并非来自本地用户)使用网络资源。可以定义以下选项:
- 连接时间Connect Time:定义用户自动退出之前的连接时间
- 闲置时间Idle Time:定义用户对话自动退出前闲置状态下的时间。闲置时间只有服务进程可以来计算。不算入账户应用的活动。IDLE_TIME不影响长期运行的查询queries和其他操作。
- 并发会话Concurrent Sessions:定义数据库账户可以最多创建多少并发的会话。
- Private SGA:一个会话允许使用的SGA大小。
Disk I/O:限制单会话和单呼叫等级上的用户数据读取量。
 
6.PW Security
密码安全
 
Implementing Password Security Features
 
账户锁定:在登陆时出连续出错设置账户的自动锁定。
     FAILED_LOGIN_ATTEMPTS:设置锁定前登录尝试错误的次数
     PASSWORD_LOCK_TIME:设置锁定一次持续的时间
 
密码期限和过期:设置密码期限并且锁定SYS SYSMAN DBSNMP账户 来保证EM正常运行。
     PASSWORD_LIFE_TIME:密码有效期
     PASSWORD_GRACE_TIME:密码宽限期
 
密码历史:检查新密码来保证密码没有被一个特定账户重复使用。
     PASSWORD_REUSE_TIME:设置用户不能重复使用一个密码的日期
     PASSWORD_REUSE_MAX:设置当前密码可以被重复使用的最大次数
两个参数互斥
 
密码复杂度认证:
 
创建密码配置文件
 
删除密码profile
     drop profile profile_name cascade;
 
支持的密码认证功能:VERIFY_FUNCTION
 
要求密码有以下限制:
     - 最短长度四字节
     - 密码不能与用户名相同
     - 至少有一个字母、一个数字和一个特殊字符
     - 密码与之前的密码至少有三个字母的不同
 
当用户被创建时,会被分配默认DEFAULT配置文件,除非其他数据文件已特殊指定。
 
7.Quota
配额
 
给用户分配Quota配额
 
没有UNLIMITED表空间系统权限的用户在表创造表空间对象之前必须给与一个配额。
 
Quota是给定的表空间中用来分配额区域。但是默认,用户开始并没有任何表空间限额。你可以有三种选项来为一个用户提供表空间上的限额
 - Unlimited:允许用户最大限度来使用表空间内的空间
 - Value:规定用户可用的空间大小。并不保证空间已为用户准备好,这个数值可以大于或小于当前可用的空间。
 - UNLIMITED TABLESPACE system privilege: 授权时要注意,该系统权限超越所有单独的表空间限额并且赋予用户在整个表空间包括SYSTEM和SYSAUX的无限制的限额。
     给RESOUSE角色组授权时要注意。
 
绝对不能把SYSTEM和SYSAUX表空间的Quota提供给用户。,通常来讲, 只有SYS和SYSTEM用户可以在SYSTEM和SYSAUX表空间上创建对象。你并不需要已分配临时表空间和重做表空间的限额。、
 
  • Oracle实例何时使用限额?
          当用户创建或扩展一个segment段时
  • 哪种活动不会影响限额
          不使用已分配的表空间,比如创建视图或者使用临时表空间。
  • 限额何时补充
          当用户拥有的对象通过PURGE条款删除或者对象在回收站自动purge。
 
总结:
 
在 Lesson 6 应该学会以下操作:
 
     
  • 创建和管理数据库用户组
          - 用户认证
          - 分配默认的存储空间(表空间)
  • 授予和剥夺权限
  • 创建和管理角色
  • 创建和管理配置文件
          - 实施标准密码安全特征
          - 控制用户使用的资源
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

转载于:https://www.cnblogs.com/coderplay/p/6392375.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值