`
hemin108
  • 浏览: 93830 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

详解如何实现Oracle修改用户权限和角色

阅读更多

------今天看了这篇文章 觉得对我们学习oracle 还是有很多帮助的,大家可以试着读读·······   

这里将介绍Oracle修改用户权限的实现过程,包括一些权限管理方面的东西。希望通过本文能对大家了解Oracle修改用户权限有所帮助。

ORACLE数据库用户与权限管理

ORACLE是多用户系统,它允许许多用户共享系统资源。为了保证数据库系统的安全,数据库管理系统配置了良好的安全机制。

2. 1 ORACLE数据库安全策略

建立系统级的安全保证

系统级特权是通过授予用户系统级的权利来实现,系统级的权利(系统特权)包括:建立表空间、建立用户、修改用户的权利、删除用户等。系统特权可授予用户,也可以随时回收。ORACLE系统特权有80多种。

建立对象级的安全保证

对象级特权通过授予用户对数据库中特定的表、视图、序列等进行操作(查询、增、删改)的权利来实现。

建立用户级的安全保证

用户级安全保障通过用户口令和角色机制(一组权利)来实现。引入角色机制的目的是简化对用户的授权与管理。做法是把用户按照其功能分组,为每个用户建立角色,然后把角色分配给用户,具有同样角色的用户有相同的特权。

2.2 用户管理

ORACLE用户管理的内容主要包括用户的建立、修改和删除

用户的建立

 

  1. SQL>CREATE USER jxzy  
  2. >IDENTIFIED BY jxzy_password  
  3. >DEFAULT TABLESPACE system  
  4. >QUATA 5M ON system; //供用户使用的最大空间限额 

Oracle修改用户权限

 

  1. SQL>CREATE USER jxzy  
  2. >IDENTIFIED BY jxzy_pw  
  3. >QUATA 10M ON system; 

删除用户及其所建对象

 

  1. SQL>DROP USER jxzy CASCADE; //同时删除其建立的实体 

2.3系统特权管理与控制

ORACLE 提供了80多种系统特权,其中每一个系统特权允许用户执行一个或一类数据库操作。

授予系统特权

 

  1. SQL>GRANT CREATE USER,ALTER USER,DROP USER 
  2. >TO jxzy_new  
  3. >WITH ADMIN OPTION

回收系统特权

 

  1. SQL>REVOKE CREATE USER,ALTER USER,DROP USER 
  2. >FROM jxzy_new  
  3. //但没有级联回收功能 

显示已被授予的系统特权(某用户的系统级特权)

 

  1. SQL>SELECT*FROM sys.dba_sys_privs 

2.4 对象特权管理与控制

ORACLE对象特权指用户在指定的表上进行特殊操作的权利。这些特殊操作包括增、删、改、查看、执行(存储过程)、引用(其它表字段作为外键)、索引等。

授予对象特权

 

  1. SQL>GRANT SELECT,INSERT(office_num,office_name),  
  2. >UPDATE(desc)ON office_organization  
  3. >TO new_adminidtrator  
  4. >WITH GRANT OPTION;  
  5. //级联授权  
  6. SQL>GRANT ALL ON office_organization  
  7. >TO new_administrator 

回收对象特权

 

  1. SQL>REVOKE UPDATE ON office_orgaization  
  2. >FROM new_administrator  
  3. //有级联回收功能  
  4. SQL>REVOKE ALL ON office_organization  
  5. >FROM new_administrator  

显示已被授予的全部对象特权

 

  1. SQL>SELECT*FROM sys.dba_tab_privs 

2.5 角色的管理

ORACLE的角色是命名的相关特权组(包括系统特权与对象特权),ORACLE用它来简化特权管理,可把它授予用户或其它角色。

ORACLE数据库系统预先定义了CONNECT 、RESOURCE、 DBA、 EXP_FULL_DATABASE、 IMP_FULL_DATABASE五个角色。CONNECT具有创建表、视图、序列等特权;RESOURCE具有创建过程、触发器、表、序列等特权、DBA具有全部系统特权;EXP_FULL_DATABASE、 IMP_FULL_DATABASE具有卸出与装入数据库的特权。

通过查询sys.dba_sys_privs可以了解每种角色拥有的权利。

授予用户角色

 

  1. SQL>GRANT DBA TO new_administractor  
  2. >WITH GRANT OPTION;  
  3. ============================================================== 

Oracle 的用户根据所被授予的权限分为系统权限和对象权限。其中最高的权限是sysdba。 Sysdba具有控制Oracle一切行为的特权,诸如创建、启动、关闭、恢复数据库,使数据库归档/非归档,备份表空间等关键性的动作只能通过具有sysdba权限的用户来执行。这些任务即使是普通DBA角色也不行。Sysoper是一个与sysdba相似的权限,只不过比sysdba少了SYSOPER privileges WITH ADMIN OPTION,CREATE DATABASE,RECOVER DATABASE UNTIL这几个权限而已。这两者的认证方式是相同的办法,所以下面只介绍sysdba的认证管理。

一般对sysdba的管理有两种方式: *** 作系统认证和密码文件认证。具体选择那一种认证方式取决于:你是想在Oracle运行的机器上维护数据库,还是在一台机器上管理分布于不同机器上的所有的Oracle数据库。若选择在本机维护数据库,则选择 *** 作系统认证可能是一个简单易行的办法;若有好多数据库,想进行集中管理,则可以选择password文件认证方式。

下图比较直观的说明了这个选择权衡过程:

使用 *** 作系统认证方式的配置过程:

1. 在 *** 作系统中建立一个合法帐户。

具体来说,在NT上,首先建立一个本地用户组,取名为ORA__DBA,其中SID为该数据库实例的SID,或者建立一个ORA_DBA地组,该组不对应于任何一个单独的Oracle实例。这样当一个NT上有好几个Oracle实例时,不用分别管理。然后再NT上建立一个用户,并且把它归入该组中。但是实际上这两步在Oracle8I安装过程中已经自动完成了,一般不用手动进行。

第三步:在sqlnet.ora(位于$ORACLE_HOME/NETWORK/ADMIN目录中)中,把SQLNET.AUTHENTICATION _SERVICES 设置为SQLNET.AUTHENTICATION_SERVICES= (NTS),意思为使用NT认证方式。

第四步,在INIT.ORA中,把REMOTE_LOGIN_PASSWORD设置为NONE,意思是不用password认证方式。

完成以上步骤后,就可以在登录到NT后,直接在SQL*Plus 和SERVER MANAGER中CONNECT INTERNAL (CONNECT / AS SYSDBA)来作为超级用户登录到Oracle中,执行一些只有超级用户才能进行的 *** 作。

在Unix下,情况有些不同。毕竟这是两个完全不同的 *** 作系统。

首先,在安装Oracle之前,建立一个DBA组,这一步不用说了,不然是装不上Oracle的。一般还建立一个名为Oracle的用户,并把它加入到DBA组中。

第二步, 设置REMOTE_LOGIN_PASSWORD为NONE。在Oracle8.1以后,该参数默认为EXCLUSIVE。一定要记得改过来。

第三步, 用该用户名登录Unix,运行SQL*Plus 或者SERVER MANAGER,输入以下命令:CONNECT INTERNAL(CONNECT / AS SYSDBA)来登录到Oracle中。

使用password文件认证的具体步骤:

Oracle提供orapwd实用程序来创建password 文件,运用orapwd建立该认证方式的具体步骤如下:

1. 使用Orapwd实用程序来创建一个PASSWORD文件。语法:

orapwd file=文件名 password=internal用户密码 entried=entries.

详细解释:

文件名要包含完整的全路径名,如果不指定,Oracle把它默认放置$ORACLE_HOME/dbs(Unix下)或者$ORACLE_HOME/DATABASE(NT下)下。

用户密码是用户internal的密码。当然后来还可以再向里边加入别的超级用户。

Entries表示最大允许有的超级用户数目。这个是一个可选的。前两者是必须指定的。一般会把它设置的比实际需要大一些,以免不够。

2. 把INIT.ORA中REMOTE_LOGIN_PASSWORD设置为EXCLUSIVE 或SHARED.使用EXCLUSIVE表示只有当前INSTANCE使用这个password文件。而且允许有别的用户作为sysdba登录进系统里边,而若选择了SHARED,则表明不止一个实例使用这个密码文件,伴随着一个很强的约束:sysdba权限只能授予sys和internal这两个用户名。(其实internal不是一个实际用户,而只是sys作为sysdba登录时的一个别名。)

同时还要记得把sqlnet.ora文件中SQLNET.AUTHENTICATION _SERVICES设置为NONE。一般在Unix下它是默认设置。在NT下,若选择典型安装时,会使用OS认证,而自定义时会使用密码文件认证方式。在安装过程中会提示输入INTERNAL密码。这样的话,就不用在手工创建密码文件和设定INTERNAL的密码了。

3. 用SQL*Plus 或SERVER MANAGER运行下面命令登录进系统:CONNECT INTERNAL/密码。

 

注意点:

1.在Oracle8.1.6安装在WIN2000下创建数据库时,常常会发生凭证检索失败的错误。这是由于Oracle不能应用OS认证的结果。一般可以通过修改sqlnet.ora中SQLNET.AUTHENTICATION _SERVICES为NONE来解决。这时,Oracle将采用密码文件认证方式。

2.由于Oracle有几个系统预建的用户,所以最好在安装完成以后马上改变这些用户的密码。系统默认得密码分别为:internal/oracle , sys/change_on_install, system/manager.

3.当选择密码文件认证方式时,可以再向系统中加入其他超级用户。比如用以下语句把用户SCOTT加入超级用户之中:(由具有sysdba权限的人执行)

SQL>GRANT SYSDBA TO SCOTT;这样SCOTT用户就具有了sysdba权限。注意,此时SCOTT用户可以以两种身份登录:SCOTT , SYS.当SCOTT在登录时没有输入AS SYSDBA时,SCOTT是作为普通用户登录的。而当登录时输入了AS SYSDBA时,此时SCOTT登录进去的用户实际上为sys。

4. 当前系统中的具有sysdba权限的用户名可以从数据字典视图v$pwfile_user中查询得到:

SELECT * FROM V$PWFILE_USERS; 如上图所示。

5. 系统中最大的具有sysdba权限的用户数由创建密码文件时的ENTRIES参数决定。当需要创建更多的具有sysdba权限的用户时,就需要删除原有的密码文件,重新创建一个。这需要关闭数据库,删除密码文件,重新创建一个新的密码文件,在entries中输入足够大的数目。再启动Oracle。这时,所有原来北授权的超级用户都不再存在,需要重新授权。所以在重新创建密码文件前,先要查询该视图,记下用户名,再在创建完密码文件后重新授权。

6. Internal用户密码忘记的处理方法:

有两种办法:

1. ALTER USER SYS IDENTIFIED BY 新密码;//这同时也改变了Internal的密码,在Oracle8I中通过

2. 重新创建一个新的密码文件,指定一个新的密码。

【责任编辑:彭凡 TEL:(010)68476606】
分享到:
评论

相关推荐

    oracle-用户与权限的管理

    Oracle数据库作为一款广泛应用于企业级环境中的关系型数据库管理系统,其用户管理和权限分配机制是确保数据安全性与访问控制的关键环节。以下是对Oracle中用户、权限与角色管理的深入解析。 #### 一、用户管理 在...

    Oracle概要文件、用户权限和角色

    ### Oracle 概要文件、用户权限和角色详解 #### 一、概要文件(Profile) 概要文件在Oracle数据库中是一种重要的配置工具,用于管理和控制用户对于系统资源和数据库资源的使用情况。当创建数据库时,Oracle会自动...

    oracle权限函数

    通过以上介绍,我们可以看到Oracle数据库提供了丰富的权限管理机制,包括用户管理、角色管理和对象权限管理等。合理利用这些机制可以帮助我们更好地控制数据库的访问,确保数据的安全性。此外,还可以根据实际需求...

    oracle用户权限、角色管理详解

    在Oracle数据库管理系统中,用户权限和角色管理是确保数据安全性和访问控制的关键组成部分。本文将深入探讨Oracle中的用户权限和角色管理,以便更好地理解和实践。 首先,权限分为两类:系统权限和实体权限。系统...

    oracle用户创建及权限设置

    在Oracle数据库中,用户管理和权限控制是非常重要的组成部分,它们确保了数据的安全性和访问的合理性。通过创建不同的用户并赋予相应的权限,可以实现对数据库资源的有效管理。 #### 二、创建用户与基本操作 1. **...

    oracle 权限详解.docx

    10. **ROLE权限**:角色是权限的集合,`CREATE ROLE`允许创建新的角色,`ALTER ANY ROLE`则允许修改任何已存在的角色,而`GRANT`和`REVOKE`权限可以将角色分配给用户。 11. **SYSTEM权限**:`ALTER SYSTEM`允许修改...

    Oracle权限

    ### Oracle权限管理详解 #### 一、Oracle权限概述 Oracle数据库通过权限管理机制来确保数据的安全性和完整性。权限主要包括系统权限(SYS PRIVILEGES)和对象权限(OBJECT PRIVILEGES)。系统权限允许用户执行特定...

    Oracle系统权限和对象权限

    为了更好地管理权限,Oracle还提供了一系列工具和技术,如角色(Role)、策略(Policy)等,以帮助管理员实现更精细的权限控制。此外,随着技术的发展,Oracle也在不断更新其权限模型,以适应新的需求和挑战。 综上所述...

    oracle9i企业管理器详解

    Oracle 9i企业管理器是Oracle公司为数据库管理员和IT专业人员提供的一款强大的工具,它旨在简化数据库的管理和维护工作。这个详细的教程将深入探讨Oracle 9i企业管理器的各种特性和功能,帮助初学者快速掌握Oracle...

    oracle用户权限管理使用详解

    总的来说,Oracle的用户权限管理是一个复杂而精细的系统,需要管理员根据实际需求谨慎操作,确保数据安全的同时提供适当的用户访问级别。了解并熟练掌握这些管理策略,对于任何Oracle数据库管理员来说都是至关重要的...

    oracle权限管理

    通过以上介绍可以看出,Oracle权限管理不仅涵盖了基本的权限授予和收回操作,还支持更高级的功能,如通过角色来管理和分发权限。这对于大型组织来说是非常重要的,因为它可以帮助确保只有经过授权的人员才能访问敏感...

    Oracle系统权限说明

    Oracle数据库的系统权限是管理数据库安全性和访问控制的关键组成部分,主要分为系统权限和对象权限。系统权限涉及到对数据库全局操作的授权,而对象权限则针对特定数据库对象的访问和管理。以下是对这些权限的详细...

    oracle权限详解[文].pdf

    Oracle权限管理是数据库管理系统中的核心组成部分,用于控制不同用户对数据库资源的访问和操作。...了解和熟练掌握这些权限对于软件开发者和数据库管理员来说至关重要,因为它们直接影响到应用的功能实现和数据安全性。

    oracle数据库详解基础篇

    同时,需要设置数据库管理员的身份和权限。 二、自带工具 sqlplus 的使用 sqlplus 是 Oracle 数据库的自带工具,用于执行 sql 语句、管理数据库、查看数据库信息等。sqlplus 可以通过命令行方式或图形化界面方式...

    Oracle 权限管理

    本文档将详细介绍Oracle权限管理的基础概念、系统权限与对象权限的分配和撤销方法,以及如何通过角色来实现更精细的权限控制。 #### 二、Oracle系统权限管理 **2.1 Oracle系统权限** Oracle提供了大约80种系统...

    Oracle常用对象大全及实例详解.pdf

    学习和掌握这些Oracle对象对于数据库管理员、开发人员和系统架构师来说至关重要。通过实例和实践操作,可以更好地理解和应用这些概念,从而提高数据库的性能、安全性和管理效率。在日常工作中,应根据具体场景选择...

    Oracle9i企业管理器详解,是学习Oracle9i企业管理器的最好教程。

    Oracle9i企业管理器是Oracle数据库管理系统的一个重要组件,它提供了全面的数据库管理和监控功能,使得DBA(数据库管理员)能够更有效地管理Oracle数据库环境。在这个详尽的教程中,我们将深入探讨Oracle9i企业管理...

    ORACLE用户、权限管理.txt

    - **数据库角色**:Oracle数据库中定义了一系列预设的角色,例如DBA、CONNECT、RESOURCE等,这些角色封装了一组特定的权限集合,方便管理员进行权限分配。 - **权限管理**: - **系统权限**(System Privileges)...

    Oracle数据库知识详解

    - 当管理员使用WITH GRANT OPTION授权时,被授权用户可以进一步将此权限授予其他用户或角色。 综上所述,Oracle数据库提供了丰富的功能和支持,涵盖了从数据存储、管理到高级权限控制等多个方面。了解这些基础知识...

    Oracle数据操作和控制语言详解

    在设计和实施数据库方案时,理解并熟练掌握这些语言可以帮助管理员有效地管理数据,同时保护数据库免受未经授权的访问和修改。在实际操作中,应根据业务需求和安全策略灵活运用这些语句,以达到最佳的数据库管理效果...

Global site tag (gtag.js) - Google Analytics