实验6 ORACLE的权限管理
- 格式:doc
- 大小:98.00 KB
- 文档页数:5
Oracle用户角色权限等操作oracle 赋予权限转发评论02月21日13:00最基础的sqlplus username/password@[sid] 连接数据库sqlplus username/password as sysdba 以管理员连接数据库管理员连接后创建用户sqlplus system/manager@demo as sysdba create user abc identified by abc ; 创建用户abc密码为abc grant all privileges to abc; 给abc用户赋予所有的权限给自己留个备份以备不时之需oracle grant授权语句--select * from dba_users; 查询数据库中的所有用户--alter user USERNAME account lock; 锁住用户--alter user USERNAME account unlock; 给用户解锁--create user USERNAME identified by USERPASS; 建立用户一般创建用户后需要授予链接数据库权限grant connect,resource to USERNAME;--grant create tablespace to USERNAME; 授权创建表空间--grant SELECT on TABLENAME to USERNAME; 授权查询授权其他动作格式相同如果要把所有表的查询权限分配给用户可以用这样的grant select any table to USERNAME;--grant execute on procedure1 to xujin 授权存储过程--grant UPDATE on TABLENAME to USERNAME with grant option; 授权更新权限转移给xujin用户,许进用户可以继续授权;--收回权限--revoke select on table1 from xujin1; 收回查询select表的权限;--revoke all on table1 from xujin;/*grant connect to xujin;revoke connect from xujingrant select on xezf.cfg_alarm to xujin;revoke select on xezf.cfg_alarm from xujin;*/--select table_name,privilege from dba_tab_privs where grantee='xujin' 查询一个用户拥有的对象权限--select * from dba_sys_privs where grantee='xujin' 查询一个用户拥有的系统权限--select * from session_privs --当钱会话有效的系统权限--角色--create role xujin1;--建立xujin1角色--grant insert on xezf.cfg_alarm to xujin1; 将插入表的信息--revoke insert on xezf.cfg_alarm from xujin1; 收回xujin1角色的权限--grant xujin1 to xujin ; 将角色的权限授权给xujin;-- create role xujin2;--grant xujin1 to xujin2; 将角色xujin1授权给xujin2;--alter user xujin default xujin1,xujin2; 修改用户默认角色-- DROP ROLE xujin1;删除角色1;--select * from role_sys_privs where role=xujin1;--查看许进1角色下有什么系统权限;--select granted_role,admin_option from role_role_privs where role='xujin2'--查看xujin1角色下面有什么角色权限--select * from role_sys_privs where role='xujin2'--select table_name,privilege from role_tab_privs where role='xujin1'--select * from dba_role_privs where grantee='xujin' --查看用户下面有多少个角色;======================详解=========================GRANT名称GRANT -- 赋予访问权限语法GRANT { { SELECT | INSERT | UPDATE | DELETE | REFERENCES | TRIGGER } [,...] | ALL [ PRIVILEGES ] }ON [ TABLE ] tablename [, ...]TO { username | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ]GRANT { { USAGE | SELECT | UPDATE }[,...] | ALL [ PRIVILEGES ] }ON SEQUENCE sequencename [, ...]TO { username | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ]GRANT { { CREATE | CONNECT | TEMPORARY | TEMP } [,...] | ALL [ PRIVILEGES ] } ON DATABASE dbname [, ...]TO { username | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ]GRANT { EXECUTE | ALL [ PRIVILEGES ] }ON FUNCTION funcname ( [ [ argmode ] [ argname ] argtype [, ...] ] ) [, ...]TO { username | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ]GRANT { USAGE | ALL [ PRIVILEGES ] }ON LANGUAGE langname [, ...]TO { username | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ]GRANT { { CREATE | USAGE } [,...] | ALL [ PRIVILEGES ] }ON SCHEMA schemaname [, ...]TO { username | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ]GRANT { CREATE | ALL [ PRIVILEGES ] }ON TABLESPACE tablespacename [, ...]TO { username | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ]GRANT role [, ...] TO username [, ...] [ WITH ADMIN OPTION ] 描述GRANT命令有两个基本变种:一个变种是给数据库对象(表、视图、序列、数据库、函数、过程语言、模式、表空间)赋予权限;一个变种是赋予一个角色中的成员关系。
第1篇一、概述实践教学管理系统(以下简称“系统”)是针对我国高校实践教学环节而开发的一款信息化管理平台。
该系统旨在提高实践教学的管理效率,实现实践教学资源的优化配置,为教师和学生提供便捷、高效的教学服务。
系统采用模块化设计,涵盖实践教学计划管理、教学资源管理、教学质量监控、实践教学评价等多个模块,能够满足实践教学全过程的智能化管理需求。
二、系统功能模块1. 实践教学计划管理(1)实践教学计划制定:教师可以根据课程要求和教学目标,制定详细的实践教学计划,包括实践教学目标、内容、形式、时间安排等。
(2)实践教学计划审核:学院领导或实践教学管理部门对实践教学计划进行审核,确保实践教学计划符合教学大纲要求。
(3)实践教学计划调整:根据实际情况,教师可以对实践教学计划进行调整,并及时通知相关人员和部门。
2. 教学资源管理(1)实践教学资源录入:教师可以将实践教学资源(如实验设备、教材、案例等)录入系统,方便管理和查询。
(2)实践教学资源分配:实践教学管理部门根据教学需求,将实践教学资源分配给相关教师和学生。
(3)实践教学资源更新:实践教学资源如有变更,教师可以及时更新系统中的资源信息。
3. 教学质量监控(1)实践教学过程监控:系统记录实践教学过程,包括实践教学时间、地点、参与人员、教学内容等,便于教学质量监控。
(2)实践教学评价:教师、学生、学院领导等可以对实践教学进行评价,反馈教学效果。
(3)教学质量分析:系统根据实践教学评价结果,对教学质量进行分析,为实践教学改进提供依据。
4. 实践教学评价(1)实践教学评价体系:系统提供实践教学评价体系,包括评价指标、评价标准等。
(2)实践教学评价实施:教师、学生、学院领导等根据评价体系对实践教学进行评价。
(3)实践教学评价结果分析:系统对实践教学评价结果进行分析,为实践教学改进提供参考。
5. 信息发布与通知(1)实践教学信息发布:系统可以发布实践教学相关信息,如实践教学通知、教学安排等。
一、概述Oracle数据库是当前企业中常用的数据库管理系统之一,而数据库管理人员在企业中扮演着至关重要的角色,他们负责数据库的管理与维护,包括权限设置与分配。
本文将探讨Oracle数据库管理人员权限设置及分配表的相关内容。
二、数据库管理员的权限1. 数据库管理员(DBA)是Oracle数据库中最高权限的用户,具有对数据库进行全面控制的特权。
他们可以创建、修改、删除数据库对象,分配SQL权限,管理数据库用户和角色等。
2. DBA用户的权限通常由系统管理员在安装数据库时创建,或是通过GRANT命令授予。
3. DBA用户可以通过GRANT和REVOKE命令控制其他用户的权限,以及管理数据库对象的安全性。
三、数据库操作员的权限1. 数据库操作员(DBO)是在数据库中具有一定权限的用户,通常负责对数据库进行日常操作。
2. DBO用户可以执行SELECT、INSERT、UPDATE、DELETE等操作,并且可以创建临时表和视图。
3. DBO用户的权限通常由DBA用户通过GRANT命令分配,可以根据需要灵活控制其权限范围。
四、权限设置的最佳实践1. 了解业务需求:在设置数据库用户的权限之前,需要充分了解企业的业务需求,确保每个用户都能够在权限范围内完成工作。
2. 分配最小权限原则:根据最小权限原则,应该仅分配用户所需的最低权限,以降低数据泄露和操作错误的风险。
3. 定期审计权限:定期对数据库用户的权限进行审计,及时发现和修复不合理的权限设置,保障数据库的安全性。
五、权限分配表的编制数据库管理人员需要编制一份权限分配表,清晰地记录每个用户的权限范围,确保权限设置的合理性与一致性。
权限分配表通常包括以下内容:1. 用户名称:列出数据库中所有的用户名称。
2. 权限说明:对用户的权限进行详细说明,包括SELECT、INSERT、UPDATE、DELETE等操作的权限范围。
3. 是否受限:记录是否对用户的权限进行了限制,比如是否禁止用户执行DROP TABLE等危险操作。
Oracle权限管理$$ 权限概述。
$$ 权限的作用举例。
$$ 现有的系统权限。
$$ 可授予的对象权限。
$$ 系统权限与对数据字典基础表的保护。
$$ 授予、回收权限。
$$ 查询权限信息。
$$ 在OEM中查看、授予、回收权限。
$$ 虚拟专用数据库与精细访问控制。
能够对Oracle数据库进行的各种操作都是设计好了的。
权限(privilege)是Oracle数据库预先定义好的、执行某些操作的能力。
角色(role)是权限管理的一种解决方案,是一组相关权限的集合。
用户(user)是能够访问数据库的人员。
权限、角色、用户是密不可分的。
DBA可以利用角色来简化权限的管理。
通过给用户授予适当的权限或角色,用户就能够登录数据库,在自己或其他用户的方案中创建、删除、修改、执行、引用数据库对象,或在数据库中执行特定的DML操作。
通过回收权限或角色,就能减少用户对数据库的操作能力。
总之,用户在数据库中能做什么和不能做什么,完全取决于他能够访问的数据和能执行的操作。
用户不可能在数据库中执行任何超过他所拥有的权限的操作。
Oracle数据库就是使用权限和角色来控制用户对数据库的操作,来保证数据库的安全性的。
1权限概述按照权限所针对的控制对象,可以将其分为系统权限、对象权限。
可以直接或间接地给用户授予权限。
用户的权限信息被保存在数据字典中。
1.1权限的分类与管理权限是预先定义好的、执行某种SQL语句或访问其他用户的方案对象的能力。
在Oracle 数据库中是利用权限来进行安全管理的。
这些权限可以分成两类。
$$ 系统权限(system privilege):指在系统级控制数据库的存取和使用的机制,即执行某种SQL语句的能力。
如,是否能启动、停止数据库,是否能修改数据库参数,是否能连接到数据库,是否能创建、删除、更改方案对象(如表、索引、视图、过程)等。
它一般是针对某一类方案对象或非方案对象的某种操作的全局性能力。
“提示”没有系统权限的用户实际上是个连登录能力都没有的、有名无实的用户。
Oracle数据库中的权限管理Oracle数据库是一款非常流行的关系型数据库管理系统,广泛应用于企业级应用程序和个人用户。
在应用中,数据库的权限管理是很重要的一个组成部分。
本文将介绍Oracle数据库中权限管理的相关知识。
1、Oracle数据库权限概述在Oracle数据库中,权限是指控制用户访问数据库对象(例如表、视图、过程)的能力。
Oracle数据库使用基于角色的权限管理系统,其中每个角色代表一个或多个权限。
然后,用户可以被分配给一个或多个角色,从而获得与该角色关联的所有权限。
2、Oracle数据库角色Oracle数据库提供了一些默认的角色,以及用户可以创建自定义角色的功能。
默认角色包括CONNECT、RESOURCE和DBA,其中CONNECT角色是所有用户的默认角色。
- CONNECT:给用户提供连接到数据库并执行基本操作的权限。
- RESOURCE:给用户提供创建、修改和删除表、序列、索引、程序包和其他数据库对象的权限。
- DBA:给用户超级用户权限,可以执行对数据库的所有操作。
用户可以创建自定义角色,并将所需的权限授予该角色。
然后,将相应的用户分配到该角色中。
这种灵活性有助于数据库管理员更好地管理数据库中的各种用户类型。
为授予权限,数据库管理员必须指定要授予的角色和对象。
可以授予对象级的权限,或授予系统级的全局权限。
要授予对象级的权限,请使用GRANT命令,并指定要授予的角色和对象。
例如,以下命令将授予USER1角色对CUSTOMER表的SELECT权限:GRANT SELECT ON CUSTOMER TO USER1;要授予系统级的全局权限,请使用GRANT命令和WITH ADMIN OPTION子句。
此子句允许接收权限的用户授予该权限给其他用户或角色。
例如,以下命令将授予USER2角色CREATE ANY TABLE权限,并允许该角色进一步授予该权限:GRANT CREATE ANY TABLE TO USER2 WITH ADMIN OPTION;4、Oracle数据库权限回收可以使用REVOKE命令取消授权给某个角色。
Oracle 用户权限管理方法Oracle 用户权限管理方法,对于想要学习oracle安全的朋友,是个入门级的资料。
sys;//系统管理员,拥有最高权限system;//本地管理员,次高权限scott;//普通用户,密码默认为tiger,默认未解锁sys;//系统管理员,拥有最高权限system;//本地管理员,次高权限scott;//普通用户,密码默认为tiger,默认未解锁二、登陆sqlplus / as sysdba;//登陆sys帐户sqlplus sys as sysdba;//同上sqlplus scott/tiger;//登陆普通用户scottsqlplus / as sysdba;//登陆sys帐户sqlplus sys as sysdba;//同上sqlplus scott/tiger;//登陆普通用户scott三、管理用户create user zhangsan;//在管理员帐户下,创建用户zhangsanalert user scott identified by tiger;//修改密码create user zhangsan;//在管理员帐户下,创建用户zhangsanalert user scott identified by tiger;//修改密码四,授予权限1、默认的普通用户scott默认未解锁,不能进行那个使用,新建的用户也没有任何权限,必须授予权限/*管理员授权*/grant create session to zhangsan;//授予zhangsan用户创建session的权限,即登陆权限grant unlimited session to zhangsan;//授予zhangsan用户使用表空间的权限grant create table to zhangsan;//授予创建表的权限grante drop table to zhangsan;//授予删除表的权限grant insert table to zhangsan;//插入表的权限grant update table to zhangsan;//修改表的权限grant all to public;//这条比较重要,授予所有权限(all)给所有用户(public)/*管理员授权*/grant create session to zhangsan;//授予zhangsan用户创建session的权限,即登陆权限grant unlimited session to zhangsan;//授予zhangsan用户使用表空间的权限grant create table to zhangsan;//授予创建表的权限grante drop table to zhangsan;//授予删除表的权限grant insert table to zhangsan;//插入表的权限grant update table to zhangsan;//修改表的权限grant all to public;//这条比较重要,授予所有权限(all)给所有用户(public)2、oralce对权限管理比较严谨,普通用户之间也是默认不能互相访问的,需要互相授权/*oralce对权限管理比较严谨,普通用户之间也是默认不能互相访问的*/grant select on tablename to zhangsan;//授予zhangsan用户查看指定表的权限grant drop on tablename to zhangsan;//授予删除表的权限grant insert on tablename to zhangsan;//授予插入的权限grant update on tablename to zhangsan;//授予修改表的权限grant insert(id) on tablename to zhangsan;grant update(id) on tablename to zhangsan;//授予对指定表特定字段的插入和修改权限,注意,只能是insert和updategrant alert all table to zhangsan;//授予zhangsan用户alert任意表的权限/*oralce对权限管理比较严谨,普通用户之间也是默认不能互相访问的*/grant select on tablename to zhangsan;//授予zhangsan用户查看指定表的权限grant drop on tablename to zhangsan;//授予删除表的权限grant insert on tablename to zhangsan;//授予插入的权限grant update on tablename to zhangsan;//授予修改表的权限grant insert(id) on tablename to zhangsan;grant update(id) on tablename to zhangsan;//授予对指定表特定字段的插入和修改权限,注意,只能是insert和updategrant alert all table to zhangsan;//授予zhangsan用户alert任意表的权限五、撤销权限基本语法同grant,关键字为revoke基本语法同grant,关键字为revoke六、查看权限select * from user_sys_privs;//查看当前用户所有权限select * from user_tab_privs;//查看所用用户对表的权限select * from user_sys_privs;//查看当前用户所有权限select * from user_tab_privs;//查看所用用户对表的权限七、操作表的用户的表/*需要在表名前加上用户名,如下*/select * from zhangsan.tablename/*需要在表名前加上用户名,如下*/select * from zhangsan.tablename八、权限传递即用户A将权限授予B,B可以将操作的权限再授予C,命令如下:grant alert table on tablename to zhangsan with admin option;//关键字with admin optiongrant alert table on tablename to zhangsan with grant option;//关键字with grant option效果和admin类似grant alert table on tablename to zhangsan with admin option;//关键字with admin optiongrant alert table on tablename to zhangsan with grant option;//关键字with grant option效果和admin类似九、角色角色即权限的集合,可以把一个角色授予给用户create role myrole;//创建角色grant create session to myrole;//将创建session的权限授予myrolegrant myrole to zhangsan;//授予zhangsan用户myrole的角色drop role myrole;删除角色/*但是有些权限是不能授予给角色的,比如unlimited tablespace和any关键字*/。
Oracle 管理系统权限系统权限是指执行特定类型SQL 语句的权利。
一般情况下,系统权限需要授予数据库管理人员和应用程序开发人员。
数据库管理人员还可以将系统权限授予其他用户,并允许用户将该系统权限再授予另外的用户。
同时,也可以将系统权限从被授权用户中收回系统权限。
1.系统权限的分类Oracle 提供了200多种系统权限,每一种系统权限分别能使用户进行某种或某一类特定的操作。
数据字典视图SYSTEM_PRIVILEGE_MAP 中包括了Oracle 数据库中的所有系统权限,通过查询该视图可以了解系统权限的信息:SQL> connect system/password 已连接。
SQL> select count(*) from system_privilege_map;COUNT(*) ---------- 206数据库管理员可以将系统权限授予用户、角色、PUBLIC 公共用户组。
一般情况下,系统权限只能授予值得信任的用户,以免系统权限被滥用,而危及到数据库的安全性。
对于数据库管理员而言,如果要对数据库中的对象进行管理,所以必须具有如表13-1所示的系统权限。
表13-1 DBA系统权限(数据库对象管理部分) 系统权限权限功能ANALYZE ANY 允许对任何模式中的任何表、聚簇或者索引执行分析,查找其中的迁移记录和链接记录CREATE ANY CLUSTER 在任何用户模式中创建聚簇 ALTER ANY CLUSTER 在任何用户模式中更改聚簇 DROP ANY CLUSTER 在任何用户模式中删除聚簇 CREATE ANY INDEX 在数据库中任何表上创建索引 ALTER ANY INDEX 在任何模式中更改索引 DROP ANY INDEX 任何模式中删除索引CREATE ANY PROCEDURE 在任何模式中创建过程、函数和包 ALTER ANY PROCEDURE 在任何模式中更改过程、函数和包 DROP ANY PROCEDURE 在任何模式中删除过程、函数或包 EXECUTE ANY PROCEDURE 在任何模式中执行或者引用过程GRANT ANY PRIVILEGE 将数据库中任何权限授予任何用户,这是DBA 授予系统权限的基本要求ALTER ANY ROLE修改数据库中任何角色注 意 PUBLIC 是在创建数据库时被自动创建的用户组。
实验6 Oracle的权限管理
1:创建用户
创建用户就是在数据库中增加一个用户帐户,用户可以使用该帐户访问数据库。
可以使用 create user 创建账户,语法形式如下:
create user user_name
identified by password
其中:
user_name指定将要创建的数据库用户的名称
password指定该数据库用户的口令。
在创建用户时,创建者应该具有create user系统权限。
练习1:
以scott/tiger身份创建一个用户Hillary,其口令是window.
创建用户之后,如果没有为该用户授予相应的连接数据库的权限,该用户依然不能连接到数据库中。
需要为用户授予create session的权限。
语法如下:grant create session to user_name
为了保护数据库的安全,用户口令应该经常修改。
可以使用两种方式修改用户口令。
第一种方式是使用alter user语句修改用户的口令,语法形式如下:alter user user_nam
identified by new_password
第二种方式是使用password命令。
前一种既可以修改当前用户的口令,也可以修改其他用户的口令;后一种只能用来修改当前用户的口令。
2. 授予权限
下面讲述假定您在 SCOTT 登录中工作如何授予和撤消权限。
而且,我们将对 DEMO 授予权限或从 DEMO 登录撤消权限。
注意:SCOTT 登录的密码是 TIGER,而 DEMO 登录的密码在 DEMO 之中。
2.1 授予特定的权限
实验1:要将 SELECT 权限授予 emp 表上的 DEMO,请给出如图1中所示的命令。
图 1
现在就由 SCOTT 授予了 DEMO 选择记录的权限。
那么,DEMO 将如何访问记录。
为此,请执行如图2中所示的步骤。
图2
在上面的命令中,我们首先连接到 DEMO 登录,然后发出选择语句,在那里,在指定表名称时我们把授权人登录名放在了表名称的前面
现在,由于授予人(即 SCOTT)只给了选择权限,DEMO 用户只能选择记录。
如果 DEMO 用户试图进行其他操作,就会收到出错信息。
尝试给出如图3中所示的命令,以便理解该命令之后的逻辑。
图 3
2.2 授予所有权限
在上面的示例中,我们已经了解如何授予特定权限。
实验2:下面我们将举一个我们可以向其他用户授予所有权限的实例。
执行如图4中所示的步骤,向其他用户授予所有权限。
图 4
在上图中,我们首先连接到 SCOTT。
然后,我们向 DEMO 授予了所有权限。
授予权限后,我们连接到 DEMO 登录。
我们首先发出从授予表中查看所有记录的选择语句。
然后,我们更新记录以更改表中的值。
授予所有权限后,被授权人就可执行所有 DML 任务。
注意:被授权人不能删除表,即使授权人给予其 ALL 权限。
2.3 理解 WITH GRANT OPTION
到现在为止,我们明白了对象的所有者(授权人)向另一个用户(被授权人)授予权限。
而且,被授权人根据其所拥有的权限利用对象。
但是,有时被授权人本身想向第三个用户授予授权人表。
假如主授权人利用 WITH GRANT OPTION 授予了该表,正常情况下,被授权人无法这样做。
实验3:下面看看一个使用 WITH GRANT OPTION 的示例。
执行如图5中所示的步骤。
图 5
DEMO 将 Scott 的表授予用户 ANI 之后,ANI 访问该表的方式显示在图6之中。
执行如下步骤,了解整个情况。
图 6
现在,由于 SCOTT 已授予 DEMO 所有权限。
DENO 在向 ANI 授予表时可授予任何权限。
但是,假定 SCOTT 只授予对表的选择权限,则 DEMO 就只能向 ANI 授予选择权限。
接下来的步骤是,DEMO 向 ANI 授予权限,DEMO 只授予对表的
插入权限。
因此,当 ANI 试图使用选择语句时,他就会收到出错信息。
但是,他可以正常插入值。
3 撤消权限
我们使用 GRANT 命令向用户授予权限。
而 REVOKE 用来从用户那里撤消权限。
实验4:执行如图7 中所示的步骤,撤消 DEMO 对 ret_emp 表的权限。
图 7
注意:当 SCOTT 撤回 DEMO 的权限后,DEMO 授予 ANI 的权限也自动撤消。
您也可以一次只从被授权人撤回某项特定权限。
练习:
1. 利用下列字段信息创建表:
cno number
cname varchar2(10)
ctele number
2. 在表中插入 8 项记录。
3. 更新任意一项记录。
4. 删除第四项记录。
5. 现在,保存插入和更新的记录,并撤消删除的记录。
6. 用 WITH GRANT OPTION 选项向 DEMO 授予上面的表的访问权限。
7. 然后,DEMO 将该表授予其他用户。
8. 撤消 DEMO 的权限。