http://www.xuebuyuan.com/762024.html
在使用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 允許系統操作審計
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。