1、单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,Oracle SQL&PL/SQL,第13,章,用户访问控制,创建用户,创建角色,GRANT、REVOKE,对象权限,本章要点,控制用户访问,数据库管理员,用户,Username and password,privileges,权限,数据库安全,系统安全,数据安全,系统权限:获得访问数据库的权限,对象权限:操作数据库对象的内容,模式:,对象集合,例如表、视图和序列,系统权限,具备超过,80,中的有效权限,DBA,具备高级别的系统权限,创建新用户,删除用户,删除表,备份表,创建用户,DBA,使用,CREATE
2、 USER,语句创建用户,SQL CREATEUSER king,2 IDENTIFIED BY saint;,User created.,CREATE USER user,IDENTIFIED BY password;,用户系统权限,GRANT,privilege,privilege,.,TO,user,user,.;,应用程序的开发者应该具备下列权限:,CREATE SESSION,CREATE TABLE,CREATE SEQUENCE,CREATE VIEW,CREATE PROCEDURE,一旦创建用户,,DBA,可以给用户授予指定的系统权限。,授予系统权限,DBA,可以授予用户特殊
3、的系统权限,SQL GRANT create table,create sequence,create view,2 TO king;,Grant succeeded.,什么是角色,不按角色分配权限,按角色分配权限,权限,用户,管理员,创建角色并为角色授权,SQL CREATE ROLE manager;,Role created.,SQL GRANT create table,create view,2 to manager;,Grant succeeded.,SQL GRANT manager to BLAKE,CLARK;,Grant succeeded.,修改口令,创建用户认证的同时有
4、一个初始化口令,用户通过,ALTER USER,语句可以改变自己的口令,SQL ALTER USER,scott,2 IDENTIFIED BY lion;,User altered.,对象权限 表视图序列过程,ALTER Y,Y,DELETE Y,Y,EXECUTE Y,INDEX Y,INSERT Y,Y,REFERENCES Y,SELECT Y,Y,Y,UPDATE Y,Y,对象权限,对象权限,不同对象具有不同的对象权限,对象的所有者拥有该对象的所有权限,对象所有者可以将其拥有的对象的权限授予其他用户,GRANT,object_,priv,(,columns,),ON,object,T
5、O,user,|,role,|PUBLIC,WITH GRANT OPTION;,对象授权,SQL GRANTselect,2 ON,emp,3 TOsue,rich;,Grant succeeded.,SQL GRANTupdate(,dname,loc),2 ONdept,3 TO,scott,manager;,Grant succeeded.,授予对,EMP,的查询权限,授予,Scott、Manager,更新指定列,dname,、loc,的权限,使用,WITH GRANT OPTION,和,PUBLIC,关键字,允许系统中的所有用户都能对,Alice,的,DEPT,表进行查询。,SQL
6、GRANTselect,insert,2 ONdept,3 TO,scott,4 WITH GRANT OPTION;,Grant succeeded.,SQL GRANTselect,2 ON,alice,.dept,3 TOPUBLIC;,Grant succeeded.,赋予对象能继续授权的权限,验证授权,数据字典表描述,ROLE_SYS_PRIVS,授予角色的系统权限,ROLE_TAB_PRIVS,授予角色的表的权限,USER_ROLE_PRIVS,被授予的角色,USER_TAB_PRIVS_MADE,在用户对象级别上被分配的对象权限,USER_TAB_PRIVS_RECD,授予用户的
7、对象权限,USER_COL_PRIVS_MADE,在用户对象列一级上被分配的对象权限,USER_COL_PRIVS_RECD,在指定列上分配给用户的对象权限,如何回收对象权限,使用,REVOKE,语句回收已经授给其他用户的权限,在授权时使用了,WITH GRANT OPTION,选项进行授权的用户的权限同样可以回收,REVOKE privilege,privilege.|ALL,ON object,FROM user,user.|role|PUBLIC,CASCADE CONSTRAINTS;,回收对象权限,作为用户,Alice,,将授予用户,Scott,对,dept,表的,SELECT,和,
8、INSERT,权限收回,SQL REVOKEselect,insert,2 ONdept,3 FROM,scott,;,Revoke succeeded.,回收对象权限,回收权限的注意事项:,如果赋予的权限牵涉到表格内两个字段,无法单独撤消某个字段的存取权限。,如果使用者被赋予,reference,权限,并且建立一个外键去参照其他表。当执行,revoke,指令撤消,reference,权限时必须加上,cascade,constrants,insert、update,与,reference,权限可以针对表格字段进行赋予动作。,如果使用者,A,拥有某个预存程序的执行权限,可透过该程序存取表格。权限赋予程序拥有者,根据权限赋予或撤消的时机不同,权限更改结果也许不会立即生效。角色将不会立即生效。,小结,CREATE USER,允许,DBA,创建用户,GRANT,允许用于授予其他用户访问用户对象的权限,CREATE ROLE,允许,DBA,创建一系列权限的集合,ALTER USER,允许用户修改自己的口令,REVOKE,从取消用户的某个对象权限,