- 浏览: 45499 次
- 性别:
- 来自: 大连
最新评论
一、概述
这一部分我们主要看看Oracle如何管理权限和角色,权限和角色的区别在哪里。
当刚刚建立用户时,用户没有任何权限,也不能执行任何操作。如果要执行某种特定的数据库操作,则必须为其授予系统的权限。如果用户要访问其他方案的对象,则必须为其授予对象的权限,为了简化权限的管理,可以使用角色。这里我们会详细介绍。
二、权限
权限是指执行特定类型的Sql命令或是访问其他方案对象的权利,包括系统权限和对象权限。
1、系统权限
A、系统权限的介绍
系统权限是指执行特定类型Sql命令的权利,它用于控制用户可以执行的一个或是一组数据库操作。比如当用户具有create table权限是,可以在其方案中建表,当用户具有create any table权限时,可以在任何方案中建表。Oracle提供了100多种系统权限。
常用的有
create session
连接数据库
create view
创建视图
create procedure
创建过程、函数、包
create cluster
建簇
create table
创建表
create public synonym
创建同义词
create trigger
创建触发器
B、显示系统权限
Oracle提供了100多种系统权限,而且Oracle的版本越高,提供的系统权限就越多,我们可以查询数据字典视图system_privilege_map,可以显示所有系统权限。
sql>select * from system_privilege_map order by name;
三、授予系统权限
一般情况,授予系统权限是有dba完成的,如果用其他用户来授予系统权限,则要求该用户必须具有grant any privilege的系统权限在授予系统权限时,可以带有with admin option选项,这样,被授予权限的用户或是角色还可以将该系统权限授予其他的用户或是角色。
案例:
1、创建两个用户ken,tom,初始阶段他们没有任何权限,如果登录就会给出错误信息。
sql>create user ken identified by m123;
sql>create user tom identified by m123;
2、给用户ken授权
sql>grant create session,create table to ken with admin option;
sql>grant create view to ken;
3、给用户tom授权
我们可以通过ken给tom授权,因为with admin option是加上的。当然也可以通过DBA给tom授权,我们就用ken给tom授权。
sql>grant create session,create table to tom with admin option;
sql>grant create view to tom;——这个是不可以的,因为Ken没有该权限的下放权限。
四、回收系统权限
一般情况下,回收系统权限是dba来完成的,如果其他的用户来回收系统权限,要求该用户必须具有相应系统权限及转授系统权限的选项(with admin option)。回收系统权限使用revoke来完成。
当回收了系统权限后,用户就不能执行相应的操作了,但是请注意,系统权限不是级联回收的。
执行以下语句:
sql>revoke create session from ken;
说明:DBA执行了该语句后回收了Ken的登录权限后,Ken自然就不能再登录了,有Ken下放的该权限所有者tom还是可以正常登录的。
五、对象权限
指访问其他方案对象的权利,用户可以直接访问自己方案的对象。但是如果要访问别的方案的对象,则必须具有对象的权限。比如Smith用户要访问scott.emp表(scott:方案,emp:表),则必须在scott.emp表上具有对象的权限。
常用的有:
alter
修改表结构
delete
删除数据
select
查询数据
insert
添加数据
update
修改数据
index
在表上建立索引
references
引用
execute
执行
1、显示对象权限
通过数据字典视图可以显示用户或是角色所具有的对象权限。视图为dba_tab_privs
sql>select distinct privilege from dba_tab_privs;
sql>select grantor,owner,table_name,privilege from dba_tab_privs where grantee='Black';
2、传授对象权限
对象权限可以授予用户、角色和public。在授予对象权限是,如果带有with grant option选项,则可以将该权限转授给其他用户,但是要注意with grant option选项不能被授予角色。
1、monkey用户要操作scott.emp表,则必须授予相应的对象权限
希望monkey可以查询scott.emp表的数据,怎么操作
sql>grant select on emp to monkey;
希望monkey可以修改scott.emp表的数据,怎么操作
sql>grant update on emp to monkey;
希望monkey可以删除scott,emp表的数据,怎么操作
sql>grant delete on emp to monkey;
有没有更加简单的方法,一次吧所有的权限赋给monkey
sql>grant all on emp to monkey;
2、能否对monkey访问权限更加精细控制。(授予列权限)
希望monkey只可以修改scott.emp的表的sal字段,怎样操作
sql>grant update on emp(sal) to monkey;
希望monkey只可查询scott.emp的表的ename,sal数据,怎样操作
sql>grant select on emp(ename,sal) to monkey;
3、授予alter权限
如果monkey用户要修改scott.emp表的结构,则必须授予alter对象权限
sql>grant alter on emp to monkey;
当然也可以用sys,system来完成这件事。
4、授予execute权限
如果用户想要执行其他方案的包/过程/函数,则需要有execute权限。
比如为了让Ken可以执行包abms_transaction,可以授予execute权限。
sql>grant execute on dbms_transaction to ken;
5、授予index权限
如果想要在别的方案的表上建立索引,则必须要具有index对象权限
如为了让Ken可以在scott.emp表上建立索引,就给其index的对象权限
sql>grant index on scott.emp to ken;
6、使用with grant option选项
该选项用于传授对象权限,但是该选项只能被授予用户,而不能授予角色。
sql>grant select on emp to ken with grant option;
7、回收对象权限
在Oracle中,收回对象的权限可以由对象的所有者来完成。
这里要说明的是:收回对象权限后,用户就不能执行相应的sql命令,但是要注意的是对象的权限是会被级联回收的。
sql>revoke select on emp from ken;
说明:Scott执行了该语句后,就回收了Ken用户在emp表上查询权限,因此此时ken已经不能对scott.emp进行查询操作了。于此同时也收回了ken转授下去的该权限,有ken授予的对scott.emp表查询的权限的获得者也不能对scott.emp进行查询操作了。
这一部分我们主要看看Oracle如何管理权限和角色,权限和角色的区别在哪里。
当刚刚建立用户时,用户没有任何权限,也不能执行任何操作。如果要执行某种特定的数据库操作,则必须为其授予系统的权限。如果用户要访问其他方案的对象,则必须为其授予对象的权限,为了简化权限的管理,可以使用角色。这里我们会详细介绍。
二、权限
权限是指执行特定类型的Sql命令或是访问其他方案对象的权利,包括系统权限和对象权限。
1、系统权限
A、系统权限的介绍
系统权限是指执行特定类型Sql命令的权利,它用于控制用户可以执行的一个或是一组数据库操作。比如当用户具有create table权限是,可以在其方案中建表,当用户具有create any table权限时,可以在任何方案中建表。Oracle提供了100多种系统权限。
常用的有
create session
连接数据库
create view
创建视图
create procedure
创建过程、函数、包
create cluster
建簇
create table
创建表
create public synonym
创建同义词
create trigger
创建触发器
B、显示系统权限
Oracle提供了100多种系统权限,而且Oracle的版本越高,提供的系统权限就越多,我们可以查询数据字典视图system_privilege_map,可以显示所有系统权限。
sql>select * from system_privilege_map order by name;
三、授予系统权限
一般情况,授予系统权限是有dba完成的,如果用其他用户来授予系统权限,则要求该用户必须具有grant any privilege的系统权限在授予系统权限时,可以带有with admin option选项,这样,被授予权限的用户或是角色还可以将该系统权限授予其他的用户或是角色。
案例:
1、创建两个用户ken,tom,初始阶段他们没有任何权限,如果登录就会给出错误信息。
sql>create user ken identified by m123;
sql>create user tom identified by m123;
2、给用户ken授权
sql>grant create session,create table to ken with admin option;
sql>grant create view to ken;
3、给用户tom授权
我们可以通过ken给tom授权,因为with admin option是加上的。当然也可以通过DBA给tom授权,我们就用ken给tom授权。
sql>grant create session,create table to tom with admin option;
sql>grant create view to tom;——这个是不可以的,因为Ken没有该权限的下放权限。
四、回收系统权限
一般情况下,回收系统权限是dba来完成的,如果其他的用户来回收系统权限,要求该用户必须具有相应系统权限及转授系统权限的选项(with admin option)。回收系统权限使用revoke来完成。
当回收了系统权限后,用户就不能执行相应的操作了,但是请注意,系统权限不是级联回收的。
执行以下语句:
sql>revoke create session from ken;
说明:DBA执行了该语句后回收了Ken的登录权限后,Ken自然就不能再登录了,有Ken下放的该权限所有者tom还是可以正常登录的。
五、对象权限
指访问其他方案对象的权利,用户可以直接访问自己方案的对象。但是如果要访问别的方案的对象,则必须具有对象的权限。比如Smith用户要访问scott.emp表(scott:方案,emp:表),则必须在scott.emp表上具有对象的权限。
常用的有:
alter
修改表结构
delete
删除数据
select
查询数据
insert
添加数据
update
修改数据
index
在表上建立索引
references
引用
execute
执行
1、显示对象权限
通过数据字典视图可以显示用户或是角色所具有的对象权限。视图为dba_tab_privs
sql>select distinct privilege from dba_tab_privs;
sql>select grantor,owner,table_name,privilege from dba_tab_privs where grantee='Black';
2、传授对象权限
对象权限可以授予用户、角色和public。在授予对象权限是,如果带有with grant option选项,则可以将该权限转授给其他用户,但是要注意with grant option选项不能被授予角色。
1、monkey用户要操作scott.emp表,则必须授予相应的对象权限
希望monkey可以查询scott.emp表的数据,怎么操作
sql>grant select on emp to monkey;
希望monkey可以修改scott.emp表的数据,怎么操作
sql>grant update on emp to monkey;
希望monkey可以删除scott,emp表的数据,怎么操作
sql>grant delete on emp to monkey;
有没有更加简单的方法,一次吧所有的权限赋给monkey
sql>grant all on emp to monkey;
2、能否对monkey访问权限更加精细控制。(授予列权限)
希望monkey只可以修改scott.emp的表的sal字段,怎样操作
sql>grant update on emp(sal) to monkey;
希望monkey只可查询scott.emp的表的ename,sal数据,怎样操作
sql>grant select on emp(ename,sal) to monkey;
3、授予alter权限
如果monkey用户要修改scott.emp表的结构,则必须授予alter对象权限
sql>grant alter on emp to monkey;
当然也可以用sys,system来完成这件事。
4、授予execute权限
如果用户想要执行其他方案的包/过程/函数,则需要有execute权限。
比如为了让Ken可以执行包abms_transaction,可以授予execute权限。
sql>grant execute on dbms_transaction to ken;
5、授予index权限
如果想要在别的方案的表上建立索引,则必须要具有index对象权限
如为了让Ken可以在scott.emp表上建立索引,就给其index的对象权限
sql>grant index on scott.emp to ken;
6、使用with grant option选项
该选项用于传授对象权限,但是该选项只能被授予用户,而不能授予角色。
sql>grant select on emp to ken with grant option;
7、回收对象权限
在Oracle中,收回对象的权限可以由对象的所有者来完成。
这里要说明的是:收回对象权限后,用户就不能执行相应的sql命令,但是要注意的是对象的权限是会被级联回收的。
sql>revoke select on emp from ken;
说明:Scott执行了该语句后,就回收了Ken用户在emp表上查询权限,因此此时ken已经不能对scott.emp进行查询操作了。于此同时也收回了ken转授下去的该权限,有ken授予的对scott.emp表查询的权限的获得者也不能对scott.emp进行查询操作了。
发表评论
-
oracle性能优化
2010-12-02 17:55 0T -
将Sequence统一加100000
2010-12-01 10:46 743select 'alter sequence ' || t1. ... -
Oracle 事件跟踪
2010-11-19 16:15 1161--查询30分钟前的数据select * from t as ... -
查询表属于的库和用户
2010-11-19 11:44 784select * from user_tables t whe ... -
创建返回值为自定义表的函数
2010-11-17 13:22 970CREATE OR REPLACE FUNCTION 函数名( ... -
找回被删除的数据
2010-11-12 17:00 737利用 delete from chg_number; 时 找 ... -
oracle 行转列
2010-10-11 17:29 781select '{' || d.il1_id || '}{' ... -
从dual表中查询返回多行记录
2010-10-11 17:28 4339select * from dual connect by 0 ... -
查找数据库锁
2010-10-11 17:19 607SELECT /*+ rule */ lpad( ... -
【转载】记录被锁解锁方法
2010-09-25 19:56 813今天,在使用update更新一条记录时,怎么都更新不了,一直处 ... -
【转载】110个常用函数整理汇总
2010-09-25 19:55 9761. ASCII 返回与指定的字符对应的十进制数; SQL& ... -
【转载】学习之Dual表
2010-09-25 19:49 727最近在使用Oracle时遇到一个特殊的表Dual。想必了解Or ... -
【转载】job简介
2010-09-25 19:48 729步骤如下: 1、创建一张表g_test create ta ... -
【转载】 错误一览表
2010-09-25 19:45 1060ORA-00001: 违反唯一约束 ... -
【转载】集合操作函数
2010-09-25 19:43 689集合操作符专门用于合并多条select 语句的结果,包括:UN ... -
【转】临时表 优化查询速度
2010-09-25 19:42 6501、前言 目前所有使用Oracle作为数据库支撑平台 ... -
【转载】索引
2010-09-25 19:33 1015一、概述 索引是用于加速数据存取数据对象,合理的使用索引可 ... -
【转载】约束
2010-09-25 19:32 660一、维护数据的完整性 概述:数据的完整性用于确保数据库数据 ... -
【转载】数据库管理
2010-09-25 19:31 624一、数据库管理员 概述:每个Oracle数据库应该至少有一名 ... -
【转载】函数的使用
2010-09-25 19:24 569一、字符函数 介绍:字符函数是Oracle中最常用的函数,我们 ...
相关推荐
支持选择发布到百度空间中文章的转载权限。 4。支持将Wordpress中文章链接发布到百度空间,并可选原文链接显示的位置。 Version 1.0 不支持功能 1。不支持将Wordpress中私密(private)文章发布到百度空间。 2。不...
支持选择发布到百度空间中文章的转载权限。 4。支持将Wordpress中文章链接发布到百度空间,并可选原文链接显示的位置。 Version 1.0 不支持功能 1。不支持将Wordpress中私密(private)文章发布到百度空间。 2。不...
### CRM权限控制——深入解析与应用 #### 一、权限管理概述 权限管理是信息安全领域的一个重要组成部分,它涉及到组织内部资源的访问控制机制。在CRM系统中,权限管理尤为重要,因为它直接影响到业务流程的执行...
3.支持选择发布到百度空间中文章的转载权限。 4.支持将Wordpress中文章链接发布到百度空间,并可选原文链接显示的位置。 Version 1.0 不支持功能 1.不支持将Wordpress中私密(private)文章发布到百度空间。 2.不支持...
教师应鼓励这些行为,例如,在发布文章时开放评论和转载权限,以增强内容的传播力。 - **师生互动**:教师可以通过"我的班级"发布班级通知,或使用"人人通空间"APP进行即时通讯,如发布班级通知和组织班级讨论,...
在Android系统中,修改系统时间通常涉及到系统的敏感权限,因为这可能会影响到系统及应用的正常运行。本篇文章将深入探讨如何在Android应用程序中获取修改系统时间的权限,并提供相关源码分析。 首先,我们需要理解...
- 请求转载权限需联系国家科学院出版社。 **出版信息:** - **书名**:《科学与工程职业:研究生学习及其以后的学生规划指南》 - **出版社**:国家科学院出版社 - **出版年份**:1996年 - **ISBN**:0-309-52191-2 ...
文档还提到了版权保护涵盖的材料,包括专为本卷编写的材料以及整个卷宗的编排,并指出其中一些内容首次出现在其他地方,CFA协会已为本版次获得转载权限,但任何通过电子或机械手段的进一步复制,包括复印和录音,...
1)进入存放jdk文件的文件夹路径 我这里是 usr/local/jdk/ 2)输入命令 chmod 777 jdk1.8.0_221/bin/java修改权限 ...如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢! 您可能感兴趣的文章:centos
7. 相册权限的重要性:设置相册权限是保护照片免受他人转载和分享的重要步骤,用户应该根据自己的需求设置适当的权限,以确保照片的安全。 8. QQ空间的隐私保护:QQ空间提供了多种隐私保护功能,包括相册权限设置、...
Manifest.permission 这个类定义了android全部的权限共106个 我们在 AndroidManifest.xml里需要对一些软件需要的操作做一些权限的声明, 比如我们的软件有发送短信的功能,...转载请注明来自 blog.csdn.net/kome2000
Windows XP作为一款由微软公司开发的操作系统,相较于其前身Windows 9x系列,引入了更为精细的账户管理和权限控制机制,这主要得益于其基于Windows NT内核的技术架构。 #### 权限与权利:理解基本概念 在Windows...
3. **日志权限**:默认权限为公开,即所有人都可以查看这篇日志,用户也可根据需要调整为仅好友可见或其他权限设置。 4. **完成转载**:确认所有信息无误后,点击“转载到我的空间”按钮即可完成转载过程。 ##### ...
但是,根据描述,数据可通过维库电子市场网(***)获取,并且已获得来源ks99的转载权限。这意味着在进行东风悦达千里马冷却液温度传感器检测时,技术人员需要参考相关网站提供的数据,按照传感器制造商或车辆制造商...
【转载使用许可协议范本精选】是一份详细规定了甲方(受权方)与乙方(获受权方)之间关于作品使用权限的法律文件。该协议适用于通过特定平台(未在内容中具体提及,标记为_____________)进行的授权交易。以下是...
转载路由器RG-100A密码破解工具,主要用于获取密码权限
在Oracle数据库系统中,创建一个新数据库是数据库管理员(DBA)进行的初始任务,而之后为不同用户分配权限和资源则是确保系统安全和高效运行的关键步骤。以下将详细解释如何在Oracle数据库创建后创建自己的用户,...
《指针突破:C语言指针详解》 在深入探讨UCOS II操作系统时,掌握指针的精髓至关重要,因为指针在系统级编程中扮演着核心角色。本文将通过刘值攻的笔记,全面解析C语言中的指针,帮助读者理解和运用这一关键概念。...
转载 VMware 转换成 Hyper-V 的几个方法 本文将详细介绍将 VMware 转换成 Hyper-V 的几个方法,包括使用 VMDK to VHD Converter 转换虚拟硬盘、使用 VMware 管理的虚拟机转换成 Hyper-V 管理等方法。同时,本文还将...