Oracle命令:授權-收回權限-角色


oracle grant

不論授予何種權限,每條授權(grant)語句總是由三部分組成:

1) 接受者部分是准備獲得權限的一個或多個用戶的列表。

2)關鍵字權限部分由grant后跟一種或多種權限組成。如果在同一條grant語句中有多個權限,權限之間用逗號分隔。

3)  表名部分由關鍵字o n起頭並列出准備在其上授權的表。

看下面的詳細介紹,主要是介紹如何把添加、刪除、修改、查詢四種權限授予用戶,如下:

一、insert

insert權限允許在其他用戶的表中建立行。語句grant insert on sample_a to public;允許所有用戶在sample_a中建立新的行。Oracle允許在單條grant語句中授多個權限,SQL語句grant insert,select on sample_a to public;等價於兩個語句:grant select on sample_a to public;語句和grant insert on sample_a to ublic;語句。

二、update

update權限允許其他用戶修改非自己表中的數據。語句grant update on sample_a teplownd;允許用戶teplownd修改表sample_a中的信息。

三、select

select權限允許用戶查看其他用戶表中的內容。語句grant select on sample_3 to public;將允許所有用戶瀏覽表sample_3中的內容,而語句grant select on sample_3 to opsrosenberge,ops

abbeyms;則只允許兩個用戶查看表sample_3中的內容。注意,當多個用戶接受授權時,用戶名之間要用逗號分隔。

提示以public為授權對象時,所有數據庫用戶都獲得指定的權限。如果用戶的數據庫有15000個用戶,則單獨授權就需要15000次(每個用戶一次),而授權給public,一次即可。

四、delete

刪除權限允許其他用戶刪除指定表的信息行。此權限非同小可,因此我們建議小心使用。下面是一個實際例子:如果一個用戶連接到產品數據庫,而他還以為他連接的是測試數據庫。他發布了一條命令delete from people_master;並且Oracle做出了反應12003 rows delet.ed在退出SQL * Plus后,下一個程序訪問people_master查看Rick Bower的記錄,會被告知記錄不存在。

命令grant delete,update,select on sample_a to public;對所有數據庫用戶給出指明的權限,而命令grant select,update,insert,delete on sample_a to teplownd,greerw;只允許用戶teplownd和greerw對表sample_a做命令中所列出的動作

 

 

 

授權語句

--select * from dba_users; 查詢數據庫中的所有用戶

--alter user TEST_SELECT account lock; 鎖住用戶 
--alter user TEST_SELECT account unlock; 給用戶解鎖

--create user xujin identified by   xujin; 建立用戶

--grant create tablespace to xujin; 授權 
--grant select on tabel1 to xujin; 授權查詢 
--grant update on table1 to xujin; 
--grant execute on procedure1 to xujin 授權存儲過程 
--grant update on table1 to xujin with grant option; 授權更新權限轉移給xujin用戶,許進用戶可以繼續授權;

 
--收回權限

--revoke select on table1 from xujin1; 收回查詢select表的權限; 
--revoke all on table1 from xujin;


/*grant connect to xujin; 
revoke connect from xujin 
grant select on xezf.cfg_alarm to xujin; 
revoke select on xezf.cfg_alarm from xujin;*/ 
--select table_name,privilege from dba_tab_privs where grantee='xujin' 查詢一個用戶擁有的對象權限 
--select * from dba_sys_privs where grantee='xujin' 查詢一個用戶擁有的系統權限 
--select * from session_privs --當錢會話有效的系統權限

 

--角色

--create role xujin1;--建立xujin1角色 
--grant insert on xezf.cfg_alarm to xujin1; 將插入表的信息 
--revoke insert on xezf.cfg_alarm from xujin1; 收回xujin1角色的權限 
--grant xujin1 to xujin ; 將角色的權限授權給xujin; 
-- create role xujin2; 
--grant xujin1 to xujin2; 將角色xujin1授權給xujin2; 
--alter user xujin default xujin1,xujin2; 修改用戶默認角色 
-- DROP ROLE xujin1;刪除角色1; 
--select * from role_sys_privs where role=xujin1; 
--查看許進1角色下有什么系統權限; 
--select granted_role,admin_option from role_role_privs where role='xujin2'; 
--查看xujin1角色下面有什么角色權限 
--select * from role_sys_privs where role='xujin2'; 
--select table_name,privilege from role_tab_privs where role='xujin1'; 
--select * from dba_role_privs where grantee='xujin' --查看用戶下面有多少個角色;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM