Oracle 用户与概要文件

2012-09-01 15:05:47| 分类: Oracle | 标签:用户与概要文件 |举报 |字号大中小 订阅

用户管理看上去简单其实也是最常出现问题的一个环节,因为它不仅包括创建用户与授权,还包括安全策略与资源管理。在大型应用,资源的管理是对DBA的一个考验。
默认给用户分配的是DEFAULT概要文件,将该文件赋予了每个创建的用户。但该文件对资源没有任何限制,因此管理员常常需要根据自己数据库系统的环境自行建立概要文件。


1、用户的创建
可以使用create user命令进行用户的创建,如下:
SQL> create user djp01 identified by djp2012
2 /
User created.
SQL>

说明:创建的用户名为djp01,用户 identified by指定用户的密码,密码为djp2012。上述的语句中没有对用户djp01指定永久表空间与临时表空间,这时,Oracle将为新创建的用户指定一个默认的永久表空间与一个临时表空间。如下:
SQL> select default_tablespace,temporary_tablespace
2 from dba_users
3 where username = upper('djp01')
4 /
DEFAULT_TABLESPACE
------------------------------------------------------------
TEMPORARY_TABLESPACE
------------------------------------------------------------
USERS
TEMPTBSGRP
SQL>

当创建一个新用户后,必须给用户授予必要的权限以后,用户才可以进行工作。对于djp01用户,还不能连接到数据,因为它不具有相关的权限。要想使用户连接到数据库,必须给它授予连接权限,如下:
SQL> conn djp01/djp2012
ERROR:
ORA-01045: user DJP01 lacks CREATE SESSION privilege; logon denied
Warning: You are no longer connected to ORACLE.
SQL>

SQL> grant create session to djp01
2 /
Grant succeeded.
SQL> conn djp01/djp2012
Connected.
SQL>

说明:当给用户djp01授予连接权限时,该用户成功连接。对于连接,Oracle还提供了一个连接的角色 connect。可以给用户授予连接角色。下面我们查看用户djp01在表空间上的使用情况:
SQL> select tablespace_name,bytes/1024/1024 as use_size
2 from dba_ts_quotas
3 where username = upper('djp01')
4 /
no rows selected
SQL>

我们发现,用户djp01对表空间users没有任何配额。下面我们试卷在用户djp01下创建表,
SQL> create table t
2 (
3 x number,
4 y varchar2(10)
5 )
6 /
create table t
*
ERROR at line 1:
ORA-01031: 权限不足
SQL>

SQL> grant create table to djp01
2 /
Grant succeeded.
SQL>

SQL> create table t
2 (
3 x number,
4 y varchar2(10)
5 )
6 /

说明:当我们在djp01用户下创建表对象时,提示无权限,之后授予相应的权限并重新创建,发现,该语句一直处于挂起状态。
因为,用户djp01在表空间users中无一定的配额。(在无配额时,会出现“ORA-01950”错误,但在11g中缺于挂起状态。这个根据实际环境来分析)。下面我们给用户djp01在表空间users分配一定的配额并创建:
SQL> alter user djp01
2 quota 100M on users
3 /
User altered.
SQL>

SQL> create table t
2 (
3 x number,
4 y varchar2(10)
5 )
6 /
Table created.
SQL>

这时,我们发现,可以成功创建。下面我们再查看用户djp01在表空间上的使用情况:
SQL> select tablespace_name,bytes/1024/1024 as quota_size
2 from dba_ts_quotas
3 where username = upper('djp01')
4 /
TABLESPACE_NAME QUOTA_SIZE
------------------------------------------------------------ ----------
USERS .0625
SQL>

我们也可以在创建用户的时候指定具体的表空间及配额,如下:
SQL> create user djp02 identified by djp2012
2 default tablespace imtabdata
3 temporary tablespace temptbsgrp
4 quota 200M on imtabdata
5 /
User created.
SQL>

说明:使用default tablespac指定用户djp02默认永久表空间imtabdata,temporary tablespace指定临时表空间或临时表空间组(关于临时表空间组请参考http://blog.163.com/donfang_jianping/blog/static/13647395120127252910384/)。使用quota为用户在指定的表空间分配配额。
2、用户的更改与删除
可以使用altter user命令来更改用户,可以更改用户的项为:
用户的密码
用户的表空间
用户的表空间配额
指派概要文件和默认角色(概要文件参见下文)
如:我们更改用户djp01的密码,
SQL> alter user djp01 identified by djp01
2 /
User altered.
SQL>

其他的更改项与更改密码类似,我这里不一一不列举,有需要的请查阅相关资料或给我留言。
如果使用alter user命令修改密码,那么必须具有alter user权限或DBA更改。如果用户自己更改,可以使用SQL*Plus下的password命令即可,如下:
SQL> password
Changing password for DJP01
Old password:
New password:
Retype new password:
Password changed
SQL> conn djp01/djp2012
Connected.
SQL>

密码成功更改。
关于用户的删除,可以使用drop user命令进行删除,如下:
SQL> drop user djp01;
drop user djp01
*
ERROR at line 1:
ORA-01922: 必须指定 CASCADE 以删除 'DJP01'
SQL>

我们发现使用drop user对用户djp01进行删除,抛出一个错误。这是因为,djp01用户下拥有对象,不能进行简单删除。如果确实要进行删除,可以加上cascade命令即可。如下:
SQL> drop user djp01 cascade;
User dropped.
SQL>

这时用户连同它的对象一起被删除。如果用户下没有具体的对象,使用drop user <username >删除即可。
3、概要文件
我们创建了一个用户,为其授予权限,那么就可以该用户就可以使用。如果一个用户疯狂地使用资源,那么就会造成数据库资源的缺乏或者是一个不会法的使用者疯狂地对一个用户的密码进行破解,那么很可能会造成信息的泄露与丢失。
为些,我们可以在Oracle中使用概要文件(profile)来进行资源的限制与密码相关特性的设置。当我们创建一个用户时,如果不指定相应的概要文件,那么,Oracle将为其指定一个默认的概要文件。如下:
SQL> select profile
2 from dba_users
3 where username = upper('djp02')
4 /
PROFILE
------------------------------------------------------------
DEFAULT
SQL>

说明:用户djp02所使用的概要文件为default。下面我们查看概要文件default的特性,如下:
SQL> select distinct resource_name,limit
2 from dba_profiles
3 where profile = upper('default')
4 /
RESOURCE_NAME
----------------------------------------------------------------
LIMIT
--------------------------------------------------------------------------------
PASSWORD_LOCK_TIME
1
CONNECT_TIME
UNLIMITED
IDLE_TIME
UNLIMITED
RESOURCE_NAME
----------------------------------------------------------------
LIMIT
--------------------------------------------------------------------------------
PASSWORD_GRACE_TIME
7
PRIVATE_SGA
UNLIMITED
LOGICAL_READS_PER_SESSION
UNLIMITED
RESOURCE_NAME
----------------------------------------------------------------
LIMIT
--------------------------------------------------------------------------------
LOGICAL_READS_PER_CALL
UNLIMITED
FAILED_LOGIN_ATTEMPTS
10
PASSWORD_VERIFY_FUNCTION
NULL
RESOURCE_NAME
----------------------------------------------------------------
LIMIT
--------------------------------------------------------------------------------
CPU_PER_SESSION
UNLIMITED
SESSIONS_PER_USER
UNLIMITED
PASSWORD_LIFE_TIME
180
RESOURCE_NAME
----------------------------------------------------------------
LIMIT
--------------------------------------------------------------------------------
PASSWORD_REUSE_MAX
UNLIMITED
PASSWORD_REUSE_TIME
UNLIMITED
CPU_PER_CALL
UNLIMITED
RESOURCE_NAME
----------------------------------------------------------------
LIMIT
--------------------------------------------------------------------------------
COMPOSITE_LIMIT
UNLIMITED
16 rows selected.
SQL>

通过查看发现,概要文件default对大部分参数的值几乎都是unlimited。如果给用户指定默认的要件文件,最终可能会出现源源缺乏问题。下面我们总体看一个概要文件的创建与使用:

SQL> create profile miser
2 limit
3 connect_time 200
4 idle_time 60
5 sessions_per_user 2
6 failed_login_attempts 3
7 /
Profile created.
SQL>

说明:我们创建的概要文件为miser(中文翻译为“守财奴”,我时常看一些大师级写的书,他们对名字的取法很讲究,我这里也用一下),connect_time指出数据库允许最大连接120秒,idle_time指出如果用户空闲的时间超出60秒,那么用户将退出;

sessions_per_user指出限制用户只能有两个会话;failed_login_attempts指出如果用户登录三次没有成功,那么,该用户将被锁住。概要文件可以在用户创建时指定,也可以在用户创建后指定,例子如下:
SQL> create user djp01 identified by djp2012
2 default tablespace imtabdata
3 temporary tablespace temptbsgrp
4 quota 100M on imtabdata
5 profile miser
6 /
User created.
SQL>

说明:我们在第4行使用profile关键字指定概要文件为miser。我们也可以用如下的试指定:
SQL> alter user djp01
2 profile miser
3 /
User altered.
SQL>

这时,用户djp01已经拥有了概要文件中的特性。下面我们简单的做个测试,如下:
SQL> conn djp01/aaa
ERROR:
ORA-01017: invalid username/password; logon denied
Warning: You are no longer connected to ORACLE.
SQL> conn djp01/bbb
ERROR:
ORA-01017: invalid username/password; logon denied
SQL> conn djp01/ccc
ERROR:
ORA-01017: invalid username/password; logon denied
SQL> conn djp01/ddd
ERROR:
ORA-28000: the account is locked
SQL> conn djp01/2012
ERROR:
ORA-28000: the account is locked
SQL>

我们发现当用户djp01登录三次不成功时,该用户将会被锁住。当用户被锁后,我们可以使用超级用户将其解锁,如下:
SQL> alter user djp01 account unlock
2 /
User altered.
SQL> conn djp01/djp2012
Connected.
SQL>

解锁后,可以成功连接。

有关于概要文件的参数,可以分为两类,一类为资源类,另一类为密码类。下面我们分别进行介绍:

(1)资源类
connect_time:指定一个会话能保持连接到数据库的总时间
cpu_per_call:限制事务内每个调用使用CPU的时间。
cpu_per_sessin:限制每个会话内使用CPU的时间。
sessions_per_time:限制用户可以打开并发的最大会话数。
idle_time:限制用户的最大空闲时间。
logical_reads_per_session:限制数据块读取的总数目。
logical_reads_per_call:限制每个会话调用总的逻辑读取数。
private_sga:指定一个在SGA的共享池组件中分配的空间限额(仅适用于共享服务器)。
composite_limit:对资源设置使用一个总的限制。Oracle考虑用四个参数来计算加权的composite_limit。分别为:cpu_per_session,logical_reads_per_sessions,connect_time,private_sga。可以使用alter resource cost来设置.。
(2)密码类
failed_login_attempts:指用户被锁之前可以尝试的最大登录数。
password_life_time:指定使用特定密码的时间限制,如果超出此时间间隔,那么密码将过期。
password_grace_time:设置一个时间段,在此时间段内将发出一个密码过期警告。
password_lock_time:设置用户被锁定的天数,过了此天数,用户将自行解锁。
password_reuse_time:指定重新使用密码要经过多少天。
password_reuse_max:指定重新使用某个特定密码前,要经过多少次修改。
passwrod_verify_function:此参数允许指定Oracle提供的密码验证函数来建立自动密码验证。
参数稍多一些,对于这些参数,我建议不要去背,只要知道意义就可以了,如果有某个参数忘了,可以查看dba_profiles字典。

可以使用alter profile来更改概要文件,如下:

SQL> alter profile miser
2 limit
3 password_life_time 30
4 password_grace_time 25
5 /
Profile altered.
SQL>

如果在概要文件中使用资源的设置,那么,如是使其生效,必须更改初始化参数resource_limit为true,此参数的默认值为false。
可以使用drop profile进行删除,如下:
SQL> drop profile miser
2 /
drop profile miser
*
ERROR at line 1:
ORA-02382: 概要文件 MISER 指定了用户, 不能没有 CASCADE 而删除
SQL>

提示删除出错,这是因为概要文件miser指定了用户,如果没有指定用户,可以使用该命令进行删除。如果指定了用户,要想删除,可以使用如下删除方式:
SQL> drop profile miser cascade
2 /
Profile dropped.
SQL>

成功删除。
概要文件多数用来密码的管理,关于资源的管理,Oracle提供了一个更为高级的管理工具——Database Rsource Manager,在以后的文章我会介绍该工具的使用。

转载于:https://www.cnblogs.com/caroline4lc/p/3974454.html

oracle_用户与概要文件相关推荐

  1. oracle查询用户的概要文件,Oracle用户、概要文件、权限及角色实例

    用户.概要文件.权限及角色实例 1.创建角色change SQL> create role  change identified by zhubajie; Role created SQL> ...

  2. Oracle入门(十)之概要文件

    一.概要文件作用 (1)功能  控制用户对系统和数据库资源的使用,保证系统正常运行,防止用户消耗大量资源造成的系统性能下降. (2)方法  设置预定义资源参数. 这些参数包含在概要文件中,如果没有为用 ...

  3. 【Oracle】创建概要文件

    任务1:创建profile 创建概要文件my_profile 1)密码复杂性要求:启用: 2)密码长度最小值:8位: 3)密码错误输入三次,锁定账户,2分钟后自动解锁 任务2: 1)修改siebel用 ...

  4. oracle 概要文件不存在,oracle 概要文件 - kecy1217的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...

    概要文件用于限制由用户使用的系统和数据库资源,并可以对口令进行管理.如果在创建用户时没有指定概要文件, 将使用默认的概要文件. 1.使用create profile命令创建概要文件 语法格式如下: c ...

  5. Oracle——17概要文件

    2019独角兽企业重金招聘Python工程师标准>>> 概要文件用于限制由用户使用的系统和数据库资源,并可以对口令进行管理.如果在创建用户时没有指定概要文件, 将使用默认的概要文件. ...

  6. WebSphere创建概要文件

    在上一篇博客Websphere8.5.5安装教程中我们已经成功的安装了websphere,那么基础软件都安装完毕后,我们就可以开始创建概要文件了. 一.创建概要文件 进入"/opt/IBM/ ...

  7. asmi lpar_管理LPAR启动顺序并使用系统概要文件验证资源分配

    为什么使用系统配置文件? 使用硬件和电源冗余,您可能会认为计划系统中断是多余的. 毕竟,IBM Power Systems具有弹性. 即便如此,仍有原因导致服务器宕机. 理想情况下,只有在计划内停机时 ...

  8. Django之用户上传文件的参数配置

    Django之用户上传文件的参数配置 models.py文件 class Xxoo(models.Model):title = models.CharField(max_length=128)# me ...

  9. 【Android 逆向】Android 系统中文件的用户和分组 ( 文件所有者与分组 | /sdcard/ 的文件分组 | /data/ 目录分析 | 用户类型 )

    文章目录 一.文件所有者与分组 二./sdcard/ 的文件分组 三./data/ 目录分析 四.用户类型 一.文件所有者与分组 使用 ls -l 命令 , 查看 Android 系统根目录 , 下图 ...

  10. python查看文件夹文件的所有权限,Python判断某个用户对某个文件的权限

    在Python我们要判断一个文件对当前用户有没有读.写.执行权限,我们通常可以使用os.access函数来实现,比如: # 判断读权限 os.access(, os.R_OK) # 判断写权限 os. ...

最新文章

  1. XCode5 真机调试及发布应用
  2. 机器学习如何解决问题
  3. android手机存储速度慢,安卓内存泄露后台应用被迫关闭、系统速度慢的解决方法...
  4. 『计算机视觉』Mask-RCNN_锚框生成
  5. 得物技术网络优化-CDN资源请求优化实践
  6. P1434 [SHOI2002]滑雪【记忆化搜索DP】
  7. 【STM32】时钟系统及其结构原理
  8. OS X: Messages Agent wants to use the login keychain
  9. R语言导入数据文件(数据导入、加载、读取)、使用read.table函数导入逗号分割文件CSV(Comma Delimited Text File)
  10. springboot项目配置视图解析器无效的问题
  11. SQL计算两个日期之间的工作日天数,去除法定节假日和周末
  12. LumaQQ源码,注解.下载的用户看一下.
  13. hyper graph 超图
  14. 计算机机房电池后备时间规范,IDC机房UPS电池备用时间一般是多长时间?
  15. 手机上的磁性传感技术
  16. 大数据产业 能否带领内蒙古跨越资源陷阱?
  17. 使用javafx建立简单的酒店客房管理系统(二):简单登陆,连接数据库,修改数据
  18. 如何快速对接淘宝开放平台API接口(淘宝店铺订单明文接口,淘宝店铺商品上传接口,淘宝店铺订单交易接口)
  19. 惠普Linux系统启动光驱,HP ProLiant MicroServer Gen8使用Super GRUB2 Disk从TF卡启动光驱位安装的Debian 8.3...
  20. 用计算机处理图像属于啥技术,计算机图像处理技术

热门文章

  1. Markdown缩进控制
  2. shuipFCMS二次开发记录一
  3. 正确的序号及标点使用格式(参考文)
  4. 电脑网络问题,IP释放,重新获取IP
  5. 请别再使用 SimpleDateFormat 格式化时间了,DateTimeFormatter 更出色!
  6. 达梦sql优化实践5
  7. react 控制台 Maximum call stack size exceeded 如何解决
  8. 无线通信基础知识13:数字通信之信道编码
  9. P3P求解相机姿态原理介绍
  10. 高并发高可用高可靠性的千人千面项目技术架构分析