SQL11_用户和权限

上传人:猪** 文档编号:243145469 上传时间:2024-09-16 格式:PPT 页数:45 大小:1.54MB
返回 下载 相关 举报
SQL11_用户和权限_第1页
第1页 / 共45页
SQL11_用户和权限_第2页
第2页 / 共45页
SQL11_用户和权限_第3页
第3页 / 共45页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,第一级,第二级,第三级,第四级,45,home back,first,prev,next last,目录,控制用户访问,创建和撤消对象权限,控制用户访问,学习内容,在本课中,您将学习:,比较对象权限与系统权限间的区别,构建用户对数据库的访问权限所需的两个命令,构建和执行,GRANTON TO,语句,将其方案中对象的权限分配给其他用户和(或)“,PUBLIC”,查询数据字典以确认是否已授予权限,学习目的,如果您与他人共用同一台计算机,无论是在学校还是家中,都可能有过您正在使用或已保存的内容被他人查看、更改或删除的经历。要是能控制他人对您个人文件的权限就好了!对于数据库来说,正如您在学校或家中使用电脑的情况一样,数据安全非常重要。,在本课中,您将学习如何授予或撤消对数据库对象的访问权限,从而控制哪些人可以更改、删除、更新、插入、索引或引用数据库对象。,控制用户访问,在多用户环境下,需要维护数据库访问和使用的安全性。为了,Oracle Server,数据库安全性,可以执行以下操作:,控制数据库访问权限,授予对数据库中特定对象的访问权限,使用,Oracle,数据字典确认授予的权限和收到的权限,为数据库对象创建同义词,数据库安全性,数据库安全性可以分成以下两个类别:,系统安全性包括在系统级别上访问和使用数据库,例如创建用户、用户名和口令,为用户分配磁盘空间,授予用户可以执行诸如创建表、视图和序列的系统权限。有一百多种不同的系统权限。,数据安全性(也称为对象安全性)与对象权限关联,对象权限包括访问和使用数据库对象以及用户可对这些对象执行的操作。这些权限包括可以执行,DML,语句。,权限和方案,权限是指执行特定,SQL,语句的权利。,DBA,是高级用户,该类用户可以授予其他用户访问数据库及其对象的权限。,用户需要具有系统权限才能访问数据库;需要具有对象权限才能处理数据库中对象的内容。,用户还具有可为其他用户或角色(称为相关权限组)授予其它权限的权限。,权限和方案,方案是对象(例如表、视图和序列)的集合。,方案归数据库用户所有且与该用户同名。,在本课中,您的方案名是您所在城市、国家,/,地区、学校名、课程名和学生编号的组合。例如:,uswa_skhs_sql01_s22.,系统安全性,这一级别的安全性包括在系统级别上访问和使用数据库。有一百多种不同的系统权限。,通常只有,DBA,才拥有能创建或删除用户、删除表或备份表的系统权限。,右侧的表中列出了一些系统权限。一般情况下,,DBA,不会将这些系统权限授予其他用户。您希望其他用户能删除您的表吗?,系统权限,DBA,通过执行,CREATE USER,语句创建了用户。,CREATE USER,用户,IDENTIFIED BY,口令,;,CREATE USER,scott,IDENTIFIED BY ur35scott;,此时,用户没有任何权限。然后,,DBA,可以为该用户授予所需的权限。,使用,ALTER USER,语句,用户可以更改他们的口令。,ALTER USER,scott,IDENTIFIED BY imscott35;,系统权限,- 作为,sys,执行,create user s02 identified by s02;,grant create session to s02;,-,作为,s02,执行,connect s02/s02 ,xe,;,-,口令已更改,alter user s02 identified by s0202;,-,作为,sys,执行,口令已更改,alter user s02 identified by s02;,用户系统权限,DBA,使用,GRANT,语句可将系统权限分配给用户。系统权限决定了用户在数据库级别上可以执行的操作。一旦将权限授予了用户,该用户便可以立即使用这些权限。,GRANT privilege , privilege.,TO user , user| role, PUBLIC.;,GRANT create session, create table, create sequence, create view,TO,scott,;,用户系统权限,用户必须拥有,CREATE SESSION,权限和用户标识才能访问数据库。,在,Oracle Application Express,中不能发出,CREATE SESSION,命令,此操作自动在后台执行。,但是在,sqlplus,中可以执行,CREATE SESSION,命令,对象安全性,这一级别的安全性包括访问和使用数据库对象以及用户可对这些对象执行的操作,。,对象安全性,每个对象都有特定的一组可授予的权限。,下表针对各种对象列出了相应的权限。关于对象权限,请务必注意以下四点:,1.,适用于序列的权限只有SELECT 和ALTER。请记住,序列使用ALTER 可以更改INCREMENT、MAXVALUE、CACHE/NOCACHE 或CYCLE/NOCYCLE 选项。使用ALTER 不能更改START WITH。,对象安全性,2.,可以针对表中的单个列授予,UPDATE,、,REFERENCES,和,INSERT,权限。例如:,GRANT UPDATE(salary) ON employees TO,allison_plumb,;,3.,可以通过创建包含列子集的视图,只对视图授予,SELECT,权限。不能对单个列授予,SELECT,权限。,4.,对同义词授予的权限会转换为对同义词所引用基表的权限。换而言之,同义词是简单、更易于使用的新名称。使用该名称授予权限就如同对表本身授予权限一样,。,PUBLIC,关键字,表的所有者可以使用,PUBLIC,关键字将访问权限授予所有用户。,以下示例允许系统中的所有用户查询艾丽丝的“部门”表中的数据。,GRANT select,ON,alice.departments,TO PUBLIC;,PUBLIC,关键字,如果语句未使用对象的全名,则,Oracle,服务器会隐式地将当前用户(或方案)的名称作为对象名的前缀。,例如,如果用户,scott,查询,departments,表,系统会从,scott,. Departments,表中进行检索。,如果语句未使用对象的全名,并且当前用户不拥有该名称的对象,则系统会使用,PUBLIC,作为对象名称的前缀。,例如,如果用户,scott,查询,user_objects,表,而这个表并不属于,scott,,系统会使用,PUBLIC.,user_objects,公用同义词从数据字典视图中进行选择。,确认授予的权限,如果您尝试执行未经授权的操作,例如从某个表中删除一行,而对于这个表您不具有,DELETE,权限,则,Oracle,服务器不会执行该操作。,如果收到,Oracle,服务器错误消息“,table or view does not exist,(此表或视图不存在)”,则表明您可能执行了以下操作之一:,指定了不存在的表或视图,尝试对您不具有适当权限的表或视图执行了某项操作,确认授予的权限,您可以访问数据字典来查看您所拥有的权限。右侧的表对各种数据字典视图进行了说明。,使用,Oracle Application Express Developer,,输入,USER_ROLE_PRIVS,,选择放大镜,然后选择“,Query By Example,(按示例查询)”中的任意项。此时会返回他们的权限。,术语,本课中使用的关键术语包括:,Privilege(,权限,),System privileges(,系统权限,),Object privileges(,对象权限,),System security(,系统安全性,),Object security(,对象安全性,),Schema(,方案,),Role(,角色,),GRANT,privilege(,GRANT,权限,),PUBLIC,keyword(,PUBLIC,关键字,),CREATE SESSION,privilege(,CREATE,SESSION,权限,),小结,在本课中,您应该已经学会:,比较对象权限与系统权限间的区别,构建用户对数据库的访问权限所需的两个命令,构建和执行,GRANTON TO,语句,将其方案中对象的权限分配给其他用户和(或)“,PUBLIC”,查询数据字典以确认是否已授予权限,创建和撤消对象权限,学习内容,在本课中,您将学习:,描述“角色,(ROLE)”,的定义及其具有的优点,构建一个语句,以便创建一个角色并为该角色授予权限,构建,GRANT .ON .TO.WITH GRANT OPTION,语句将对方案中对象的权限分配给其他用户和(或),PUBLIC,(公众),构建并执行语句,从用户和(或),PUBLIC“,撤消,(REVOKE)”,对象权限,说明数据库链接的用途,学习目的,如果您与他人共用同一台计算机,无论是在学校还是家中,都可能有过您正在使用或已保存的内容被他人查看、更改或删除的经历。要是能控制他人对您个人文件的权限就好了!对于数据库来说,正如您在学校或家中使用电脑的情况一样,数据安全非常重要。,在本课中,您将学习如何授予或撤消对数据库对象的访问权限,从而控制哪些人可以更改、删除、更新、插入、索引或引用数据库对象。,角色,角色是可以授予用户的相关权限组。角色使撤消和维护权限变得更容易。一个用户可以访问几个角色,而同一角色也可以分配给几个用户。角色通常是为数据库应用程序创建的。,要创建和分配角色,首先,DBA,必须创建角色。然后,,DBA,可以将权限分配给角色或将角色分配给用户。,角色,使用以下语法创建角色:,CREATE ROLE role_name;,创建角色之后,,DBA,可以使用,GRANT,语句将角色分配给用户,也可以将权限分配给角色。所给示例创建了一个经理角色,并允许经理创建表和视图。然后将该角色授予某个用户。现在,该用户可以创建表和视图。如果为用户授予多个角色,则这些用户会收到与所有这些角色相关联的所有权限。,注:,CREATE ROLE,是尚未分配给,Academy,教室的系统权限。,角色特性,角色是相关权限组。,可以将角色授予用户。,角色可以简化授予和撤消权限的过程。,角色由,DBA,创建。,权限1,权限2,权限,n, ,角色1,用户1,权限21,权限22,权限2,n, ,角色2,用户2,用户,n,授予对象权限,使用以下语法授予对象权限,:,GRANT,object_priv,(column_list),ON object_name,TO user|role|PUBLIC,WITH GRANT OPTION;,对象权限准则,要对某个对象授予权限,该对象必须在您自己的方案中,或者您具有,WITH GRANT OPTION,对象权限。,对象所有者可以将该对象的任何对象权限授予数据库的任何其他用户或角色。,对象所有者会自动获得该对象的所有对象权限。,GRANT,示例,Scott King,(用户名scott_king),已经创建了,d_songs,表。,在右侧的示例,1,中,授予所有用户对,Scott,的,d_songs,表的,SELECT,权限。,示例,2,将对,Scott,的,d_songs,表中特定列的,UPDATE,权限授予,jeninfer_cho,和,manager,角色。,如果,jeninfer,现在希望从,Scott,的表中选择数据,她可以使用示例,3,中的语法。,或者,,jeninfer,可以为,Scott,的表创建同义词,然后从该同义词中进行检索。请参阅示例,4,和示例,5,中的语法。,对于不同类型的方案对象,可以使用的对象权限也不同。对于用户方案中所包含的方案对象,该用户自动拥有这些对象的全部权限。用户可以将自己所拥有的任何方案对象上的任何对象权限授予其他用户或角色。,WITH GRANT OPTION,使用,WITH GRANT OPTION,子句授予的权限可由被授权者传递给其他用户和角色。,撤消授权者的权限时,使用,WITH GRANT OPTION,子句授予的对象权限也会被撤消。,以下示例授予用户,scott,对您的,d_songs,表的访问权限,以及查询该表和向表中添加行的权限。本示例还允许,scott,将这些权限授予其他人。,GRANT select, insert ON d_songs TO,scott_king,WITH GRANT OPTION;,WITH GRANT OPTION,- 传递授权是否会收回试验,-,ssession,sys,GRANT select on,scott.emp,to,zxg,WITH GRANT OPTION;,CREATE USER,zzz,IDENTIFIED BY,zzz,;,GRANT connect TO,zzz,;,-,ssession,zxg,select * from,scott.emp,;,GRANT select on,scott.emp,to,zzz,WITH GRANT OPTION;,-,ssession,zzz,select * from,scott.emp,;,-,ssession,sys,REVOKE select on,scott.emp,FROM,zxg,;,-,ssession,zzz,-,失败,说明传递授权也会级联回收,select * from,scott.emp,;,SYS,ZXG,ZZZ,PUBLIC,关键字,表的所有者可以使用,PUBLIC,关键字将访问权限授予所有用户。以下示例允许系统中的所有用户查询,jason,的,d_songs,表中的数据:,GRANT select,ON,jason_tsang.d_songs,TO PUBLIC;,如果您尝试执行未经授权的操作,例如从某个表中删除一行,而对于这个表您不具有,DELETE,权限,则,Oracle Server,不会执行该操作。,如果收到,Oracle Server,错误消息“,table or view does not exist,(此表或视图不存在)”,则表明您可能执行了以下操作之一:,指定的表或视图不存在,尝试对您不具有适当权限的表或视图执行某项操作,确认权限,您可以访问数据字典来查看您所拥有的权限。,右侧的表对各种数据字典视图进行了说明。,撤消对象权限,使用,REVOKE,语句可以删除授予其他用户的权限。,REVOKE privilege , privilege.|ALL,ON object,FROM user, user.|role|PUBLIC,CASCADE CONSTRAINTS;,使用,REVOKE,语句,会撤消指定用户的指定权限,如果被撤消权限的用户在此之前还通过,WITH GRANT OPTION,子句将这些权限授予了任何其他用户,则也会撤消这些用户的相应权限。,必须使用,CASCADE CONSTRAINTS,才能删除通过REFERENCES,权限对该对象实行的任何引用完整性约束条件,。,CASCADE CONSTRAINTS,示例,- 作为,sys,执行,create table,emp(eno,number primary key);,grant,select,references(eno,) on,sys.emp,to s02;,-,作为,s02,执行,create table,dept(mnrno,number,constraint,dept_mnrno_fk,references,sys.emp(eno,);,select constraint_name,column_name from user_cons_columns where table_name=DEPT;,-,作为,sys,执行,revoke references on,sys.emp,from s01 cascade constraint;,-,作为,s02,执行,结果显示,未选定行,select constraint_name,column_name from user_cons_columns where table_name=DEPT;,撤销对象权限,以下示例撤消了用户,scott,对,d_songs,表的,SELECT,和,INSERT,权限。,REVOKE select, insert ON d_songs FROM,scott_king,;,如果使用,WITH GRANT OPTION,子句为用户授予权限,则,被授权用户也可以使用,WITH GRANT OPTION,子句为其他用户授予权限。,这意味着可能会出现一条长长的被授权者链,但是不允许循环授予权限。,如果所有者撤消了某个用户的某项权限,而该用户将多项权限授予了其他用户,则该撤消语句会级联撤消所有已授予的权限。,撤销对象权限,例如,如果用户,A,使用,WITH GRANT OPTION,子句将对表的,SELECT,权限授予了用户,B,,则用户,B,也可以使用,WITH GRANT OPTION,子句将,SELECT,权限授予用户,C,。现在,用户,C,可以将,SELECT,权限授予用户,D,。,撤销对象权限,但是,如果用户A 撤消了用户B 的权限,则也会撤消已授予用户C 和D,的权限,。,数据库链接,数据库链接是一个指针,用于定义从一个,Oracle,数据库到另一个,Oracle,数据库的单向通信路径。,链接指针实际上被定义为数据字典表中的一个条目。要访问该链接,必须连接到包含数据字典条目的本地数据库。,数据库链接,数据库链接的连接是单向的,这意味着,连接到本地数据库,A,的客户机可以使用数据库,A,中存储的链接访问远程数据库,B,中的信息,,但是连接到数据库,B,的用户不能使用相同的链接访问数据库,A,中的数据。,如果数据库,B,中的本地用户希望访问数据库,A,中的数据,他们必须定义存储在数据库,B,的数据字典中的链接。,创建数据库链接,-,在,Oracle Application Express,中,到数据库的连接不是固定连接,因此此功能不可用。,在,SQLPlus,中可创建,数据库链接,数据库链接,A,数据库链接的连接使本地用户可以访问远程数据库中的数据。要建立该连接,分布式系统中的每个数据库都必须具有唯一的全局数据库名。全局数据库名唯一标识分布式系统中的数据库服务器。,数据库链接的显著优点在于它们允许用户访问远程数据库中另一个用户的对象,因此它们由对象所有者的权限集进行约束。换而言之,本地用户可以访问远程数据库,而不必是该远程数据库的用户。本示例说明用户,scott_king,可以访问远程数据库(全局名为,HQ.ACME.COM,)中的,EMP,表。,数据库链接,一般情况下,,DBA,负责创建数据库链接。数据字典视图,USER_DB_LINKS,包含有关用户对其具有访问权限的链接的信息。一旦创建了数据库链接,便可以针对远程站点中的数据编写,SQL,语句。,如果创建了同义词,可以使用该同义词编写,SQL,语句。例如:,CREATE PUBLIC SYNONYM HQ_EMP,FOR,empHQ.ACME.COM,;,SELECT * FROM HQ_EMP;,不能授予对远程对象的权限,。,小结,在本课中,您应该已经学会:,描述“角色,(ROLE)”,的定义及其具有的优点,构建一个语句,以便创建一个角色并为该角色授予权限,构建,GRANT .ON .TO.WITH GRANT OPTION,语句将对方案中对象的权限分配给其他用户和(或),PUBLIC,(公众),构建并执行语句,从用户和(或),PUBLIC“,撤消,(REVOKE)”,对象权限,说明数据库链接的用途,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!