本文将从创建Oracle用户权限表开始学起并进行试验,然后进行登陆和授权等一般性操作,使大家对Oracle用户权限表有深入的了解。
一、系统自带用户
sys;//系统管理员,拥有最高权限;
system;//本地管理员,次高权限;
scott;//普通用户,密码默认为tiger,默认未解锁。
二、登陆
sqlplus / as sysdba;//登陆sys账户;
sqlplus sys as sysdba;//同上;
sqlplus scott/tiger;//登陆普通用户scott。
三、管理用户
CREATE USER sysbq IDENTIFIED BY Oracle;//在管理员账户下,创建用户sysbq设置密码 Oracle ;
ALERT USER sysbq IDENTIFIED BY 123;//修改用户密Oracle变为123;
ALERT USER scott IDENTIFIED BY tiger;//修改用户密码。
四、权限管理
1、默认的普通用户scott默认未解锁,新建的用户也没有任何权限,必须授予权限,即管理员模式下进行授权。
GRANT CREATE SESSION TO sysbq;//授予sysbq用户创建SESSION的权限即登陆权限;
GRANT UNLIMITED SESSION TO sysbq;//授予sysbq用户使用Oracle表空间的权限;
GRANT CREATE TABLE TO sysbq;//授予创建表的权限;
GRANT DROP TABLE TO sysbq;//授予删除表的权限;
GRANT INSERT TABLE TO sysbq;//插入表的权限;
GRANT UPDATE TABLE TO sysbq;//修改表的权限;
GRANT all TO public; //授予所有权限(all)给所有用户(public)。
2、Oracle对权限管理比较严谨,基础于用户对表进行管理,普通用户之间也是默认不能互相访问的,需要互相授权。Oracle对权限管理比较严谨,普通用户之间也是默认不能互相访问的。
GRANT SELECT ON tablename TO sysbq;//授予sysbq用户查看指定表的权限;
GRANT DROP ON tablename TO sysbq;//授予删除表的权限;
GRANT INSERT ON tablename TO sysbq;//授予插入的权限;
GRANT UPDATE ON tablename TO sysbq;//授予修改表的权限;
GRANT INSERT(id) ON tablename TO sysbq;
GRANT UPDATE(id) ON tablename TO sysbq;//授予对指定表特定字段的插入和修改权限,注意,只能是INSERT和UPDATE;
GRANT ALERT all TABLE TO sysbq;//授予sysbq用户ALERT任意表的权限。
五、撤销权限
基本语法格式同GRANT,关键字为revoke。
六、查看权限
SELECT * FROM user_sys_privs;//查看当前用户所有权限;
SELECT * FROM user_tab_privs;//查看所用用户对表的权限。
七、操作表的用户的表
需要在表名前加上用户名,如下:
SELECT * FROM sysbq. tablename。
八、权限传递
即用户A将权限授予B,B可以将操作的权限再授予C,命令如下:
GRANT ALERT TABLE ON tablename TO sysbq WITH ADMIN OPTION;
GRANT ALERT TABLE ON tablename TO sysbq WITH GRANT OPTION;
//关键字 WITH GRANT OPTION效果和admin类似,但是admin是系统权限,GRANT是对象权限。
级联的意思就是第一个用户的权限再授予其他用户,如果第一个用户被取消了该权限,那么通过其他通过第一个用户授予该权限的用户也被波及到,权限同时被取消,不级联的话其他用户就不会被波及。
1、WITH ADMIN OPTION
WITH ADMIN OPTION的意思是被授予该权限的用户有权将某个权限(如CREATE any TABLE)授予其他用户或角色,取消是不级联的。
如授予A系统权限CREATE SESSION WITH ADMIN OPTION,然后A又把CREATE SESSION权限授予B,但管理员收回A的CREATE SESSION权限时,B依然拥有CREATE SESSION的权限。但管理员可以显式收回B CREATE SESSION的权限,即直接revoke CREATE SESSION FROM B。
2、WITH GRANT OPTION
WITH GRANT OPTION的意思是:权限赋予/取消是级联的,如将WITH GRANT OPTION用于对象授权时,被授予的用户也可把此对象权限授予其他用户或角色,不同的是但管理员收回用WITH GRANT OPTION授权的用户对象权限时,权限会因传播而失效,如GRANT SELECT ON TABLE WITH GRANT OPTION TO A,A用户把此权限授予B,但管理员收回A的权限时,B的权限也会失效,但管理员不可以直接收回B的SELECT ON TABLE 权限。
九、角色
角色即权限的集合,可以把一个角色授予给用户。
CREATE ROLE myrole;//创建角色;
GRANT CREATE SESSION TO myrole;//将创建SESSION的权限授予myrole;
GRANT myrole TO sysbq;//授予sysbq用户myrole的角色;
DROP ROLE myrole;删除角色;
但是有些权限是不能授予给角色的,比如unlimited table space和any关键字。
本章是对Oracle系统权限管理进行操作式总结。包含用户管理,权限授权,权限取消及角色。Oracle数据库作为一个强大严谨效率高的数据库系统已被广泛应用于各种管理软件系统中。基于Oracle商业智能,还有很深的知识需要进一步学习以应用于工作中,如数据仓库搭建,查询优化。除了Oracle权限管理,加强用友BQ的应用有助于对Oracle更深的学习。