热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

学习和管理oracle角色

角色是相关权限的命令的集合,使用角色的主要目的是简化权限管理.预定义角色是oracle提供的角色,这些角色是在建立数据库,安装数据字典视图何PLSQL包时建立的,并且每种角色都用于执行一些特定管理任务.1,CONNECT角色CONNECT角色时在建立数据库时,oracle执

角色是相关权限的命令的集合,使用角色的主要目的是简化权限管理. 预定义角色是oracle提供的角色,这些角色是在建立数据库,安装数据字典视图何PL/SQL包时建立的,并且每种角色都用于执行一些特定管理任务. 1,CONNECT角色 CONNECT角色时在建立数据库时,oracle执

角色是相关权限的命令的集合,使用角色的主要目的是简化权限管理.

预定义角色是oracle提供的角色,这些角色是在建立数据库,安装数据字典视图何PL/SQL包时建立的,并且每种角色都用于执行一些特定管理任务.

1,CONNECT角色

CONNECT角色时在建立数据库时,oracle执行脚本SQL.BSQ自动建立的角色,该角色具有应用开发人员所需的多数权限.CONNECT角色具有的所有系统权限如下:

ALTER SESSION 修改会话参数设置

CREATE CLUSTER 建立簇

CREATE DATABASE LINK 建立数据库链

CREATE SEQUENCE 建立序列

CREATE SESSION 建立会话(连接到数据库)

CREATE PUBLIC SYNONYM 建立同义词

CREATE TABLE 建表

CREATE VIEW 建立视图


2,RECOURCE角色

RECOURCE 角色时在建立数据库时,oracle执行脚本SQL.BSQ自动建立的角色,该角色具有应用开发人员所需的其他权限.如建立存储过从,触发器等.建立数据 库用户后,一般情况下只要给用户授予CONNECT和RECOURCE角色就足够了.需要注意的时,RECOURCE角色隐含具有UNLIMITED TABLESPACE系统权限.

CREATE CLUSTER 建立簇

CREATE INDEXTYPE 建立索引类型

CREATE PROCEDURE 建立PL/SQL程序单元.

CREATE SEQUENCE 建立序列

CREATE TABLE 建表

CREATE TRIGGER 建立触发器

CREATE TYPE 建立类型


3.DBA

该角色具有所有系统权限和WITH ADMIN OPTION选项.默认的DBA用户为SYSTEM,该用户可以将系统权限授予其他用户,需要注意的是,DBA角色不具备SYSDBA和SYSOPER特权,而SYSDBA和SYSOPER自动具有DBA角色的所有权限.


4,EXECUTE_CATALOG_ROLE

EXECUTE_CATELOG_ROLE角色提供了对所有系统PL/SQL包(DBA_XXX)的EXECUTE对象权限


5,SELECT_CATALOG_ROLE

该角色提供了在所有数据字典(DBA_XXX)上的SELECT对象权限.

6,DELETE_CATALOG_ROLE

该角色提供了系统审计表SYS.AUD$上的DELETE对象权限.

7,EXP_FULL_DATABASE

该角色用于执行数据库的导出操作.该角色具有的权限和角色为:

SELECT ANY TABLE 查询任意表

BACKUP ANY TABLE 备份任意表

EXECUTE ANY PROCEDURE 执行任何过程,函数和包

EXECUTE ANY TYPE 执行任何对象类型

ADMINISTER RESOURCE MANAGER 管理资源管理器

EXECUTE_CATALOG_ROLE 执行任何PL/SQL系统包

SELECT_CATALOG_ROLE 查询任何数据字典


8.IMP_FULL_DATABASE

该角色用于执行数据库导入操作,它包含了EXECUTE_CATALOG_ROLE,SELECT_CATALOG_ROLE角色和大量系统权限.


9.RECOVERY_CATALOG_OWNER

该角色为恢复目录所有者提供了系统权限.

CREATE SESSION 建立会话

ALTER SESSION 修改会话参数设置

CREATE SYNONYM 建立同义词

CREATE VIEW 建立视图

CREATE DATABASE LINK 建立数据链

CREATE TABLE 建立表

CREATE CLUSTER 建立簇

CREATE SEQUENCE 建立序列

CREATE TRIGGER 建立出发器

CREATE PROCEDURE 建立过程,函数和包

自定义角色是在建立数据库之后由DBA用户建立的角色.该角色初始没有任何权限.为了使角色起作用,需要为其授予相应的权限.角色不仅可以简化权限管理.而且通过禁止或激活角色还可以控制权限的可用性.


建立角色是使用CREATE ROLE命令完成的.可以指定角色的验证方式(非验证,数据库验证等)

1,建立角色时,如果部指定任何验证方式,表示该角色使用非验证方式:通过指定NOT IDENTIFIED选项可以指定非验证方式.

CREATE ROLE public_role NOT IDENTIFIED;

2,数据库验证是使用数据库来检查角色,口令的方式.采用这种验证方式时,角色名及口令存放在数据库.激活角色时,必须提供口令.对于用户所私有的角色来说,建立角色时应为其提供口令.

CREATE ROLE private_role IDENTIFIED BY private;


建立角色时,角色没有任何权限,为了使角色可以完成特定任务,必须为其授予系统权限和对象权限.使用角色的目的是简化权限管理,为了是角色起作用,必须将角色授予用户.

1,给角色授权.

给角色授权和给用户授权没有任何区别,需要注意,系统权限UNLIMITED TABLESPACE 和对象权限的WITH GRANT OPTION 选项不能授予角色.不能用一条GRANT语句同时授予系统权限和对象权限.例:

GRANT CREATE SESSION TO public_role WITH ADMIN OPTION;

GRANT SELECT ON scott.emp TO public_role;

GRANT INSERT, UPDATE, DELETE ON scott.emp TO PRIVATE_ROLE;


2,分配角色与授予系统权限的命令完全相同.

例:

GRANT public_role, private_role TO blake WITH ADMIN OPTION;

激活和禁止角色

激活角色是指角色具有的权限生效,禁止角色是指使角色具有的权限临时失效.

1,默认角色.

默认角色使用户所具有角色的子集,当为用户指定默认角色后,以该用户身份登陆时会自动激活起默认角色.语法如下:

ALTER USER user DEFAULT ROLE

{role [,role] … | ALL [EXCEPT role [,role] … ] | NONE }

ALL 表示将用户具有的所有角色都设置为默认角色,NONE则表示不指定默认角色.


2,激活和禁止角色.

设置了用户的默认角色后,当以该用户身份登陆时会自动激活默认角色.

在SQL*PLUS中激活或禁止角色是使用SET ROLE命令完成的,而在其他应用环境中可以使用过程DBMS_SESSION.SET_ROLE激活或禁止角色.需要注意,激活新角色会自动禁止先前角色.

如果角色未使用任何验证方式,那么可以直接激活角色.例:

SET ROLE public_role;

或exec dbms_session.set_role(‘public_role’)

如果角色使用了数据库验证方式,那么在激活角色时必须提供口令.

SET ROLE private_role IDENTIFIED BY private;

或exec dbms_session.set_role(‘private_role INENTIFIED BY private’)

3,禁止角色.

SET ROLE NONE;

或exec dbms_session.set_role(‘NONE’)


修改角色是使用命令ALTER ROLE完成的.

修改验证为非验证:ALTER ROLE private_role NOT IDENTIFIED;

修改非验证非验证:ALTER ROLE public_role IDENTIFIED BY private;


删除角色

DROP ROLE private_role;


1,显示所有角色.

查询数据字典DBA_ROLES,可以显示数据库所包含的所有角色.

SELECT * FROM dba_roles;

Role用于标识角色名,password用于标识角色验证方式(NO标识采用非验证方式,YES标识采用数据库验证方式)


2,显示用户所具有的角色及默认角色.

DBA_ROLE_PRIVS,可以显示用户或角色所具有的角色信息.

ROLE_ROLE_PRIVS,可以显示角色具有的其他角色信息

USER_ROLE_PRIVS,可以显示当前用户所具有的角色.

SELECT granted_role, default_role from dba_role_privs WHERE grantee=’BLAKE’;

Granted_role标识已经被授予用户的角色,default_role用于标识角色是否为用户默认角色.


3,显示角色所具有的系统权限.

ROLE_SYS_PRIVS,显示角色所具有的系统权限.

DBA_SYS_PRIVS,显示用户或角色所具有的系统权限.

SELECT privilege,admin_option FROM role_sys_privs WHERE role=’PUBLIC_ROLE’;

Privilege用于标识角色所具有的系统权限,admin_option用于标识角色是否具有转授相应系统权限的权限,role用于标识角色名.


4,显示角色所具有的对象权限.

DBA_TAB_PRIVS可以显示用户或角色所具有的对象权限.

ROLE_TAB_PRIVS可以显示角色所具有的对象权限或列权限

SELECT owner||’.’||table_name owner_table, privilege

FROM role_tab_privs

WHERE role=’PUBLIC_ROLE’;

Owner 用于标识对象所有者,table_name用于标识对象名,privilege用于标识角色所具有的对象权限.role用于标识角色名.


5,显示当前会话激活的角色.

通过查询数据字典视图session_roles,可以显示当前会话所激活的角色.

SELECT * FROM session_roles;

OS角色是使用OS管理角色的方式,使用OS验证方式管理角色时,过去给用户授予的数据库角色不再起任何作用.使用OS角色时,要遵守如下条件:

必须将初始化参数OS_ROLES设置为TRUE.需要注意,将该参数设置为TRUE后,过去授予用户的角色不再起作用.

确保SQLNET.ORA文件选项SQLNET.AUTHENTICATION_SERVICES的值为NTS.


参考:

角色none oracle 谷歌

Oracle数据安全(四)j角色管理- evencao - 博客园

Oracle 角色、配置文件- 乐沙弥的世界


none不是个角色

ALTER USER DEFAULT ROLE ALL EXCEPT NONE这个语句是错误的

推荐阅读
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细介绍了IBM DB2数据库在大型应用系统中的应用,强调其卓越的可扩展性和多环境支持能力。文章深入分析了DB2在数据利用性、完整性、安全性和恢复性方面的优势,并提供了优化建议以提升其在不同规模应用程序中的表现。 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 深入理解OAuth认证机制
    本文介绍了OAuth认证协议的核心概念及其工作原理。OAuth是一种开放标准,旨在为第三方应用提供安全的用户资源访问授权,同时确保用户的账户信息(如用户名和密码)不会暴露给第三方。 ... [详细]
  • 优化联通光猫DNS服务器设置
    本文详细介绍了如何为联通光猫配置DNS服务器地址,以提高网络解析效率和访问体验。通过智能线路解析功能,域名解析可以根据访问者的IP来源和类型进行差异化处理,从而实现更优的网络性能。 ... [详细]
  • 本文详细分析了JSP(JavaServer Pages)技术的主要优点和缺点,帮助开发者更好地理解其适用场景及潜在挑战。JSP作为一种服务器端技术,广泛应用于Web开发中。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • Valve 发布 Steam Deck 的新版 Windows 驱动程序
    Valve 最新发布了针对 Steam Deck 掌机的 Windows 驱动程序,旨在提升其在 Windows 环境下的兼容性、安全性和性能表现。 ... [详细]
  • 在计算机技术的学习道路上,51CTO学院以其专业性和专注度给我留下了深刻印象。从2012年接触计算机到2014年开始系统学习网络技术和安全领域,51CTO学院始终是我信赖的学习平台。 ... [详细]
  • 三星W799在2011年的表现堪称经典,以其独特的双屏设计和强大的功能引领了双模手机的潮流。本文详细介绍其配置、功能及锁屏设置。 ... [详细]
  • 本文探讨了Hive中内部表和外部表的区别及其在HDFS上的路径映射,详细解释了两者的创建、加载及删除操作,并提供了查看表详细信息的方法。通过对比这两种表类型,帮助读者理解如何更好地管理和保护数据。 ... [详细]
  • 本文总结了汇编语言中第五至第八章的关键知识点,涵盖间接寻址、指令格式、安全编程空间、逻辑运算指令及数据重复定义等内容。通过详细解析这些内容,帮助读者更好地理解和应用汇编语言的高级特性。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 数据管理权威指南:《DAMA-DMBOK2 数据管理知识体系》
    本书提供了全面的数据管理职能、术语和最佳实践方法的标准行业解释,构建了数据管理的总体框架,为数据管理的发展奠定了坚实的理论基础。适合各类数据管理专业人士和相关领域的从业人员。 ... [详细]
  • 优化版Windows 10 LTSC 21H2企业版:适用于低内存设备
    此版本为经过优化的Windows 10 LTSC 21H2企业版,特别适合低内存配置的计算机。它基于官方版本进行了精简和性能优化,确保在资源有限的情况下依然能够稳定运行。 ... [详细]
author-avatar
weneay
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有