首页 > 数据库 >oracle中怎样把一个用户的所有table的select权限授给另外一个用户

oracle中怎样把一个用户的所有table的select权限授给另外一个用户

时间:2023-08-21 14:26:06浏览次数:48  
标签:角色 对象 数据库 用户 DBA oracle table 权限

1、双击桌面sqldeveloper软件图标启动软件。

2、新建数据库连接,填写登录数据库信息并选择相应角色进行登录。

3、登录成功后先查询出hr用户下所有的表名,可直接通过dba_tables来进行查询。

4、把查询权限赋给测试用户的方法有两种,一种为当用户下的表比较少的情况下可以直接通过grant select/delete/update on hr.table-name to cem。

5、授权成功后使用测试用户进行登录即可对授权过查询权限的表进行访问。

 

开通其中2张表的查询权限,方法如下:

grant select on bas_checkcycle to jdc这个是整个语句。

语句分析:

grant select on bas_checkcycle to jdc;

这个颜色为执行语句。

这个颜色是数据表。

这个颜色是用户;就是需要权限的用户。

下面这个是查看,更新,删除,增加的权限都开启。

grant select,update,delete,insert on UserTagPool to [app_webservice]

grant select,update,delete,insert on UserTagPoolMap to [app_webservice]

扩展资料

Oracle权限管理

权限分类:

系统权限:系统规定用户使用数据库的权限。(系统权限是对用户而言)。

实体权限:某种权限用户对其它用户的表或视图的存取权限。(是针对表或视图而言的)。

系统权限分类:

DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。

RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。

CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。

 

ORACLE数据库中的权限和角色

Oracle数据库是一种大型关系型的数据库,我们知道当使用一个数据库时,仅仅能够控制哪些人可以访问数据库,哪些人不能访问数据库是无法满足数据库访问控制的。DBA需要通过一种机制来限制用户可以做什么,不能做什么,这在Oracle中可以通过为用户设置权限来实现。权限就是用户可以执行某种 *** 作的权利。而角色是为了方便DBA管理权限而引入的一个概念,它实际上是一个命名的权限集合。

1 权限

Oracle数据库有两种途径获得权限,它们分别为:

① DBA直接向用户授予权限。

② DBA将权限授予角色(一个命名的包含多个权限的集合),然后再将角色授予一个或多个用户。

使用角色能够更加方便和高效地对权限进行管理,所以DBA应该习惯于使用角色向用户进行授予权限,而不是直接向用户授予权限。

Oracle中的权限可以分为两类:

•系统权限

•对象权限

1.1 系统权限

系统权限是在数据库中执行某种 *** 作,或者针对某一类的对象执行某种 *** 作的权利。例如,在数据库中创建表空间的权利,或者在任何模式中创建表的权利,这些都属于系统权限。在Oracle9i中一共提供了60多种权限。

系统权限的权利很大,通常情况下:

① 只有DBA才应当拥有alter database系统权限,该权限允许用户对数据库物理结构和可用性进行修改。

② 应用程序开发者一般应该拥有Create Table、Create View和Create Type等系统权限,用于创建支持前端的数据库模式对象。

③ 普通用户一般只具有Create session系统权限(可以通过Connection角色获得),只有Create Session系统权限的用户才能连接到数据库

④ 只有具有Grant Any PRivilege系统权限用户,或者获取了具有With Admin Option选项的系统权限的用户,才能够成为其它用户授予权限。

1.2对象权限

对象权限是针对某个特定的模式对象执行 *** 作的权利。只能针对模式对象来设置和管理对象权限。

对于模式对象:表、视图、序列、存储过程、存储函数、包都可以对象设置权限。不同类型模式对象具有不同的对象权限。比如,表、视图等对象具有查询(Select)、修改(Update)、删除(Delete)等对象权限,而存储过程、存储函数等对象则具有执行(Execute)等对象权限。

但是并不是所有的模式对象都可以设置对象权限。比如簇、索引、触发器以及数据库链接等模式就不具有对象权限。这些模式对象的访问控制是通过相应的.系统权限来实现的,比如,要对索引进行修改,必须拥有Alter Any Index系统权限。

用户自动拥有他的模式中所有对象的全部对象权限,他可以将这些对象权限授予其他的用户或角色。比如,Test1用户创建了一个表Table1,在没有授权的情况下,用户Test2不能查询、修改、删除这个表。如果Test1将ETP表的Select对象权限授予了Test2,则该用户就可以查询Table1表了。如果在为其它用户授予对象权限时用了With Grant Option选项,被授予权限的用户还可以将这个权限在授予其他用户。

2 角色

2.1角色的概念

角色就是多个相关权限的命名集合。通过角色来进行对用户授予权限,可以大大简化DBA的工作量。比如,处于统一部门中的30多个用户都需要访问数据库中的一系列表,DBA可以将这些表的中合适的对象权限授予一个角色,然后在把这个角色授予这些用户,这样进行 *** 作要比为没有用户进行授权要便捷多了,而且要对这些用户的权限进行统一修改,只需要修改角色的权限即可。

2.2角色的优点

通过角色为用户授予权限,而不是直接向各个用户授权,具有以下优点:

•简化权限管理 DBA将用户群分类,然后为每一类用户创建角色,并将该角色授予这类用户所需要的权限,最后在将改角色授予该类中的各个用户。这样不仅简化了授权 *** 作,而且当这类用户的权限需求发生改变时,只需要把角色的权限进行改动,而不必修改每一位用户的权限。

•动态权限管理 角色可以被禁用或激活。当角色被禁止使用时,拥有该角色的用户不再拥有授予改角色的权限了。这样就可以对多个用户的权限进行动态控制了。

•灵活的编程能力 角色是存储在数据字典中的,并且可以为角色设置口令。这样就能够在应用程序中对角色进行控制。比如禁用或者激活等 *** 作。

下面以Oracle9i为例,给出具体的实现用户授权:

(1)设定各种角色,及其权限

CREATE ROLE checkerrole DENTIFIEDBYxm361001

CREATE ROLE defaultrole IDENTIFIEDBYdefaultrole

GRANT SELECT,UPDATE ON

account.paytable TO checkerrole

GRANT CONNECT TO defaultrole

(2)创建用户

CREATE USER xiaoli IDENTIFIEDBY xiaoli

(3)授权

GRANT checkerrole TO xiaoli

GRANT defaultrole TO xiaoli

(4)设定用户缺省的角色

ALTER USER xiaoli DEFAULTROLE defaultrole

(5)注册过程

CONNECT xiaoli/xiaoli@oracle

此时用户只有其缺省角色的权限。

(6)激活角色

SET ROLE checkerrole IDENTIFIEDBY xm361001

---- *** 作成功后,xiaoli拥有checkerrole的权限。

----这里的角色和口令是固定的,在应用系统中可以由应用管理人员自行设置则更为方便安全

标签:角色,对象,数据库,用户,DBA,oracle,table,权限
From: https://www.cnblogs.com/ios9/p/17645865.html

相关文章

  • 表格中的table-layout属性讲解
    定义和用法table-layout属性用来显示表格单元格、行、列的算法规则。table-layout有三个属性值:auto、fixed、inherit。fixed:固定表格布局固定表格布局与自动表格布局相比,允许浏览器更快地对表格进行布局。在固定表格布局中,水平布局仅取决于表格宽度、列宽度、表格边框宽度......
  • 【oracle开发】wmsys.wm_concat介绍
    wmsys.wm_concat是一个聚合函数,其作用是将一列数据转换成一行,也就是我们常用的行专列,但是该函数是一个undocument函数,所以不推荐大家使用这个函数。因为在后续的版本中还提不提供这个函数都不好说呢。首先创建临时表和测试数据使用该函数,可以看到我们的按id做groupby,把name字......
  • oracle怎么表示当天零点,Oracle 取得当天0时0分0秒和23时59分59秒
    1.取得当天0时0分0秒selectTRUNC(SYSDATE)FROMdual;2.取得当天23时59分59秒(在当天0时0分0秒的基础上加1天后再减1秒)SELECTTRUNC(SYSDATE)+1-1/86400FROMdual;3.取得当前日期是一个星期中的第几天,注意:星期日是第一天selectto_char(sysdate,'D'),to_char(sysdate,'......
  • tablestore依赖问题解决
    依赖引入最新版本<dependency><groupId>com.aliyun.openservices</groupId><artifactId>tablestore</artifactId><version>5.16.0</version></dependency>执行如下方法,报错下面2个错误信息,如下图:错误一:错误二:错误原因:JavaSDK依赖2......
  • [转]Linux下,WinSCP普通用户登录sftp后切换到root权限 教程
    --------------------------------------------------------------------------------------------------------有这个需求的原因:为了提高系统安全性,禁用了root的ssh登录,但是又想使用sftp工具,如winscp,对root下的一些文件进行修改.下面这个方法注释掉了sudoers配置项Defa......
  • Oracle数据库经纬度坐标查询优化与结果错误原因分析、SQL中WKT超长文本字符串处理
    目录一、Oracle几何空间数据对象和其他数据库的差异二、Oracle查询一个经纬度坐标是否在边界内部2.1查询条件2.2查询结果错误,似乎是仅做了MBR匹配2.3错误原因2.4解决办法三、SQL中WKT超长文本在Oracle中如何编写3.1Oracle中执行含超长文本的SQL报错3.2使用CLOB无限拼接得到......
  • ubuntu从普通用户切换到root用户
      从普通用户与root用户之间的切换如果你是第一次从普通用户切换到root用户,首先需要建立root用户,让后设置密码,然后再切换。退出root用户 参考:https://www.bkqs.com.cn/content/xpgmvl8pk.html......
  • Rocky虚拟机(Three Days)用户与组管理与目录/文件权限
    ThreeDays一、用户管理1、概述Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方......
  • Oracle 分区表自动管理(待整理)
    原文-https://github.com/aws-samples/automate-table-partitioning-in-oracle-standard-edition/tree/main/partitions/scripts需要调整的地方有:1.droptable未释放垃圾空间2.未提及到收缩HWM释放空间partitions/scripts/partition_mgmt_tables.sql---partitions/sc......
  • Oracle table partition发展史
    ---Oraclepartition功能发展历程细节参考:https://www.oracle.com/docs/tech/partitioning-guide-2703320.pdf......