標籤:使用者
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;
GRANTEE PRIVILEGE
------------------------------ ----------------------------------------
CONNECT CREATE SESSION
因此具有connect的使用者就有sqlplus建立SESSION的許可權,至於建立表就靠resource許可權。
3. 刪除使用者:
SQL> drop user user01;
drop user user01
*
ERROR at line 1:
ORA-01922: CASCADE must be specified to drop ‘USER01‘
報錯說明該使用者下有建立的其他對象,如果刪除使用者,有兩種方法:
1. 刪除使用者下的對象:
登入user01後執行:
SQL> drop table tbl_seg;
Table dropped.
再次登入SYS執行:
SQL> drop user user01;
User dropped.
2. 使用CASCADE串聯刪除:
drop user user01 cascade;