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

上传人:子 文档编号:42091553 上传时间:2018-06-01 格式:DOC 页数:11 大小:34KB
返回 下载 相关 举报
详解如何实现oracle修改用户权限和角色_第1页
第1页 / 共11页
详解如何实现oracle修改用户权限和角色_第2页
第2页 / 共11页
详解如何实现oracle修改用户权限和角色_第3页
第3页 / 共11页
详解如何实现oracle修改用户权限和角色_第4页
第4页 / 共11页
详解如何实现oracle修改用户权限和角色_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《详解如何实现oracle修改用户权限和角色》由会员分享,可在线阅读,更多相关《详解如何实现oracle修改用户权限和角色(11页珍藏版)》请在金锄头文库上搜索。

1、详解如何实现详解如何实现 OracleOracle 修改用户权限和角色修改用户权限和角色-今天看了这篇文章 觉得对我们学习 oracle 还是有很多帮助的,大家可以试着读读 这里将介绍 Oracle 修改用户权限的实现过程,包括一些权限管理方面的东西。希望通过本文能对大家了解 Oracle 修改用户权限有所帮助。ORACLE 数据库用户与权限管理ORACLE 是多用户系统,它允许许多用户共享系统资源。为了保证数据库系统的安全,数据库管理系统配置了良好的安全机制。2. 1 ORACLE 数据库安全策略建立系统级的安全保证 系统级特权是通过授予用户系统级的权利来实现,系统级的权利(系统特权)包括:

2、建立表空间、建立用户、修改用户的权利、删除用户等。系统特权可授予用户,也可以随时回收。ORACLE 系统特权有 80 多种。建立对象级的安全保证 对象级特权通过授予用户对数据库中特定的表、视图、序列等进行操作(查询、增、删改)的权利来实现。建立用户级的安全保证 用户级安全保障通过用户口令和角色机制(一组权利)来实现。引入角色机制的目的是简化对用户的授权与管理。做法是把用户按照其功能分组,为每个用户建立角色,然后把角色分配给用户,具有同样角色的用户有相同的特权。2.2 用户管理ORACLE 用户管理的内容主要包括用户的建立、修改和删除用户的建立 SQLCREATE USER jxzy IDENT

3、IFIED BY jxzy_password DEFAULT TABLESPACE system QUATA 5M ON system; /供用户使用的最大空间限额 Oracle 修改用户权限 SQLCREATE USER jxzy IDENTIFIED BY jxzy_pw QUATA 10M ON system; 删除用户及其所建对象 SQLDROP USER jxzy CASCADE; /同时删除其建立的实体 2.3 系统特权管理与控制ORACLE 提供了 80 多种系统特权,其中每一个系统特权允许用户执行一个或一类数据库操作。授予系统特权 SQLGRANT CREATE USER,AL

4、TER USER,DROP USER TO jxzy_new WITH ADMIN OPTION; 回收系统特权 SQLREVOKE CREATE USER,ALTER USER,DROP USER FROM jxzy_new /但没有级联回收功能 显示已被授予的系统特权(某用户的系统级特权) SQLSELECT*FROM sys.dba_sys_privs 2.4 对象特权管理与控制ORACLE 对象特权指用户在指定的表上进行特殊操作的权利。这些特殊操作包括增、删、改、查看、执行(存储过程) 、引用(其它表字段作为外键) 、索引等。授予对象特权 SQLGRANT SELECT,INSERT(

5、office_num,office_name), UPDATE(desc)ON office_organization TO new_adminidtrator WITH GRANT OPTION; /级联授权 SQLGRANT ALL ON office_organization TO new_administrator 回收对象特权 SQLREVOKE UPDATE ON office_orgaization FROM new_administrator /有级联回收功能 SQLREVOKE ALL ON office_organization FROM new_administrator

6、 显示已被授予的全部对象特权 SQLSELECT*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_DAT

7、ABASE 具有卸出与装入数据库的特权。通过查询 sys.dba_sys_privs 可以了解每种角色拥有的权利。授予用户角色 SQLGRANT DBA TO new_administractor WITH GRANT OPTION; = Oracle 的用户根据所被授予的权限分为系统权限和对象权限。其中最高的权限是 sysdba。 Sysdba 具有控制 Oracle 一切行为的特权,诸如创建、启动、关闭、恢复数据库,使数据库归档/非归档,备份表空间等关键性的动作只能通过具有 sysdba 权限的用户来执行。这些任务即使是普通 DBA 角色也不行。Sysoper 是一个与 sysdba 相似

8、的权限,只不过比 sysdba 少了 SYSOPER privileges WITH ADMIN OPTION,CREATE DATABASE,RECOVER DATABASE UNTIL 这几个权限而已。这两者的认证方式是相同的办法,所以下面只介绍 sysdba 的认证管理。 一般对 sysdba 的管理有两种方式: * 作系统认证和密码文件认证。具体选择那一种认证方式取决于:你是想在 Oracle 运行的机器上维护数据库,还是在一台机器上管理分布于不同机器上的所有的Oracle 数据库。若选择在本机维护数据库,则选择 * 作系统认证可能是一个简单易行的办法;若有好多数据库,想进行集中管理,

9、则可以选择 password 文件认证方式。 下图比较直观的说明了这个选择权衡过程: 使用 * 作系统认证方式的配置过程: 1 在 * 作系统中建立一个合法帐户。 具体来说,在 NT 上,首先建立一个本地用户组,取名为 ORA_DBA,其中 SID 为该数据库实例的 SID,或者建立一个 ORA_DBA 地组,该组不对应于任何一个单独的 Oracle 实例。这样当一个 NT 上有好几个 Oracle 实例时,不用分别管理。然后再 NT 上建立一个用户,并且把它归入该组中。但是实际上这两步在 Oracle8I 安装过程中已经自动完成了,一般不用手动进行。 第三步:在 sqlnet.ora(位于$

10、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

11、中,执行一些只有超级用户才能进行的 * 作。 在 Unix 下,情况有些不同。毕竟这是两个完全不同的 * 作系统。首先,在安装 Oracle 之前,建立一个 DBA 组,这一步不用说了,不然是装不上 Oracle 的。一般还建立一个名为 Oracle 的用户,并把它加入到 DBA 组中。 第二步, 设置 REMOTE_LOGIN_PASSWORD 为 NONE。在 Oracle8.1 以后,该参数默认为 EXCLUSIVE。一定要记得改过来。 第三步, 用该用户名登录 Unix,运行 SQL*Plus 或者 SERVER MANAGER,输入以下命令:CONNECT INTERNAL(CONN

12、ECT / 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

13、下)下。 用户密码是用户 internal 的密码。当然后来还可以再向里边加入别的超级用户。 Entries 表示最大允许有的超级用户数目。这个是一个可选的。前两者是必须指定的。一般会把它设置的比实际需要大一些,以免不够。 2 把 INIT.ORA 中 REMOTE_LOGIN_PASSWORD 设置为 EXCLUSIVE 或SHARED.使用 EXCLUSIVE 表示只有当前 INSTANCE 使用这个 password文件。而且允许有别的用户作为 sysdba 登录进系统里边,而若选择了 SHARED,则表明不止一个实例使用这个密码文件,伴随着一个很强的约束:sysdba 权限只能授予 s

14、ys 和 internal 这两个用户名。(其实 internal 不是一个实际用户,而只是 sys 作为 sysdba 登录时的一个别名。 ) 同时还要记得把 sqlnet.ora 文件中 SQLNET.AUTHENTICATION _SERVICES 设置为 NONE。一般在 Unix 下它是默认设置。在 NT 下,若选择典型安装时,会使用 OS 认证,而自定义时会使用密码文件认证方式。在安装过程中会提示输入 INTERNAL 密码。这样的话,就不用在手工创建密码文件和设定 INTERNAL 的密码了。 3 用 SQL*Plus 或 SERVER MANAGER 运行下面命令登录进系统:C

15、ONNECT 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

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

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号