天天看點

Oracle使用者的建立和删除

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;