创建用户
oracle中创建用户语法如下:
CREATE USER username IDENTIFIED BY password
OR IDENTIFIED EXETERNALLY
OR IDENTIFIED GLOBALLY AS ‘CN=user’
[DEFAULT TABLESPACE tablespace]
[TEMPORARY TABLESPACE temptablespace]
[QUOTA [integer K[M] ] [UNLIMITED] ] ON tablespace
[,QUOTA [integer K[M] ] [UNLIMITED] ] ON tablespace
[PROFILES profile_name]
[PASSWORD EXPIRE]
[ACCOUNT LOCK or ACCOUNT UNLOCK]
其中
CREATE USER username:用户名,一般为字母数字型和“#”及“_”符号。
IDENTIFIED BY password:用户口令,一般为字母数字型和“#”及“_”符号。
IDENTIFIED EXETERNALLY:表示用户名在操作系统下验证,该用户名必须与操作系统中所定义的用户名相同。
IDENTIFIED GLOBALLY AS ‘CN=user’:用户名由Oracle安全域中心服务器验证,CN名字表示用户的外部名。
[DEFAULT TABLESPACE tablespace]:默认的表空间。
[TEMPORARY TABLESPACE tablespace]:默认的临时表空间。
[QUOTA [integer K[M] ] [UNLIMITED] ] ON tablespace:用户可以使用的表空间的字节数。
[PROFILES profile_name]:资源文件的名称。
[PASSWORD EXPIRE]:立即将口令设成过期状态,用户再登录前必须修改口令。
[ACCOUNT LOCK or ACCOUNT UNLOCK]:用户是否被加锁,默认情况下是不加锁的。
创建用户实例
(1)创建用户,指定默认表空间和临时表空间。
创建用户名为wang,口令为wbtest,默认表空间为users,临时表空间为TEMP的用户。
示例1:
CREATE USER wang IDENTIFIED BY wbtest
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE TEMP;
在创建用户时通过QUOTA xxxM ON tablespace_name 子句即可。
(2)创建用户,并配置磁盘限额。
创建一个用户名为wbtest,口令为wbtest,默认表空间为users,临时表空间为TEMP的用户,并且不 允许该用户使用SYSTEM表空间。
示例2:
CREATE USER wbtest IDENTIFIED BY wbtest
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE TEMP
QUOTA 0 ON SYSTEM;
(3)配置用户在指定表空间上不受限制。
创建一个用户名为test,口令为test,默认表空间为users,并且该用户使用users表空间不受限制
示例3:
CREATE USER test IDENTIFIED BY test
DEFAULT TABLESPACE users
QUOTA UNLIMITED ON users;
在创建用户时,以下几点特别需要特别注意。
初始建立的数据库用户没有任何权限,不能执行任何数据库操作。
如果建立用户时不指定DEFAULT TABLESPACE子句,Oracle会将SYSTEM表空间作为用户默认表空间。
如果建立用户时不指定TEMPORARY TABLESPACE子句,Oracle会将数据库默认临时表空间作为用户的临时表空间。
如果建立用户时没有为表空间指定QUOTA子句,那么用户在特定表空间上的配额为0,用户将不能在相应表空间上建立数据对象。
初始建立的用户没有任何权限,所以为了使用户可以连接到数据库,必须授权其CREATE SESSION权限
修改用户密码
alter user username identified by password;
ORA-01045:user users lacks CREATE SESSION privilege;logon denied问题的解决方案
上诉问题是由于系统创建了用户users,但是没有给用户users赋予connect,resource权限导致,分配权限即可解决
grant connect,resource to users