一、用户账户属性
1、用户名
由(字母、数字 $ _)组成,字符数小于30个。不能为保留字。字母不区分大小写。用户名一经创建,不允许修改。如果必须更改它,必须先删除账户,再创建一个。
注:双引号中指定用户名,不遵循执行规则(长度除外)
SQL>create user peenboo identified bypassword;
SQL>create user "peenboo#%" identified by pa55w0rd;
2、默认表空间和配额
2.1 每个用户账户都有默认表空间。用户创建的任何模式对象(如表或视图等)将保存在此表空间中。除非在创建对象的时候指定另一个表空间,否则将被放在默认表空间中。
可以在创建数据库时设置默认表空间,也可以通过以下语法进行更改:
ALTERDATABASE DEFAULT TABLESAPCE tablespacename;
注:如何创建数据库时没有指定默认表空间,则将SYSTEM设置为默认表空间。
2.2 配额(quota)是表空间中为用户的模式对象分配的空间量。
SQL>select username,DEFAULT_TABLESPACE,temporary_tablespace from dba_users
where username='PEENBOO';
SQL>alter user peenboo quota 10m on users;
SQL>alter user peenboo quota unlimited onexample;
SQL>select tablespace_name ,bytes, max_bytes from dba_ts_quotas;
3 临时表空间(temporary tablespace)
临时表空间的管理完全自动完成。临时表空间中的对象并不归用户真正拥有,而是属于SYS用户,SYS用户拥有所有表空间上的无限配额。
更改用户的临时表空间:
ALTERUSER username temporary tablespace tablespace_name;
4 配置文件
配置文件是管理口令和资源的有效方法,但实际上只适用于每个应用程序都有自己的数据库用户账户的环境。
5、账户状态
通过 DBA_USERS的 ACCOUNT_STATUS可以看到每个用户账户的状态。
OPEN --打开(可用状态)
LOCKED --锁定(DBA故意锁定,任何用户无法连接到该账户)
EXPIRED --过期(表示口令的生命周期已经终结)
EXPIRED&LOCKED--不仅被锁定,而且其口令已经过期
EXPIRED(GRACE) --"正常时间段生效",口令在生命周期结束时并立即过期,可以配置一个正常时间段,此间可以修改口令。
LOCKED(TIMED) --由于登录尝试失败,账户已被锁定
EXPIRED&LOCKED(TIMED) --过期且超时锁定
EXPIRED(GRACE)&LOCKED --正常过期且锁定
EXPIRED(GRACE)&LOCKED(TIMED) --正常过期且超时锁定
--锁定和解锁的语法如下:
ALTERUSER username ACCOUNT LOCK;
ALTERUSER username ACCOUNT UNLOCK;
--强制用户下次尝试登录时更改口令:
ALTERUSER username PASSWORD EXPIRE;
二、身份验证方法
1、操作系统和口令文件身份验证
要为账户进行操作系统和口令文件身份验证,必须为用户授权(SYSDBA or SYSOPER)权限:
GRANT [sysdba | sysoper] To username;
使用sqlplus进行登录时,语法连接如下:
CONNECT username/password [@db_alias] AS [ sysdba | sysoper]
注:要确定为谁授予了SYSDBA和SYSOPER权限,可以通过V$PWFILE_USERS进行查询。
必须对所有用户会话进行身份验证。不存在“匿名登录”的说法。
2、口令身份验证
SQL> CONNECT username/password [@db_alias]
无论更改自己还是其他人的口令,语法都为:
ALTER USER usernameIDENTIFIED BY password;
3、外部身份验证
在取得AdvancedSecurity 认证,可以使用外部服务Kerberos服务器、RADIUS服务器或Windows环境中的Windows本地省份验证服务。
如果未启用AdvancedSecurity详细,则唯一可以使用的外部身份验证是操作系统身份验证。此项技术使用与操作系统用户账户同样的名称创建ORACLE账户,但前面加上了OS_AUTHENT_PREFIX实例参数指定的字符串。字符串默认为OPS$。也可通过以下方式查询:
SQL>select value from v$parameter where name = 'os_authent_prefix';
若在linux或Unix上,更为简单,如用户名为peenboo
SQL>create user ops$peenboo identified by externally;
SQL>grant create session to ops$peenboo;
SQL>sqlplus /
4、全局身份认证(global authentication )
使用LDAP服务器,全局用户(global user)是在LDAP 目录中定义的用户。
有两种全局身份认证技术:
可以在目录,也可以在数据库中定义用户。
只能在目录中定义用户。
三、创建账户
1 CREATE USER 必须包含两个必需参数:用户名和身份验证方法。
SQL>createuser scott identified by tiger
Default tablespace user temporary tablespace temp
Quota100m on users, quota unlimited on example
Profiledeveloper_profile
Password expire
Accountunlock;
2 除了名称以外,可以通过ALTER USER 命令调整账户上的每个属性。
(1)修改口令
SQL> alter user scott identified by lion;
(2)修改默认表空间和临时表空间
SQL> alter user scott default tablespacetbs_peenboo temporary tablespace pbtemp;
(3)修改配额
SQL> alter user scott quato unlimited ontbs_peenboo, quato 0 on users;
(4)修改配置文件
SQL>alter user scott profile prod_profile;
(5)强制更改口令
SQL > alter user scoot password expire;
(6)锁定用户
SQL> alter user scott account lock;
(7)已经创建用户,需要删除重建
SQL> drop user scott;
(8)用户为非空用户,需要以下命令:
SQL> drop user scott cascade;
PUBLIC用户,是一个概念用户,如果要将权限授予每个用户,可将权限授予PUBLIC用户。