网站首页 > 技术文章 正文
为了方便数据库管理Oracle数据库预留了许多系统角色,我们列举其中必须要掌握的角色.
CONNECT:CREATE SESSION权限,在较早数据库版本有创建对象等权限
RESOURCE:可以创建数据库对象(如表、索引、存储过程等等),还包含LOGSDBY_ADMINISTRATOR角色的UNLIMITED TABLESPACE权限。
DBA:拥有大多数系统权限,几乎可以管理数据库的所有方面
SELECT_CATALOG_ROLE:可以查看包含SYS用户内的所有数据字典
EXECUTE_CATALOG_ROLE:可以执行包含SYS用户内的所有数据字典
DELETE_CATALOG_ROLE:可以删除系统审计表AUD$记录
SCHEDULER_ADMIN:可以使用DBMS_SCHEDULER包管理调度服务
PUBLIC:此角色始终授予每个数据库用户,如果将某个权限授予给PUBLIC,那么该权限将授予给所有用户。PUBLIC角色不同于其他角色,它并不会出现在DBA_ROLES试图中。
Public角色与其他角色不同,不能revoke
可以这样理解,PUBLIC是隐式授权给说有用户的角色,PUBLIC的权限当然是极其重要的
创建角色
角色不是模式对象,不属于任何人。使用CREATE ROLE role1创建角色。
通过给role1角色分配合理的权限,然后把角色分配给用户,来管理用户权限。这样会简化权限管理。比如分配查询scott1.test表的权限给角色role1,然后再分配角色role1给用户scott1,用户scott1就可以查看scott1.test表了。
默认角色
然后使用
ALTER USER role1 DEFAULT ROLE role1;
去指定用户的默认角色
比如在一下例子中,只给scott用户授权CONNECT和RESOURCE角色,然后设置scott的默认用户仅为connect
用户已经被赋予RESOURCE角色,但是此角色并不是默认角色,没有CREATE TABLE的权限。
使用如下语句可以设置用户的所有默认角色
ALTER USER role1 DEFAULT ROLE NONE;
ALTER USER role1 DEFAULT ROLE ALL;
角色密码与启用角色
如果在创建角色的时候不显示的设置密码或者显示设置NOT IDENTIFIED,那么角色的认证方式为NONE。给角色密码需要相应权限,使用以下命令可以给角色设置密码
CREATE ROLE role1 IDENTIFIED BY password;
ALTER ROLE role1 IDENTIFIED BY password;
我们给角色role1设置密码后,查看role1角色的状态
在PASSWORD_REQUIRED和AUTENTICATION_TYPE字段中可以看出认证方式不是NONE而是PASSWORD。这个时候连接scott用户再次查询刚才的scott1.test表
很明显刚才授予了权限且scott用户可以查询scott1.test表,只是设置了role1角色密码导致了role1角色不可用。既然角色不可用,我们就需要启用角色,使用如下命令
SET ROLE role1 IDENTIFIED BY password
可以再次启用角色。
我们在测试中,首先使用SYS用户去启用角色role1,但是scott任然无法查看表scott1.test,然后使用SCOTT用户去启用角色role1,这个时候角色可用了。从以上例子可以总结,在角色设置了密码以后,用户想要启用这个角色并使用角色下的权限,必须自行去“解锁”(启用)角色。
再次登录scott用户,scott1.test表任然不可用,也就是说,当角色被标记为PASSWORD时,用户每次登录都必须重新输入角色密码启用用户。
取消角色密码认证
ALTER ROLE role1 NOT IDENTIFIED;
猜你喜欢
- 2024-11-06 经典游戏《街头霸王》嘉米背后的神秘组织,和外星生物有所牵扯
- 2024-11-06 谁说阿里云不能跑Oracle,让驻云架构师告诉你怎么办!
- 2024-11-06 大数据hadoop框架中的服务角色详解
- 2024-11-06 11gR2集群件任务角色分离(Job Role Separation)简介
- 2024-11-06 架构师的主要职责和一些误区 架构师的主要职责和一些误区怎么写
- 2024-11-06 MySQL角色(role)功能介绍 mysql用户角色
你 发表评论:
欢迎- 618℃几个Oracle空值处理函数 oracle处理null值的函数
- 611℃Oracle分析函数之Lag和Lead()使用
- 600℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 596℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 592℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 583℃【数据统计分析】详解Oracle分组函数之CUBE
- 573℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 560℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端获取当前时间 (50)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)