很多時候我們經常使用第三方工具連接數據庫,比如Navicat,這些工具圖形化使用方便,但在數據庫權限上可能帶來無法預料的問題。現在遇到這樣的問題:在Navicat中創建的用戶SQL*PLUS中識別不到,對某表空間無權限等。這種操作在圖形化工具中雖然可以勾選完成,但是權限管理大事還是用 SQL語句來的更放心。
下面將從創建用戶開始到創建數據庫,解決一些遇到的問題,Oracle實驗版本為11g。創建用戶的SQL語句為:
create user 用戶名 identified by 密碼 default tablespace 表空間名
首先我們在創建用戶時不使用默認表空間,看看會有什么情況發生。
這個錯誤是在用戶創建時留下的,如果使用圖形化工具創建用戶可能就會留下這種問題,在創建表的時候出現:ORA-01950:對表空間’USERS’無權限。這種問題,如果這種問題已經存在了,解決方法很簡單,修改一下用戶屬性即可。執行下面這條語句:alter user 用戶名 quota unlimited on 表空間名
這樣就可以創建表了。當然在創建用戶的時候就可以避免這個問題,方法也很簡單,創建完用戶時: create user 用戶名 identified by 密碼 default tablespace 表空間名;之后再給用戶授權:
grant create session, create table to 用戶名
這樣就可以創建表了。當然也可以如下授權:
grant connect, resource to 用戶名
這種方式的授權就是create user時忘記default tablespace也可創建表。connect只有create session權限,這是連接數據庫的基本權限。resource是開發者權限,至於其中包含的內容可以查詢系統表中的具體內容:
select * from role_sys_privs where role=’RESOURCE’
歡迎交流,希望對大家有用。