Oracle 許可權常用語句【轉】

牛平發表於2017-11-08
http://www.cnblogs.com/ningvsban/p/3606239.html body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe WPC', 'Segoe UI', 'HelveticaNeue-Light', 'Ubuntu', 'Droid Sans', sans-serif; font-size: 14px; line-height: 1.6; }

Oracle使用者許可權常用語句

常用的System Privileges

  • create session 連線資料庫
  • create table 建表
  • create view 建檢視
  • create public synonym 建同義詞
  • create procedure 建過程、函式、包
  • create trigger 建觸發器
  • create cluster 建簇

例項

建立使用者並賦予該使用者授權許可權。

create user ken identified by ken;

授予許可權並附帶admin option

grant create session, create table to ken with admin option;

授予許可權,不帶with admin option

grant create view to ken;

新建tom使用者

create user tom identified by tom;

使用ken使用者登入後對tom授權, 語句執行成功

grant create session, create table to tom; Grant succeeded. 對tom授權,語句執行失敗 grant create view to tom; grant create view to tom * ERROR at line 1: ORA-01031: insufficient privileges

回收許可權

note 注意,回收許可權不是級聯的。

從ken回收登入許可權

revoke create session from ken;

此時tom依然可以登入,但Ken無法登入了

ERROR: ORA-01045: user KEN lacks CREATE SESSION privilege; logon denied

常用的Object Privilege

  • alter
  • delete
  • select
  • insert
  • update
  • index
  • references
  • execute

檢視系統中的Object Privilege

select distinct privilege from dba_tab_privs;

檢視某使用者具有的Object Privilege

select grantor, owner, table_name, privilege from dba_tab_privs where grantee = 'TOM';

授予人可以是該物件所有者或者sys和system使用者。

grant select on t to tom

授予所有許可權

grant all on emp to monkey;

授予列許可權

grant update on emp(sal) to monkey

授予對於某個包的執行許可權

grant execute on dbms_transaction to ken;

在別的schema中建立索引,必須具備以下許可權

grant index on scott.emp to blake;

回收物件許可權

revoke select on emp from blake

note 回收Object Privilege 會導致級聯回收。

角色

角色Role,定義一組許可權。

查詢角色具備的許可權

select * from role_sys_privs where role='角色名'

select * from role_sys_privs where role='CONNECT';

select * from role_sys_privs where role='RESOURCE';

DBA角色

dba角色具有所有的系統許可權,及with admin option選項,預設的dba使用者為sys和system,它們可以將任何系統許可權授予其他使用者。但是要注意的是dba角色不具備sysdba和sysoper的特權(啟動和關閉資料庫)

note 一般而言,建立使用者後,給與connect角色和resource就夠了。

自定義角色

建立角色(不驗證)

create role 角色名 not identified;

建立角色(資料庫驗證)

create role 角色名 identified by 密碼;

角色授權

grant create session to 角色名 with admin option grant select on scott.emp to 角色名; grant insert, update, delete on scott.emp to 角色名;

分配角色

grant 角色名 to blake with admin option;

select * from dba_roles;

select privilege, admin_option from role_sys_privs where role='角色名';

select granted_role, default_role from dba_role_privs where grantee = '使用者名稱';

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29757574/viewspace-2146983/,如需轉載,請註明出處,否則將追究法律責任。

相關文章