用户角色及权限管理oracleg.pptx
《用户角色及权限管理oracleg.pptx》由会员分享,可在线阅读,更多相关《用户角色及权限管理oracleg.pptx(67页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2023/3/261管理用户、口令和资源用户、方案和profile1 用户 用户(也称为账户)是定义在数据库中的一个名称,它是oracle数据库的基本访问控制机制。当连接oracle数据库时,默认情况下必须提供用户名和口令。2 方案(schema)用户所拥有数据库对象的集合。对象是以用户来组织的,用户和方案是一一对应关系,并且二者名称相同。第1页/共67页2023/3/262管理用户、口令和资源用户、方案和profile(续)Scott用户拥有的对象属于scott方案,而system用户所拥有的对象属于system方案,访问数据库对象时应注意以下事项:(1)在同一个方案中不能存在同名对象,不同
2、方案的对象可以同名;(2)用户可以直接访问自己方案对象,如果要访问其他方案对象,则必须具有对象权限;(3)当用户要访问其他方案对象时,必须加方案名作为前缀。第2页/共67页2023/3/263 用户管理(课本第14章)1 1 创建用户 在oracleoracle中创建用户,使用create user create user 语句,一般是具有dbadba(数据库管理员)的权限才可以使用。格式:create usercreate user username username identified byidentified by password password Username Username
3、:要创建的用户名字 PasswordPassword:用户登录时的口令例:以scott scott 身份登录,并创建xiaomingxiaoming用户:create usercreate user xiaoming xiaoming identified byidentified by m123;m123;例:以system system 身份登录,并创建xiaoming1xiaoming1用户注:密码应该以字母开头。第3页/共67页2023/3/264用户管理1 创建用户(续)例:希望xiaoming查询emp表 select*from emp;提示:ERROR 位于第 1 行;ORA-0
4、0942:表或视图不存在 例:xiaoming 创建表 create table test1(userId varchar2(30),userName varchar2(30);提示:ERROR 位于第 1 行:ORA-01950:表空间SYSTEM中无权限原因在于:xiaoming不具有查询emp表和创建表的权限,即新创建的用户没有任何权限,甚至连登录的权限都没有。第4页/共67页2023/3/265用户管理2 给用户修改密码(1)若给自己修改密码直接使用:SQL password 用户名 或者直接用passw 如:password xiaoming;(2)若给别人修改密码,则须具有dba的
5、权限,或是拥有alter user的系统权限,如:SQL alter user 用户名 identified by 新密码;第5页/共67页2023/3/266用户管理3 删除用户 一般以dba的身份去删除某个用户,如果其他用户去删除用户,则需具有drop user的权限。格式:drop user 用户名cascade 若希望删除一个用户时,将该用户所创建的表也一并删除,则需要带参数cascade。第6页/共67页2023/3/267用户管理4 用户管理的案例 新创建的用户没有任何权限,甚至连登录数据库的权限都没有,需为其指定相应的权限。给一个用户赋权限用grant,收回权限用revoke。授
6、权的格式:Grant 权限名 to 用户名 例:xiaoming 登录数据库 conn xiaoming/m123;希望xiaoming 能登录数据库,需给他赋权:Grant connect to xiaoming 注意:system 和sys可以为xiaoming 赋权,scott不可以为其赋权,因此,应以system 或sys身份登录才可以赋权,而且connect 是一个角色不是权限。第7页/共67页2023/3/268用户管理5 特权用户(王 海 亮 p 2 2 8)特权用户:具有特殊权限(sysdba 或sysoper,sysoper 权限小于sysdba)的数据库用户,这类用户主要用
7、于执行数据库维护操作,例如启动数据库、关闭数据库、建立数据库以及执行备份和恢复等操作。例:System用户以sysdba用户身份登录数据库:conn system/manager as sysdba;注:以sysdba身份登录就相当于sys用户例:conn system/yhf123 as sysdba show user;shutdown immediate;关闭数据库 startup;开启数据第8页/共67页2023/3/269用户管理数据库的关闭(补充)1、shutdown normal 这是数据库关闭SHUTDOWN命令的确省选项。也就是说如果你发出SHUTDOWN这样的命令,也即是S
8、HUTDOWN NORNAL的意思。发出该命令后,任何新的连接都将再不允许连接到数据库。在数据库关闭之前,Oracle将等待目前连接的所有用户都从数据库中退出后才开始关闭数据库。采用这种方式关闭数据库,在下一次启动时不需要进行任何的实例恢复。但需要注意一点的是,采用这种方式,也许关闭一个数据库需要几天时间,也许更长。第9页/共67页2023/3/2610用户管理2、shutdown immediate 想很快地关闭数据库,常采用这种方式。当前正在被Oracle处理的SQL语句立即中断,系统中任何没有提交的事务全部回滚。如果系统中存在一个很长的未提交的事务,采用这种方式关闭数据库也需要一段时间(
9、该事务回滚时间)。系统不等待连接到数据库的所有用户退出系统,强行回滚当前所有的活动事务,然后断开所有的连接用户。第10页/共67页2023/3/2611用户管理3、shutdown transactional 该选项仅在Oracle 8i后才可以使用。该命令常用来计划关闭数据库,它使当前连接到系统且正在活动的事务执行完毕,运行该命令后,任何新的连接和事务都是不允许的。在所有活动的事务完成后,数据库将和 shutdown immediate同样的方式关闭数据库。第11页/共67页2023/3/2612用户管理 4、shutdown abort 这是关闭数据库的最后一招,也是在没有任何办法关闭数据
10、库的情况下才不得不采用的方式,一般不要采用。如果下列情况出现时可以考虑采用这种方式关闭数据库。1、数据库处于一种非正常工作状态,不能用shutdown normal或者shutdown immediate这样的命令关闭数据库;2、需要立即关闭数据库;3、在启动数据库实例时遇到问题;所有正在运行的SQL语句都将立即中止。所有未提交的事务将不回滚。Oracle也不等待目前连接到数据库的用户退出系统。下一次启动数据库时需要实例恢复,因此,下一次启动可能比平时需要更多的时间。第12页/共67页2023/3/2613用户管理权限 权限的分类:系统权限(140多)、对象权限(120多)系统权限:系统级控制
11、数据库的存取和使用机制。决定是否可以连接到数据库,在数据库中可以进行哪些系统操作。授予系统权限是由DBA完成的,如果要以其他身份授予系统权限,则要求该用户必须具有grant any privlege系统权限,或者具有相应的系统权限及其转授系统权限(with admin option).授予系统权限用grant命令完成。第13页/共67页2023/3/2614用户管理权限 授予系统权限的语法格式如下:Grant system_priv,system_priv,to Grant system_priv,system_priv,to user|role|public,user|role|public
12、with admin user|role|public,user|role|publicwith admin option;option;系统权限可以授予用户、角色和用户组public,public,当授予publicpublic后,使得所有用户都具有该系统权限,在授予系统权限时可以带有with admin option选项,带有该选项时,该用户或角色还可以将系统权限授予其他用户或角色。注意:unlimited tablespace unlimited tablespace 权限不能被授予角色。第14页/共67页2023/3/2615用户管理权限授予系统权限 为了让xiaoming具有创建表的
13、权限,需用system登录并为其赋权:(1)Grant resource to xiaoming;-可以创建表 Grant create table to xiaoming;-仅授予次权限不可以创建表 (2)Conn xiaoming/m123;Resource是一个角色,此时xiaoming具有创建表的权限。若希望xiaoming具有将此角色赋予其他用户的权限可以带上with admin option.create table test1(userId varchar2(30),userName varchar2(30);Desc test;(查看表结构)第15页/共67页2023/3/26
14、16用户管理权限授予系统权限例:以DBA身份登录,为blake用户授予create session、create table 和create view 权限,前两个权限带有with admin option选项,最后一个权限不带有该选项:grant create session,create talbe to blake with admin option;Grant create view to blake;第16页/共67页2023/3/2617用户管理权限显示系统权限1 显示所有系统权限 显示所有系统权限,dba和普通用户均可以通过查询数据字典视图system_privilege_map
15、:select*from system_privilege_map order by name;2 显示用户具有的系统权限(管理员用户才可以执行该操作)select*from dba_sys_privs where grantee=xiaoming2;select*from dba_sys_privs where grantee=XIAOMING2;dba_sys_privs表中各字段的含义:Grantee:权限拥有者,既可以是用户,也可以是角色;PRIVILEGE:系统权限名;ADM:转授系统权限,yes 表示可以,no表示不可以。第17页/共67页2023/3/2618用户管理权限显示系统
16、权限3 显示当前用户所具有的系统权限及转授系统权限选项查询数据字典视图dba_sys_privs(dba用户),普通用户查询user_sys_privs 视图。Select*from user_sys_privs ;4 显示当前会话所具有的系统权限,查询数据字典视图session_privs Select*from session_privs ;第18页/共67页2023/3/2619用户管理权限 收回系统权限 一般情况下,收回系统权限由DBA完成,如果要以其他身份收回系统权限,则要求该用户必须具有相应的系统权限及其转授系统权限选项(with admin option),语法如下:Revoke
17、 system_priv,system_privfrom user|role|public.user|role|public;注意:系统权限不级联收回例:conn system/yhf123;revoke create session from xiaoming2;第19页/共67页2023/3/2620用户管理权限对象权限:用于控制对指定数据库对象的访问,该权限 应该由该对象的拥有者为其他用户授权,非对象的拥有者不可以将对象权限授予其他用户,授权方式和系统权限的授权方式相同,即,用户对其他用户的数据对象(表,视图,存储过程)操作的授权。对象权限包括alter、delete、execute、i
18、ndex、insert、reference、select、update八种。默认情况下,当直接授予对象权限时,会将访问所有列的权限都授予用户。如果只允许用户操作某些列,则需要授予列权限,只能在insert、update和references上授予列权限。第20页/共67页2023/3/2621用户管理权限授予对象权限语法:grant obj_priv(column1,column2),obj_priv_2 (column1,column2).|allprivileges ON schema.object TO user_1,user_2.|public with grant option即:(
19、Grant 权限 on 对象名 to 用户名 with grant option)对象权限可以授予用户、角色和用户组public,当授予public后,使得所有用户都具有该对象权限,在授予对象权限时可以带有with grant option选项,带有该选项时,该用户还可以将系统权限授予其他用户,with grant option 不能授予角色。第21页/共67页2023/3/2622用户管理权限授予对象权限 授予对象权限是由对象的所有者来完成,DBA可以将任何对象上的对象权限授予其他用户,例:对象的拥有者给xiaoming2授予alter权限 Conn scott/tiger;Grant al
20、ter on emp to xiaoming2;例:dba给用户xiaoming2授予alter权限 Conn system/yhf123;Grant alter on scott.emp to xiaoming2;alter table scott.emp add id varchar2(4);-xiaoming修改scott.emp表 第22页/共67页2023/3/2623用户管理权限授予对象权限例:让Xiaoming拥有查询scott的emp表的权限 (1)grant select on emp to xiaoming;(scott,system,sys可以授权)(2)Select*f
21、rom scott.emp;注:对象权限不仅仅限于视图或表,也可以在列上授权。例:授予Xiaoming在scott的emp表上对ENAME列的更新权限。grant update(ENAME)on scott.emp to xiaoming1;-修改某一列 grant update on scott.emp to xiaoming1;-修改所有的列 update scott.emp set emp.sal=emp.sal+100;第23页/共67页2023/3/2624用户管理权限授予对象权限 为用户授予多个权限,则可以在一个grant语句中指定多个权限,并且各个对象权限之间用逗号隔开。格式:g
22、rant 权限1,权限2,权限n on 表名 to 用户名例如:grant select,update,delete,insert on scott.emp to xiaoming2为用户授予所有对象权限:grant all on scott.emp to xiaoming;收回所有权限:Revoke all on scott.emp from xiaoming;第24页/共67页2023/3/2625用户管理权限授予对象权限例:对象的拥有者给xiaoming2授予列权限 conn scott/tiger;grant update(sal)on emp to blake;Update scot
23、t.emp set sal=sal*1.1 where deptno=10;例:使用with grant option 选项 conn scott/tiger;grant select on emp to blake with grant option;第25页/共67页2023/3/2626用户管理权限显示对象权限 用户可以访问其方案的所有对象,若需要访问其他方案的对象时,必须具有对象权限。查询dba_tab_privs,可以显示用户或角色所具有的对象权限。(1)通过查询user_tab_privs,当前用户查看自己的权限 Select *from user_tab_privs;(2)Sys
24、通过查询数据字典视图dba_tab_privs,可以显示用户或角色所具有的对象权限。Select *from dba_tab_privs;select*from dba_tab_privs where grantee=XIAOMING;第26页/共67页2023/3/2627用户管理权限收回对象权限 收回权限是由对象的所有者来完成,DBA可以收回任何对象上的对象权限,如果要以其他身份收回对象权限,则要求该用户必须具有相应的对象权限及其转授系统权限选项(with grant option),语法如下:REVOKE object_privilege|ALL ON schema.object FRO
25、M user|role|PUBLIC CASCADE CONSTRAINTS;注:对象权限会被级联收回第27页/共67页2023/3/2628用户管理权限收回对象权限例:revoke select on emp from blake;Revoke all:撤销所有的权限;cascade constraints:如果用户在对象上定义了参照完整性约束,使用该选项可以取消对象上的权限,使oracle删除这些约束。第28页/共67页2023/3/2629角 色角色:具有名称的一组相关权限的组合,即将不同的权限集合在一起就形成了角色。可以使用角色为用户授权,也可以撤销角色。由于角色集合了多种权限,所以当
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 用户 角色 权限 管理 oracleg
限制150内