oracle剛建立的使用者獲取許可權

2021-04-17 18:02:23 字數 1573 閱讀 9209

當乙個使用者剛被建立時是不具備任何許可權的,因此要在該使用者模式下建立表,需授予create session、create table、以及unlimited tablespace(或分配配額)許可權,因為: 當使用者要連線到資料庫時必須擁有create session許可權 當使用者要建立表時必須擁有create table許可權,同時使用者還需要在表空間中擁有配額或者被授予unlimited tablespace。

現在我們來做乙個測試: 斜體代表在sys使用者下的操作,加粗代表在使用者test下的操作:

1)、建立使用者test,密碼為passwd_1:

sql> create user test  identified by passwd_1 ; 使用者已建立

2)當用test連線資料庫時: sql> conn test/passwd_1

error: ora-01045: user test lacks create session privilege; logon denied 警告: 您不再連線到 oracle。

//因為缺少create session的許可權,登陸失敗。

3)利用sys給test授予create session許可權: sql>grant create session to test; 授權成功。

4)sql> conn test/passwd_1 已連線。

5)在test的方案中建立表exam1:

sql>create table exam1(student_id int, *****_id int);

create table exam1 * error 位於第 1 行: ora-01031: 許可權不足

//因為未給test使用者授予create table 許可權,因此不能夠建立表exam1.

6) 給test使用者授予crete table 許可權 sql> grant create table to test; 授權成功。

7)sql>create table exam1 (student_id int, *****_id int);

create table exam1 * error 位於第 1 行: ora-01950: 表空間'system'中無許可權

//因為在建立使用者時沒有指定表空間,因此預設的表空間是system表空間,而test使用者還需要在表空間system中既沒有擁有配額又沒有被授予unlimited tablespace許可權,因此對於這種情況有兩種解決辦法:

第一種方法: sql> alter user test  quota 15m on system; 使用者已更改。

//在system表空間中,給使用者test分配15m的使用空間

sql>create table exam1 (student_id int, *****_id int);表已建立

第二種方法: sql> grant unlimited tablespace to test; 授權成功。

sql>create table exam2  (student_id int, *****_id int);表已建立

Oracle 建立表空間,建立使用者,使用者賦權

注意點 1.如果在pl sql 等工具裡開啟的話,直接修改下面的 中 斜體加粗部分 執行 2.確保路徑存在,比如 c oracle oradata oracle11 也就是你要儲存檔案的路徑存在 3.以下語句必須為dba許可權的使用者才可以執行成功。分為四步 第1步 建立臨時表空間 create t...

oracle建立使用者並賦權

oracle建立表空間和使用者 sql view plain copy 建立表空間和使用者的步驟 使用者建立 create user 使用者名稱 identified by 密碼 授權 grant create session to 使用者名稱 grant create table to 使用者名稱...

oracle建立使用者並賦權

oracle建立表空間和使用者 sql view plain copy 建立表空間和使用者的步驟 使用者建立 create user 使用者名稱 identified by 密碼 授權 grant create session to 使用者名稱 grant create table to 使用者名稱...