Oracle用户管理概述


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;

Thetechnique is to create an Oracle user account with the same name as theoperating system user account but prefixed with a string specified by theinstance parameter OS_AUTHENT_PREFIX

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;--这个命令可以先删除对象,然后再删除用户

相关内容