ORACLE用户管理包括: 创建用户、修改用户、删除用户
创建用户的脚本命令是CREATE USER语句,创建用户一般要由DBA或拥有该系统权限的用户来执行。那么我们首先来创建一个名为:kerry的用户(账号)
IDENTIFIED BY K123456
DEFAULT TABLESPACE USERS
QUOTA 10M ON USERS
TEMPORARY TABLESPACE TEMP
创建用户以后,我们可以通过下面的脚本来查看用户信息
TEMPORARY_TABLESPACE, PROFILE
FROM DBA_USERS WHERE USERNAME ='KERRY'
IDENTIFIED BY 指定用户密码
DEFAULT TABLESPACE 指定用户默认表空间,如果不指定表空间,ORACLE会自动在默认表空间为这些对象分配空间。
QUOTA 为用户指定表空间配额。即用户对象在表空间所占用的最大空间。
如果你用下面脚本创建用户
IDENTIFIED BY K123456
对比你会发现,这和上面脚本创建的用户信息一致。如果不指定默认表空间、临时表空间,系统会默认为你指定相应的表空间。当然你也可以用下面的脚本查看一些相关信息
那么如何查看用户指定表空间配额信息呢?暂时还不清楚这些信息放在哪个字典视图、表里面。
IDENTIFIED BY 123456
DEFAULT TABLESPACE USERS
QUOTA 10M ON USERS
TEMPORARY TABLESPACE TEMP
--ORA-00988: 口令缺失或无效。
这是因为PROFILE里面有对用户密码复杂度的一些控制。你可以通过下面脚本查看这个用户使用的是哪个PROFILE文件
在$ORACLE_HOME\RDBMS\ADMIN\utlpwdmg.sql
我的电脑目录是D:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\utlpwdmg.sql, 你可以看到一些密码的复杂度设置控制
里面有这样一条限制
所以刚才创建用户才会报错。
创建用户成功后,你用你新用户登录,此时会报错,你必须给新用户授予相应权限,如下所示:
ERROR:
ORA-01045: user KERRY lacks CREATE SESSION privilege; logon denied
SQL> connect SYSTEM/kerry123456
已连接。
SQL> grant create session, create table to kerry;
授权成功。
SQL> create table user1(id number(10), username varchar2(32)) tablespace users;
修改用户
修改用户涉及以下一些方面
1:修改用户密码
2:修改表空间配额
3:锁定用户账户
4:解锁用户账户
5:修改默认表空间
6:修改临时表空间
SQL> alter user kerry identified by kerry123456;
用户已更改。
kerry账户自己修改自己密码,而DBA账户可以修改任何用户密码
2:修改表空间
SQL> connect kerry/kerry123456
已连接。
SQL> alter user kerry quota 100M on users;
alter user kerry quota 100M on users
*
第 1 行出现错误:
ORA-01031: 权限不足
SQL> connect system/kerry123456;
已连接。
SQL> alter user kerry quota 100M on users;
用户已更改。
可以看到kerry用户自己修改自己的表空间配额时出现权限不足错误。
锁定用户账号
SQL> ALTER USER kerry ACCOUNT LOCK;
User altered
解锁用户账号
SQL> ALTER USER kerry ACCOUNT UNLOCK;
修改默认表空间时不能指定临时表空间为默认表空间,否则会报错。
修改临时表空间
修改临时表空间时不能指定表空间为临时表空间,否则会报错。