1. 建立使用者:
SQL> create user user01 identified by user01;
User created.
但登入提示01045的錯誤,缺少CREATE SESSION權限。
ERROR:
ORA-01045: user USER01 lacks CREATE SESSION privilege; logon denied
Enter user-name:
此時需要賦予connect權限給使用者(原因見(2)),登陸後建立表提示01031錯誤:
SQL> create table t(x number);
create table t(x number)
*
ERROR at line 1:
ORA-01031: insufficient privileges
再次賦予resource權限給使用者(原因見(2)),就可以建立表了。
2. 需要為使用者授予connect和resource權限:
SQL> grant connect, resource to user01;
Grant succeeded.
下面來說說為什麼需要connect和resource權限,
關于connect和resource的權限可參見之前的部落格文章:http://blog.itpub.net/7192724/viewspace-1184490/
RESOURCE:擁有Resource權限的使用者隻可以建立實體,不可以建立資料庫結構。
CONNECT:擁有Connect權限的使用者隻可以登入Oracle,不可以建立實體,不可以建立資料庫結構。
SQL> select grantee,privilege from dba_sys_privs where grantee='RESOURCE' order by privilege;
GRANTEE PRIVILEGE
------------------------------ ----------------------------------------
RESOURCE CREATE CLUSTER
RESOURCE CREATE INDEXTYPE
RESOURCE CREATE OPERATOR
RESOURCE CREATE PROCEDURE
RESOURCE CREATE SEQUENCE
RESOURCE CREATE TABLE
RESOURCE CREATE TRIGGER
RESOURCE CREATE TYPE
8 rows selected.
SQL> select grantee,privilege from dba_sys_privs where grantee='CONNECT' order by privilege;
CONNECT CREATE SESSION
是以具有connect的使用者就有sqlplus建立SESSION的權限,至于建立表就靠resource權限。
3. 删除使用者:
SQL> drop user user01;
drop user user01
ORA-01922: CASCADE must be specified to drop 'USER01'
報錯說明該使用者下有建立的其他對象,如果删除使用者,有兩種方法:
1. 删除使用者下的對象:
登入user01後執行:
SQL> drop table tbl_seg;
Table dropped.
再次登入SYS執行:
User dropped.
2. 使用CASCADE級聯删除:
drop user user01 cascade;