Oracle数据库是一种大型关系型的数据库 我们知道当使用一个数据库时 仅仅能够控制哪些人可以访问数据库 哪些人不能访问数据库是无法满足数据库访问控制的 DBA需要通过一种机制来限制用户可以做什么 不能做什么 这在Oracle中可以通过为用户设置权限来实现 权限就是用户可以执行某种 *** 作的权利 而角色是为了方便DBA管理权限而引入的一个概念 它实际上是一个命名的权限集合
权限
Oracle数据库有两种途径获得权限 它们分别为
① DBA直接向用户授予权限
② DBA将权限授予角色(一个命名的包含多个权限的集合) 然后再将角色授予一个或多个用户
使用角色能够更加方便和高效地对权限进行管理 所以DBA应该习惯于使用角色向用户进行授予权限 而不是直接向用户授予权限
Oracle中的权限可以分为两类
系统权限
对象权限
系统权限
系统权限是在数据库中执行某种 *** 作 或者针对某一类的对象执行某种 *** 作的权利 例如 在数据库中创建表空间的权利 或者在任何模式中创建表的权利 这些都属于系统权限 在Oracle i中一共提供了 多种权限
系统权限的权利很大 通常情况下
① 只有DBA才应当拥有alter database系统权限 该权限允许用户对数据库物理结构和可用性进行修改
② 应用程序开发者一般应该拥有Create Table Create View和Create Type等系统权限 用于创建支持前端的数据库模式对象
③ 普通用户一般只具有Create session系统权限(可以通过Connection角色获得) 只有Create Session系统权限的用户才能连接到数据库
④ 只有具有Grant Any PRivilege系统权限用户 或者获取了具有With Admin Option选项的系统权限的用户 才能够成为其它用户授予权限
对象权限
对象权限是针对某个特定的模式对象执行 *** 作的权利 只能针对模式对象来设置和管理对象权限
对于模式对象 表 视图 序列 存储过程 存储函数 包都可以对象设置权限 不同类型模式对象具有不同的对象权限 比如 表 视图等对象具有查询(Select) 修改(Update) 删除(Delete)等对象权限 而存储过程 存储函数等对象则具有执行(Execute)等对象权限
但是并不是所有的模式对象都可以设置对象权限 比如簇 索引 触发器以及数据库链接等模式就不具有对象权限 这些模式对象的访问控制是通过相应的系统权限来实现的 比如 要对索引进行修改 必须拥有Alter Any Index系统权限
用户自动拥有他的模式中所有对象的全部对象权限 他可以将这些对象权限授予其他的用户或角色 比如 Test 用户创建了一个表Table 在没有授权的情况下 用户Test 不能查询 修改 删除这个表 如果Test 将ETP表的Select对象权限授予了Test 则该用户就可以查询 Table 表了 如果在为其它用户授予对象权限时用了With Grant Option选项 被授予权限的用户还可以将这个权限在授予其他用户
角色
角色的概念
角色就是多个相关权限的命名集合 通过角色来进行对用户授予权限 可以大大简化DBA的工作量 比如 处于统一部门中的 多个用户都需要访问数据库中的一系列表 DBA可以将这些表的中合适的对象权限授予一个角色 然后在把这个角色授予这些用户 这样进行 *** 作要比为没有用户进行授权要便捷多了 而且要对这些用户的权限进行统一修改 只需要修改角色的权限即可
角色的优点
通过角色为用户授予权限 而不是直接向各个用户授权 具有以下优点
简化权限管理 DBA将用户群分类 然后为每一类用户创建角色 并将该角色授予这类用户所需要的权限 最后在将改角色授予该类中的各个用户 这样不仅简化了授权 *** 作 而且当这类用户的权限需求发生改变时 只需要把角色的权限进行改动 而不必修改每一位用户的权限
动态权限管理 角色可以被禁用或激活 当角色被禁止使用时 拥有该角色的用户不再拥有授予改角色的权限了 这样就可以对多个用户的权限进行动态控制了
灵活的编程能力 角色是存储在数据字典中的 并且可以为角色设置口令 这样就能够在应用程序中对角色进行控制 比如禁用或者激活等 *** 作
下面以Oracle i为例 给出具体的实现用户授权
( )设定各种角色 及其权限
CREATE ROLE checkerrole DENTIFIEDBYxm ;
CREATE ROLE defaultrole IDENTIFIEDBYdefaultrole;
GRANT SELECT UPDATE ON
account paytable TO checkerrole;
GRANT CONNECT TO defaultrole;
( )创建用户
CREATE USER xiaoli IDENTIFIEDBY xiaoli;
( )授权
GRANT checkerrole TO xiaoli;
GRANT defaultrole TO xiaoli;
( )设定用户缺省的角色
ALTER USER xiaoli DEFAULTROLE defaultrole;
( )注册过程
CONNECT xiaoli/xiaoli@oracle
此时用户只有其缺省角色的权限
( )激活角色
SET ROLE checkerrole IDENTIFIEDBY xm ;
— *** 作成功后 xiaoli拥有checkerrole的权限
lishixinzhi/Article/program/Oracle/201311/18359
sysadmin。服务器用sysadmin角色连接数据库。作为系统管理员, 你无需使用核心 *** 作系统(Linux或Windows), 也可以处理其上托管的内容。它可以是数据库, 应用程序服务器, Web服务器, 消息传递应用程序, 缓存等。
ORACLE数据库中的权限和角色
Oracle数据库是一种大型关系型的数据库,我们知道当使用一个数据库时,仅仅能够控制哪些人可以访问数据库,哪些人不能访问数据库是无法满足数据库访问控制的。DBA需要通过一种机制来限制用户可以做什么,不能做什么,这在Oracle中可以通过为用户设置权限来实现。权限就是用户可以执行某种 *** 作的权利。而角色是为了方便DBA管理权限而引入的一个概念,它实际上是一个命名的权限集合。
1 权限
Oracle数据库有两种途径获得权限,它们分别为:
① DBA直接向用户授予权限。
② DBA将权限授予角色(一个命名的包含多个权限的集合),然后再将角色授予一个或多个用户。
使用角色能够更加方便和高效地对权限进行管理,所以DBA应该习惯于使用角色向用户进行授予权限,而不是直接向用户授予权限。
Oracle中的权限可以分为两类:
•系统权限
•对象权限
11 系统权限
系统权限是在数据库中执行某种 *** 作,或者针对某一类的对象执行某种 *** 作的权利。例如,在数据库中创建表空间的权利,或者在任何模式中创建表的权利,这些都属于系统权限。在Oracle9i中一共提供了60多种权限。
系统权限的权利很大,通常情况下:
① 只有DBA才应当拥有alter database系统权限,该权限允许用户对数据库物理结构和可用性进行修改。
② 应用程序开发者一般应该拥有Create Table、Create View和Create Type等系统权限,用于创建支持前端的数据库模式对象。
③ 普通用户一般只具有Create session系统权限(可以通过Connection角色获得),只有Create Session系统权限的用户才能连接到数据库
④ 只有具有Grant Any PRivilege系统权限用户,或者获取了具有With Admin Option选项的系统权限的用户,才能够成为其它用户授予权限。
12对象权限
对象权限是针对某个特定的模式对象执行 *** 作的权利。只能针对模式对象来设置和管理对象权限。
对于模式对象:表、视图、序列、存储过程、存储函数、包都可以对象设置权限。不同类型模式对象具有不同的对象权限。比如,表、视图等对象具有查询(Select)、修改(Update)、删除(Delete)等对象权限,而存储过程、存储函数等对象则具有执行(Execute)等对象权限。
但是并不是所有的模式对象都可以设置对象权限。比如簇、索引、触发器以及数据库链接等模式就不具有对象权限。这些模式对象的访问控制是通过相应的系统权限来实现的,比如,要对索引进行修改,必须拥有Alter Any Index系统权限。
用户自动拥有他的模式中所有对象的全部对象权限,他可以将这些对象权限授予其他的用户或角色。比如,Test1用户创建了一个表Table1,在没有授权的情况下,用户Test2不能查询、修改、删除这个表。如果Test1将ETP表的Select对象权限授予了Test2,则该用户就可以查询Table1表了。如果在为其它用户授予对象权限时用了With Grant Option选项,被授予权限的用户还可以将这个权限在授予其他用户。
2 角色
21角色的概念
角色就是多个相关权限的命名集合。通过角色来进行对用户授予权限,可以大大简化DBA的工作量。比如,处于统一部门中的30多个用户都需要访问数据库中的一系列表,DBA可以将这些表的中合适的对象权限授予一个角色,然后在把这个角色授予这些用户,这样进行 *** 作要比为没有用户进行授权要便捷多了,而且要对这些用户的权限进行统一修改,只需要修改角色的权限即可。
22角色的优点
通过角色为用户授予权限,而不是直接向各个用户授权,具有以下优点:
•简化权限管理 DBA将用户群分类,然后为每一类用户创建角色,并将该角色授予这类用户所需要的权限,最后在将改角色授予该类中的各个用户。这样不仅简化了授权 *** 作,而且当这类用户的权限需求发生改变时,只需要把角色的权限进行改动,而不必修改每一位用户的权限。
•动态权限管理 角色可以被禁用或激活。当角色被禁止使用时,拥有该角色的用户不再拥有授予改角色的权限了。这样就可以对多个用户的权限进行动态控制了。
•灵活的编程能力 角色是存储在数据字典中的,并且可以为角色设置口令。这样就能够在应用程序中对角色进行控制。比如禁用或者激活等 *** 作。
下面以Oracle9i为例,给出具体的实现用户授权:
(1)设定各种角色,及其权限
CREATE ROLE checkerrole DENTIFIEDBYxm361001;
CREATE ROLE defaultrole IDENTIFIEDBYdefaultrole;
GRANT SELECT,UPDATE ON
accountpaytable 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的权限。
----这里的角色和口令是固定的,在应用系统中可以由应用管理人员自行设置则更为方便安全
;系统内置角色为创建数据库角色方法/步骤如下
1/6分步阅读
第一步,连接对象资源管理器,点击打开数据库book,依此找到“安全性---角色”,点击这个菜单项,如下图所示:
2/6
第二步,选中“数据库角色”鼠标右键,新建数据库角色,打开新建窗口,如下图所示:
德国Statista数据平台 - 为您提供行业专业知识及数据
StatistaGmbH广告
3/6
第三步,输入角色名称和所有者,分别为“Control”和“dbo”,注意所有者,如下图所示:
4/6
第四步,点击添加按钮,选择数据库用户或角色;单击浏览按钮,查询用户并确定,添加正确的角色用户,如下图所示:
5/6
第五步,确定完毕后,框框里选择此角色的成员就为选择的成员角色,如下图所示:
6/6
第六步,选择此角色拥有的框架,这里选择“dbo”,然后点击确定,完成 *** 作,如下图所示:
注意事项
了解创建数据库角色的过程
注意角色的方法和用法
SQL 数据库 客户端
编辑于2018-01-16,内容仅供参考并受版权保护
赞踩分享阅读全文
德国Statista数据平台 - 为您提供行业专业知识及数据
我们为您提供值得信赖的商业统计数据,报告和市场预测,让您的研究更加高效专业。立即免费注册账户,体验来自Statista以及全球25,000+知名数据点及合作伙伴的独家内容
StatistaGmbH广告
服务器京东-精品惠聚,天天特价,嗨GO不停!
Dell 定制方案 项目16
¥767 元
戴尔(DELL)服务器方案 项目8
¥19249 元
Dell 定制方案 联想X1 X270 X280 T470S充电器
¥200 元
企业级de产ll品 H3C LS-5024PV5-EI 24个千兆电口4个千兆光口 全千兆管理型
¥1550 元
京东广告
数据服务-RestCloud全新的ETL社区版,免费下载,永久使用
根据数据库相关内容为您推荐数据服务
数据集成ETL,在数据处理层面,ETL不仅提供近100+数据处理组件,更多组件不断迭代推出中,提供多租户的数据集成开发作业,使企业大规模数据集成更加轻松,更安全。
谷云科技(广州)广告
相关经验
sql server数据库文件存储位置怎么找
22万人看过
PyQt5-QLabel 如何为标签文本设置超链接
3618人看过
sql2016-买东西逛淘宝,榜单好物随心入!
淘宝
数据库:就是咱安装的那个软件,这个不必多说
实例:安装数据库后第一步就是创建实例,就相等于一大块地的名,比如你用PL/SQL连接数据库时选择数据库名实际上就是实例名,它的说法欠缺严谨。在oracle安装路径中的tnsnamesora文件可以清楚的看到其配置,这个你应该知道,不知道再问我。
表空间:就相当于一块地皮,你所有的数据库对象都是在表空间中存的
用户:就是一个登陆的名,当然得有密码,它跟表空间是多对多的关系的,但我们在创建用户时一般都指定默认表空间的,若不指定用户默认表空间的话,则用户每次创建数据库对象的时候,都要指定表空间,太麻烦
角色:每个用户都有角色,它决定了该用户有什么权限,比如DBA,拥有最高权限
表:这个就不用说了吧,但要说明的是一个表只能属于一个表空间
……………………………………………………………………………………………………
累死我了,没有功劳也有点苦劳啊
以上就是关于ORACLE数据库中权限和角色的全面解析全部的内容,包括:ORACLE数据库中权限和角色的全面解析、服务器用什么角色连接数据库、ORACLE数据库中的权限和角色等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)