授权的使用方法:GRANT privilege1, privilege2 TO username;
SQL>grant create table to scott with admin option;
SQL>connect scott/tiger;
SQL>grant create table to sj;
用户scott只能在自己的schema中建立表,用户sj也只能在自己的schema中建立表,如果将scott的该权限收获,sj的权限将依旧存在。
查看用户所拥有的权限,并且看其是否可以继续授权:
SQL>select * from dba_sys_privs where grantee='SJ';
授予any table权限的,任然不能操作SYS表空间中的表;
2.常用的object privileges:
可以将select,update,delete,insert,alter,execute等DML操作权限赋给用户,可以针对表,也可以针对表中的某些列,如:
SQL>grant select on scott.emp to sj;
SQL>grant update (order_status) on scott.orders to sj;
SQL>grant allon scott.regions to sj;
Object Privileges 权限可以级联收回,如通过sj再赋予其他用户的权限在此语句执行后都将收回;
SQL>revoke select on scott.empfrom sj;
3.创建和管理角色:
创建角色时角色的名字不能和现有用户的用户名重复,也不能和现有的角色名重复如:
SQL>create role hr_junior;
SQL>grant create session to hr_junior;
SQL>grant select on hr.regions to hr_junior;
SQL>create role hr_senior;
SQL>grant hr_junior to hr_senior with admin option;
SQL>grant update on hr.regions to hr_senior;
SQL>create role hr_manager;
SQL>granth r_senior to hr_manager with admin option;
SQL>grant allon hr.regions to hr_manager;
和system privileges权限的收回方式一样,role的收回也是不能级联进行的;
系统预先定义好的角色:
- CONNECT:为了向后兼容,现在改为CREATE SESSION,可以创建表
- RESOURCE:为了向后兼容,可以创建表或存储过程;并且有UNLIMITED TABLESACPE权限;
- DBA:几乎具备所有的权限,但是不能启动和关闭数据库;
- SELECT_CATALOG_ROLE:数据库初级管理员最好有这个,它能拥有许多object privileges的权限,但是没有system privileges的权限,也没有用户数据的权限,不能看到用户数据;
- SCHEDULER_ADMIN:具有管理批量计划脚本的权限
如给系统中的所有用户赋予表的select权限:
SQL>grant select on hr.regions to public;
如将一个用户的默认角色失效:
SQL>ALTER UESR sj DEFAULT ROLE NONE;
如将登录角色赋给sj:
SQL>grant connect to sj ;
如将登录角色作为sj的默认角色:
SQL>alter user sj default role connect;
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/20523441/viewspace-761378/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/20523441/viewspace-761378/