程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> Oracle用戶的創建和刪除

Oracle用戶的創建和刪除

編輯:Oracle教程

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;

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;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved