Oracle用户管理概述

2014-11-24 18:15:03 · 作者: · 浏览: 0

user, user account, schema的区别


A user isa person who connects to a user account by establishing a session against theinstance and log on with the user account name


A schemais a set of objects owned by a user account.


用户账号的属性


1、用户名(必须)


2、认证方法(必须)


3、默认表空间


4、表空间的配额


5、默认临时表空间


6、用户的配置文件


7、用户账号的状态


用户名必须以字母开头,不能超过30个字符,可以包含字母,数字,$ 和下划线_,并且不能使用保留字;字母是大小写敏感的,但是存储的时候都会存储为大写。这些规则可以通过双引号打破;


sql> create user"john%#" identified by pa55w0rd;


用户名一旦创建就不允许修改,除非你把用户删掉重建,但是这个相当危险,因为你删除用户的同时会删除其所有对象;


设置默认表空间:


设置整个数据库的默认表空间:ALTER DATABASE DEFAULT TABLESPACE tablespacename;如果没有指定的话,默认的是SYSTEM表空间;


--查看用户的默认表空间和临时空间


selectusername,default_tablespace,temporary_tablespace from dba_users whereusername='SJ';


配额是一个用户其拥有的对象在表空间中可以占用的容量;


--更改一个用户在表空间中的配额


alter user SJ quota500M on sj;


--将一个用户在表空间中的配额更改为无限制


alter user SJ quotaunlimited on sj;


--查看用户在表空间中的配额情况


selecttablespace_name,bytes,max_bytes from dba_ts_quotas where username='SJ';


--查看整个数据库的默认表空间和默认临时表空间


selectproperty_name,property_value from database_properties


where property_namelike '%TABLESPACE';


临时表空间:


当一个session进行某个操作时需要的内存容量超过了该session的PGA容量,那么这个时候session就会用到temporary tablespace;


使用临时表空间的操作包括:


1、行排序


2、表连接


3、构建索引


4、使用临时表


临时表空间的空间管理时系统自动进行的


用户不需要在临时表空间上分配配额,因为临时表空间的所有对象都属于SYS,SYS用户在所有表空间上都有unlimited的配额;


--更改用户的临时表空间


ALTER USER username TEMPORARYTABLESPACE tablespacename;


当有大量用户使用同一个用户账户的时候,就会造成临时表空间的瓶颈,这个时候可以为每个账号分配自己的临时表空间



配置文件:Profile


配置文件的主要作用:控制密码的设置格式并且限制用户对资源的占用情况;



用户账号状态:


1、OPEN


2、LOCKED


3、EXPIRED


4、EXPIRED&LOCKED


5、EXPIRED(GRACE)


6、LOCKED(TIMED)


7、EXPIRED&LOCKED(TIMED)


8、EXPIRED(GRACE)&LOCKED


9、EXPIRED(GRACE)&LOCKED(TIMED)



ALTER USER username ACCOUNT LOCK;


ALTER USER username ACCOUNTUNLOCK;


ALTER USER username PASSWORDEXPIRE;



认证方法


1、操作系统认证:sysdba/sysoper


2、密码文件认证: sysdba/sysoper


3、密码认证


4、external 认证


5、global 认证 LDAP directory server


--如果要查看哪些用户拥有sysdba/sysoper权限,可以查看V$PWFILE_USER视图;


select * fromv$pwfile_users;


还有一种权限也很特别SYSASM,这个权限是在ASM实例中使用的;


SYS用户不允许使用密码认证方式进行连接,它只能使用密码文件方式,操作系统方式和LDAP认证方式;


在建立连接时,密码在网络上传输的时候必须使用AES加密算法加密,对于其他会话内容是不提供加密的,如果需要加密,需要 AdvancedSecurity Option的支持;


SYSTEM用户可以更改其他用户的密码:


ALTER USER usename IDENTIFIED BYpassword;


外部认证:


If theAdvanced Security Option has been licensed , then the external service can beKerberos server, a RADIUS server, or inthe Windows native authentication


Without the Advanced security Option, the only form of external authenticationthat can be used is operating system authentication;


selectvalue from v$parameter where name='os_authent_prefix';


在linux或unix环境中创建外部操作系统认证的方法很简单,假定系统上有一个系统用户为cedar,


在Oracle需要以下两步:


createuser ops$cedar identified externally;


grantcreate session to ops$cedar;


在windos环境中,假定用户名为cedarfan 所在的域为DBA,那么在Oracle中需要如下的语句


createuser "OPS$DBA\CEDAR FAN" identified externally;


GlobalAuthentication


Anemerging standard for identity management makes user of LDAP servers




管理用户账号:


--创建用户账号


create user sjidentified by sj


default tablespace sjtemporary tablespace temp


quota 500M onsj,quota unlimited on users


profile test_frofile


password expire


account unlock;


--删除用户


drop user sj --这个命令只有在该用户没有任何对象的情况下才能执行成功


drop user sjcascade;--这个命令可以先删除对象,然后再删除用户