在使用oracle 9I em console用戶端串連10G資料庫時候,使用normal串連身份,會提示缺乏select any dictionary 許可權。但是使用sysdba身份或者是用PL/SQL的normal身份就可以串連~
這個問題是oracle9I的一個bug,並且oracle並不打算解決這個問題了
其實從低版本的連結到高版本的,都可能會出現此問題。
# 建立使用者
create user angeos identified by angeos;
建立了使用者:angeos,密碼為:angeos
# 對使用者授權
grant connect,resource to angeos;
對使用者angeos授予了串連資料庫和訪問資源的許可權
# 對使用者授權
grant create session,dba to angeos;
CREATE SESSION是一個系統特權,它可以為使用者提供串連資料庫的能力。
DBA是一個具有超過120個系統特權的角色,所以它可以讓使用者在資料庫中完成幾乎任何工作。
# 改變使用者的密碼
alter user angeos identified by oracle;將使用者angeos的密碼改變為:oracle.
# 刪除使用者
angeos
drop user angeos;
由於使用者angeos有一張表table1,所以刪除使用者時,我們需要指定關鍵字CASCADE
drop user angeos cascade;
# CREATE TABLE AS SELECT的語句
通過查詢一個表,並且將查詢結果集物化到一個常規表中來建立表。
複製表的結構,但是約束、索引和觸發器等對象不會被放入新的表中。
例子:
create table emp_copy as
select * from scott.emp;
alter any cluster 修改任意簇的許可權
alter any index 修改任意索引的許可權
alter any role 修改任意角色的許可權
alter any sequence 修改任意序列的許可權
alter any snapshot 修改任意快照的許可權
alter any table 修改任意表的許可權
alter any trigger 修改任意觸發器的許可權
alter cluster 修改擁有簇的許可權
alter database 修改資料庫的許可權
alter procedure 修改擁有的預存程序許可權
alter profile 修改資源限制簡表的許可權
alter resource cost 設定佳話資源開銷的許可權
alter rollback segment 修改復原段的許可權
alter sequence 修改擁有的序列許可權
alter session 修改資料庫會話的許可權
alter sytem 修改資料庫伺服器設定的許可權
alter table 修改擁有的表許可權
alter tablespace 修改資料表空間的許可權
alter user 修改使用者的許可權
analyze 使用analyze命令分析資料庫中任意的表、索引和簇
audit any 為任意的資料庫物件設定審計選項
audit system 允許系統Action Trail
backup any table 備份任意表的許可權
become user 切換使用者狀態的許可權
commit any table 提交表的許可權
create any cluster 為任意使用者建立簇的許可權
create any index 為任意使用者建立索引的許可權
create any procedure 為任意使用者建立預存程序的許可權
create any sequence 為任意使用者建立序列的許可權
create any snapshot 為任意使用者建立快照的許可權
create any synonym 為任意使用者建立同義名的許可權
create any table 為任意使用者建立表的許可權
create any trigger 為任意使用者建立觸發器的許可權
create any view 為任意使用者建立視圖的許可權
create cluster 為使用者建立簇的許可權
create database link 為使用者建立的許可權
create procedure 為使用者建立預存程序的許可權
create profile 建立資源限制簡表的許可權
create public database link 建立公用資料庫鏈路的許可權
create public synonym 建立公用同義名的許可權
create role 建立角色的許可權
create rollback segment 建立復原段的許可權
create session 建立會話的許可權
create sequence 為使用者建立序列的許可權
create snapshot 為使用者建立快照的許可權
create synonym 為使用者建立同義名的許可權
create table 為使用者建立表的許可權
create tablespace 建立資料表空間的許可權
create user 建立使用者的許可權
create view 為使用者建立視圖的許可權
delete any table 刪除任意表行的許可權
delete any view 刪除任意視圖行的許可權
delete snapshot 刪除快照中行的許可權
delete table 為使用者刪除表行的許可權
delete view 為使用者刪除視圖行的許可權
drop any cluster 刪除任意簇的許可權
drop any index 刪除任意索引的許可權
drop any procedure 刪除任意預存程序的許可權
drop any role 刪除任意角色的許可權
drop any sequence 刪除任意序列的許可權
drop any snapshot 刪除任意快照的許可權
drop any synonym 刪除任意同義名的許可權
drop any table 刪除任意表的許可權
drop any trigger 刪除任意觸發器的許可權
drop any view 刪除任意視圖的許可權
drop profile 刪除資源限制簡表的許可權
drop public cluster 刪除公用簇的許可權
drop public database link 刪除公用資料鏈路的許可權
drop public synonym 刪除公用同義名的許可權
drop rollback segment 刪除復原段的許可權
drop tablespace 刪除資料表空間的許可權
drop user 刪除使用者的許可權
execute any procedure 執行任意預存程序的許可權
execute function 執行儲存函數的許可權
execute package 執行儲存包的許可權
execute procedure 執行使用者預存程序的許可權
force any transaction 管理未提交的任意事務的輸出許可權
force transaction 管理未提交的使用者事務的輸出許可權
grant any privilege 授予任意系統特權的許可權
grant any role 授予任意角色的許可權
index table 給表加索引的許可權
insert any table 向任意表中插入行的許可權
insert snapshot 向快照中插入行的許可權
insert table 向使用者表中插入行的許可權
insert view 向使用者視圖中插行的許可權
lock any table 給任意表加鎖的許可權
manager tablespace 管理(備份可用性)資料表空間的許可權
references table 參考表的許可權
restricted session 建立有限制的資料庫會話的許可權
select any sequence 使用任意序列的許可權
select any table 使用任意表的許可權
select snapshot 使用快照的許可權
select sequence 使用使用者序列的許可權
select table 使用使用者表的許可權
select view 使用視圖的許可權
unlimited tablespace 對錶空間大小不加限制的許可權
update any table 修改任意表中行的許可權
update snapshot 修改快照中行的許可權
update table 修改使用者表中的行的許可權
update view 修改視圖中行的許可權
enqueue any queue 就是向所有隊列中加入訊息的許可權;
dequeue any queue 就是可以向所有隊列使訊息出隊的許可權;
manage any queue 就是在所有所有方案下,允許運行DBMS_AQADM的許可權
1.查看所有使用者:
select * from dba_users;
select * from all_users;
select * from user_users;
2.查看使用者或角色系統許可權:
select * from dba_sys_privs;
select * from user_sys_privs;
3.查看使用者物件許可權:
select * from dba_tab_privs;
select * from all_tab_privs;
select * from user_tab_privs;
4.查看所有角色:
select * from dba_roles;
5.查看使用者或角色所擁有的角色:
select * from dba_role_privs;
select * from user_role_privs;
6.注意:
(1)以下語句可以查看Oracle提供的系統許可權
select name from sys.system_privilege_map
(2)查看一個使用者的所有系統許可權(包含角色的系統許可權)
select privilege from dba_sys_privs where grantee='USER_NAME'
union
select privilege from dba_sys_privs where grantee in (select granted_role from dba_role_privs where grantee='USER_NAME' );
一、許可權是使用者對一項功能的執行權力。在Oracle中,根據系統管理方式不同,將許可權分為系統許可權與實體許可權兩類。系統許可權是指是否被授權使用者可以串連到資料庫上,在資料庫中可以進行哪些系統操作。而實體許可權是指使用者對具體的模式實體(schema)所擁有的許可權。這樣講可以有些模糊,舉個例子來說:select any table是系統許可權,它表示可以查看任何錶。而select on table1是實體許可權,表示對錶table1的查詢許可權。
二、見上表
三、系統許可權授權命令的使用
文法:
GRANT 許可權名 TO 使用者|角色|PUBLIC
其中,PUBLIC表示將許可權賦給資料庫中所有的使用者
例:賦給使用者USER1許可權CREATE TABLE的授權命令如下:
SQL>GRANT CREATE TABLE TO USER1;
授權語句還可以增加WITH ADMIN OPTION選項,表示被授權的使用者可以將它所得許可權賦給其它使用者,如:
SQL>GRANT CREATE TABLE,CREATE VIEW TO USER1,USER2 WITH ADMIN OPTION;
若要瞭解各使用者所擁有的系統許可權,可以查詢資料字典USER_SYS_PRIVS、ROLE_SYS_PRIVS。
若要回收許可權,則使用REVOKE命令,如:
SQL>REVOKE CREATE TABLE FROM USER1;
四、實體許可權管理
實體許可權是指某一使用者對某一特定schema對象的操作許可權。
1.實體許可權分類
不同的實體類型有不同的實體許可權,如下表
2.實體許可權的授命令
文法如下:
GRANT 實體許可權名|ALL TO 使用者|角色|PUBLIC
其中,ALL表示實體的所有實體許可權。
如:
SQL>GRANT SELECT ON BOOKS_QUTHORS TO USER1;
以下語句用來查詢表的實體許可權的授權資訊:
SQL>SELECT * FROM USER_TAB_PRIVES
若要回收實體許可權,使用REVOKE,其文法如下:
REVOKE 實體許可權名|ALL ON 實體名 FROM 使用者名稱|角色名稱|PUBLIC。