管理用户
一、默认临时和永久表空间
可以在数据库指定默认的临时表空间和默认的永久表空间,这样在没有为用户指定默认临时表空间和默认永久表空间时,使用它们作为用户的默认临时表空间和默认永久表空间。当然也可以在创建用户时指定它们或者创建用户之后更改它们。
更改数据库默认临时表空间和默认永久表空间:
alter database default tablespace tbs_name;
alter database default temporary tablespace temp_tbs_name;
查询数据库的默认临时表空间和默认永久表空间
select property_value from database_properties
where property_name='DEFAULT_PERMANENT_TABLESPACE';
select property_value from database_properties
where property_name='DEFAULT_TEMP_TABLESPACE';
二、创建用户
create user user_name identified by password --这里仅说明用户使用数据库验证,至于其他的验证方法以后再写。
[default tablespace tbs_name] --指定用户默认永久表空间
[temporary tablespace temp_tbs_name] --指定用户默认临时表空间
[quota {nm |unlimited} on tablespace_name] --指定用户在某个表空间上的配额,unlimited为不受限制,可以使用表空间所有可用空间。
[quota ...
...] --可以使用quota指定用户在多个表空间上配额
[profile profile_name] --指定用户的概要文件
[password expire] --指定用户的初始密码是否过期
[account {unlock | lock}] --指定用户是否锁定
也可以在为用户分配权限时创建用户,比如:grant create session to user_name identified by password;
创建用户之后仍然不能登录数据库,至少需要create session权限:grant create session to user_name;
如果不想让用户在数据库上进行任何操作而不想删除用户模式下的对象,可以收回create session权限:revoke create session from user_name;
新创建的用户要想创建不仅需要相应的权限,而且需要在表空间上的配额:alter user user_name {quota nm | unlimited} on tablespace_name;
如果不想让用户创建任何对象,其中一个办法是更改用户在所有表空间上的配额为0:alter user user_name quota 0 on tablespace_name;
当用户在表空间没有配额时,用户的原有对象呗保留,但不能增大,也不能创建新对象。
用户具有unlimited tablespace权限,就可以使用任何表空间的可用空间:grant unlimited tablespace to user_name;
用户在自己创建的表空间上可以使用任何可用空间。
使用user_ts_quotas查询用户的在表空间上配额。
三、更改用户
使用alter user完成下列工作
1、更改用户密码:alter user user_name identified by new_password;
在sql*plus上也可以使用password修改用户密码:a、修改自己用户密码 sql>password --要求提供原密码
b、修改其他用户密码sql>password user_name --要求具有alter user权限,不要求提供user_name用户的原密码。
2、更改用户的默认表空间:alter user user_name default tablespace tablespace_name;
3、更改用户的默认临时表空间:alter user user_name temporary tablespace tem_tbs_name;
4、更改用户在表空间上的配额:alter user user_name quota {nm | unlimited} on tablespace_name
5、更改用户的概要文件:alter user user_name profile profile_name
6、锁定/解锁用户:alter user user_name account {lock | unlock};
7、使用户密码过期:alter user user_name password expire;
8、更改用户默认角色:alter user user_name default role role_name;
四、删除用户
1、删除用户:用户没有对象 drop user user_name;
2、删除用户:用户有对象:drop user user_name cascade;
如果用户有对象,而不确定这些对象是否还有用,可以先不删除,而是收回create session权限。
如果删除用户,其对象不会进入回收站,而是直接删除。