Oracle的权限学习总结

 Oracle的权限

权限分为系统权限(system privilege)和对象权限(object privilege)

所谓系统权限是指用户对数据库的相关权限。允许用户在数据库中执行特定操 比如执行DDL。常用的系统特权:

create session:连接到数据库上

create sequence:创建序列。序列是一系列数字,通常用来填充主键值。

create synonym:创建同名对象。同名对象用来引用其它模式中的表。

create table

create any table

drop table

drop any table

create procedure

execute any procedure

create user

drop user

create view

 

授权

         向用户授予系统特权,如果后面使用with admin option选项,则表示所授予的用户可以把这种特权再授予其它用户。

                   GRANT EXECUTE ANY PROCEDURE TO steve WITH ADMIN OPTION

                   CONN steve/button

                   GRANT EXECUTE ANY PROCEDURE TO gail;

                   将一种特权授予PUBLIC,可以将特权授予所有的用户。

                   CONN system/manager

                   GRANT EXECUTE ANY PROCEDURE TO PUBLIC;

                   检查授予用户的系统特权

                   通过查询user_sys_privs可以检索某个用户具有哪些系统特权.

                   SELECT * FROM  user_sys_privs

 撤权

        REVOKE EXECUTE ANY PROCEDURE FROM steve

       在撤销steve用户的execute any procedure特权时—steve已经将这种特权又授权了gail用户,gail用户仍然会保留这些特权

 

所谓对象权限是指用户对其它用户的数据对象操作的权限。比如对表执行DML。常用的对象特权:

select、update、insert、delete、execute、all (前四种的总称)

授权

        GRANT SELECT ,INSERT,UPDATE ON store.products TO steve                       

        下面这个例子将对last_name和salary列的UPDATE特权授予steve用户.

        GRANT UPDATE(last_name,salary) ON store.products TO steve                        

        此处可以使用WTIH GRANT OPTION选项

        检查已授予的对象特权通过查询user_tab_privs_made可以检查某个用户对哪些表向其它用户开放了哪些对象特权。

            SELECT *

            FROM user_tab_privs_made

            WHERE table_name=’PRODUCTS’

         通过查询user_col_privs_made可以检索某个用户对哪些列开放了哪些特权。

           SELECT *

           FROM user_col_privs_made

         检索已接受的对象特权

         通过查询user_tab_privs_recd可以检查某个用户被授予了哪些表上的哪些对象特权。

         通过查询user_col_privs_recd可以检查某个被授予了哪些列上的对象特权。

         注意:

         当所授予的权是系统特权时,并且使用WITH ADMIN OPTION选项使该系统特权向下传递,当撤销授予者的系统特权时,其所向下授予的系统特权不在撤销。

         当授予的权是对象特权时,并且使用WITH GRANT OPTION选项使该对象特权向下传递,当撤销授予者的系统特权时,其所向下授予的对象特权一并收回。

猜你喜欢

转载自xp9802.iteye.com/blog/1266276