系统中用户权限的赋予_第1页
系统中用户权限的赋予_第2页
系统中用户权限的赋予_第3页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Oracle 系统中用户权限的赋予 ,查看和管理 .在 Oracle 数据库中 ,用户的权限分为两种 ( 在这里我们不讨论 dba 或 oper 的权限 ,只考虑普通 用户的权限 ), 分别是 System Privilege 系统权限和 User Table Privilege 用户数据表权限 .1. 首先 ,创建用户 ,以下几条命令可以创建一个用户,前提是必须以 DBA 的身份登录 (如果你不是DBA,不要看下去了 ):create user DB_USER identified by DB_USER_PW'仓U建用户 DB_USER密码为 DB_USER_PWgrant crea

2、te session to DB_USER '给用户创建会话的权限grant resource to DB_USER2. 当用户建立后 ,会自动在 Oracle 数据库系统中生成属于该用户的 Scheme (可以理解为所有 属于该用户的表 ,视图等对象的集合 ).该用户可以将对这些对象的访问权限赋予其它的系统用户 .3该用户用sqlplus登录后,以下命令可以看到该用户的权限(该部分取自于 CNOUG网站):本用户读取其他用户对象的权限 :select * from user_tab_privs;本用户所拥有的系统权限 :select * from user_sys_privs;ORA

3、CLE数据库用户与权限管理ORACLE是多用户系统,它允许许多用户共享系统资源。为了保证数据库系统的安全,数据 库管理系统配置了良好的安全机制。2. 1 ORACLE数据库安全策略建立系统级的安全保证 系统级特权是通过授予用户系统级的权利来实现, 系统级的权利(系统特权)包括:建立表 空间、建立用户、修改用户的权利、删除用户等。系统特权可授予用户,也可以随时回收。ORACLE系统特权有80多种。 建立对象级的安全保证对象级特权通过授予用户对数据库中特定的表、视图、序列等进行操作(查询、增、删改) 的权利来实现。建立用户级的安全保证用户级安全保障通过用户口令和角色机制 (一组权利) 来实现。 引

4、入角色机制的目的是简化 对用户的授权与管理。 做法是把用户按照其功能分组, 为每个用户建立角色, 然后把角色分 配给用户,具有同样角色的用户有相同的特权。2.2 用户管理ORACLE用户管理的内容主要包括用户的建立、修改和删除用户的建立SQL>CREATE USER jxzy>IDENTIFIED BY jxzy_password>DEFAULT TABLESPACE system>QUATA 5M ON system; /供用户使用的最大空间限额用户的修改SQL>CREATE USER jxzy>IDENTIFIED BY jxzy_pw>QUATA

5、 10M ON system;删除用户及其所建对象SQL>DROP USER jxzy CASCADE同时删除其建立的实体2.3 系统特权管理与控制ORACLE 提供了 80 多种系统特权,其中每一个系统特权允许用户执行一个或一类数据库操 作。授予系统特权SQL>GRANT CREATE USER,ALTER USER,DROP USER>TO jxzy_new>WITH ADMIN OPTION;回收系统特权SQL>REVOKE CREATE USER,ALTER USER,DROP USER>FROM jxzy_new/ 但没有级联回收功能显示已被授予的

6、系统特权(某用户的系统级特权)SQL>SELECT*FROM sys.dba_sys_privs2.4 对象特权管理与控制ORACLE寸象特权指用户在指定的表上进行特殊操作的权利。这些特殊操作包括增、删、改、查看、执行(存储过程) 、引用(其它表字段作为外键) 、索引等。授予对象特权SQL>GRANT SELECT,INSERT(office_num,office_name),>UPDATE(desc)ON office_organization>TO new_adminidtrator>WITH GRANT OPTION;/ 级联授权SQL>GRANT A

7、LL ON office_organization>TO new_administrator回收对象特权SQL>REVOKE UPDATE ON office_orgaization>FROM new_administrator/ 有级联回收功能SQL>REVOKE ALL ON office_organization>FROM new_administrator 显示已被授予的全部对象特权SQL>SELECT*FROM sys.dba_tab_privs2.5 角色的管理ORACLE的角色是命名的相关特权组(包括系统特权与对象特权),ORACLE用它来简化

8、特权管理,可把它授予用户或其它角色。ORACLE 数据库系统预先定义了 CONNECT 、 RESOURC、E DBA、 EXP_FULL_DATABAS、E IMP_FULL_DATABAS五个角色。CONNECT具有创建表、视图、序列等特权; RESOURCE!有 创建过程、触发器、表、序列等特权、DBA 具有全部系统特权; EXP_FULL_DATABAS、EIMP_FULL_DATABAS具有卸出与装入数据库的特权。通过查询sys.dba_sys_privs可以了解每种角色拥有的权利。授予用户角色SQL>GRANT DBA TO new_administractor>WIT

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

10、同的办法,所以下面只介绍sysdba的认证管理。一般对 sysdba 的管理有两种方式: * 作系统认证和密码文件认证。具体选择那一种认证 方式取决于:你是想在 Oracle 运行的机器上维护数据库,还是在一台机器上管理分布于不 同机器上的所有的 Oracle 数据库。 若选择在本机维护数据库, 则选择 * 作系统认证可能 是一个简单易行的办法;若有好多数据库,想进行集中管理,则可以选择password 文件认 下图比较直观的说明了这个选择权衡过程:使用 * 作系统认证方式的配置过程:1在 * 作系统中建立一个合法帐户。具体来说,在NT上,首先建立一个本地用户组,取名为ORA_DBA,其中SI

11、D为该数据库实例的SID,或者建立一个 ORA_DBA地组,该组不对应于任何一个单独的Oracle实例。这样当一个 NT 上有好几个 Oracle 实例时,不用分别管理。然后再 NT 上建立一个用户,并且把 它归入该组中。 但是实际上这两步在 Oracle8I 安装过程中已经自动完成了, 一般不用手动进 行。第 三 步 : 在 sqlnet.ora ( 位 于 $ORACLE_HOME/NETWORK/ADMIN 目 录 中 ) 中 , 把 SQLNET.AUTHENTICATION _SERVIC设St为 SQLNET.AUTHENTICATION_SERVICES= (NTS)思 为使用

12、NT 认证方式。第四步,在 INIT.ORA中,把 REMOTE_LOGIN_PASSWOR设置为 NONE,意思是不用 password 认证方式。完成以上步骤后,就可以在登录到 NT后,直接在SQL*Plus和SERVER MANAGE中 CONNECT INTERNAL (CONNECT / AS SYSDB来作为超级用户登录到 Oracle中,执行一些只有超级用户 才能进行的 * 作。在 Unix 下,情况有些不同。毕竟这是两个完全不同的 * 作系统。 首先,在安装 Oracle之前,建立一个 DBA组,这一步不用说了,不然是装不上Oracle的。一般还建立一个名为 Oracle的用户

13、,并把它加入到DBA组中。第二步,设置REMOTE_LOGIN_PASSWOR为 NONE。在 Oracle8.1以后,该参数默认为EXCLUSIVE 一定要记得改过来。第三步,用该用户名登录 Unix,运行 SQL*Plus或者 SERVERMANAGER,输入以下命令: CONNECT INTERNAL(CONNECT / AS SYSDB登录至U Oracle 中。使用 password 文件认证的具体步骤:Oracle 提供 orapwd 实用程序来创建 password 文件, 运用 orapwd 建立该认证方式的具体步 骤如下:1. 使用Orapwd实用程序来创建一个 PASSWO

14、RD文件。语法: orapwd file= 文件名 password=internal 用户密码 entried=entries.详细解释:文件名要包含完整的全路径名, 如果不指定, Oracle 把它默认放置 $ORACLE_HOME/db(s Unix 下)或者 $ORACLE_HOME/DATABASENT下)下。用户密码是用户 internal 的密码。当然后来还可以再向里边加入别的超级用户。Entries 表示最大允许有的超级用户数目。这个是一个可选的。前两者是必须指定的。一般 会把它设置的比实际需要大一些,以免不够。2 .把 INIT.ORA中 REMOTE_LOGIN_PASSW

15、OR设置为 EXCLUSIVE或 SHARED使用 EXCLUSIVE表示只有当前INSTANCE使用这个password文件。而且允许有别的用户作为sysdba登录进系统里边,而若选择了SHARED则表明不止一个实例使用这个密码文件,伴随着一个很强的约束:sysdba权限只能授予 sys和internal这两个用户名。(其实internal不是一个实际用 户,而只是sys作为sysdba登录时的一个别名。)同时还要记得把 sqlnet.ora文件中SQLNET.AUTHENTICATION _SERVlC设置为NONE。一般在Unix下它是默认设置。在 NT下,若选择典型安装时,会使用 OS

16、认证,而自定义时会使用 密码文件认证方式。在安装过程中会提示输入INTERNAL密码。这样的话,就不用在手工创建密码文件和设定 INTERNAL的密码了。3 .用SQL*Plus或SERVER MANAGE运行下面命令登录进系统:CONNECT INTERNAL密码。1. 在 Oracle8.1.6 安装在 WIN2000 下创建数据库时, 常常会发生凭证检索失败的错误。 这是由 于 Oracle 不 能 应 用 OS 认 证 的 结 果 。 一 般 可 以 通 过 修 改 sqlnet.ora 中 SQLNET.AUTHENTICATIONSERVICE为NONE来解决。这时,Oracle将

17、采用密码文件认证方式。2. 由于 Oracle 有几个系统预建的用户,所以最好在安装完成以后马上改变这些用户的密码。 系统默认得密码分别为: internal/oracle , sys/change_on_install, system/manager.3. 当选择密码文件认证方式时,可以再向系统中加入其他超级用户。比如用以下语句把用户SCOT功口入超级用户之中:(由具有sysdba权限的人执行)SQL>GRANTSYSDBATO SCOTT这样 SCOTT用户就具有了 sysdba 权限。注意,此时 SCOTT用 户可以以两种身份登录: SCOTT , SY当SCOTT在登录时没有输入

18、 AS SYSDBA寸,SCOTT是作 为普通用户登录的。 而当登录时输入了 AS SYSDBA寸,此时SCOTT登录进去的用户实际上为sys。4. 当前系统中的具有 sysdba权限的用户名可以从数据字典视图v$pwfile_user中查询得到: SELECT * FROM V$PWFILE_USER如上图所示。5 .系统中最大的具有 sysdba权限的用户数由创建密码文件时的ENTRIES参数决定。当需要创建更多的具有 sysdba 权限的用户时,就需要删除原有的密码文件,重新创建一个。这需 要关闭数据库,删除密码文件,重新创建一个新的密码文件,在entries 中输入足够大的数目。再启动

19、Oracle。这时,所有原来北授权的超级用户都不再存在,需要重新授权。所以在 重新创建密码文件前,先要查询该视图,记下用户名,再在创建完密码文件后重新授权。6. Internal 用户密码忘记的处理方法:有两种办法:1. ALTER USER SYS IDENTIFIED BY密码;/ 这同时也改变了 Internal 的密码,在 Oracle8l 中 通过2. 重新创建一个新的密码文件,指定一个新的密码。oracle 的系统和对象权限alter any cluster 修改任意簇的权限 alter any index 修改任意索引的权限 alter any role 修改任意角色的权限 al

20、ter any sequence 修改任意序列的权限 alter any snapshot 修改任意快照的权限 alter any table 修改任意表的权限 alter any trigger 修改任意触发器的权限 alter cluster 修改拥有簇的权限 alter database 修改数据库的权限 alter procedure 修改拥有的存储过程权限 alter profile 修改资源限制简表的权限 alter resource cost 设置佳话资源开销的权限 alter rollback segment 修改回滚段的权限 alter sequence 修改拥有的序列权限

21、alter session 修改数据库会话的权限 alter sytem 修改数据库服务器设置的权限 alter table 修改拥有的表权限 alter tablespace 修改表空间的权限 alter user 修改用户的权限 analyze 使用 analyze 命令分析数据库中任意的表、索引和簇 audit any 为任意的数据库对象设置审计选项 audit system 允许系统操作审计 backup any table 备份任意表的权限 become user 切换用户状态的权限 commit any table 提交表的权限 create any cluster 为任意用户创建

22、簇的权限 create any index 为任意用户创建索引的权限 create any procedure 为任意用户创建存储过程的权限 create any sequence 为任意用户创建序列的权限 create any snapshot 为任意用户创建快照的权限 create any synonym 为任意用户创建同义名的权限 create any table 为任意用户创建表的权限 create any trigger 为任意用户创建触发器的权限 create any view 为任意用户创建视图的权限 create cluster 为用户创建簇的权限 create databas

23、e link 为用户创建的权限 create procedure 为用户创建存储过程的权限 create profile 创建资源限制简表的权限 create public database link 创建公共数据库链路的权限 create public synonym 创建公共同义名的权限 create role 创建角色的权限 create rollback segment 创建回滚段的权限 create session 创建会话的权限 create sequence 为用户创建序列的权限 create snapshot 为用户创建快照的权限 create synonym 为用户创建同义名

24、的权限 create table 为用户创建表的权限 create tablespace 创建表空间的权限 create user 创建用户的权限create view 为用户创建视图的权限 delete any table 删除任意表行的权限 delete any view 删除任意视图行的权限 delete snapshot 删除快照中行的权限 delete table 为用户删除表行的权限 delete view 为用户删除视图行的权限 drop any cluster 删除任意簇的权限 drop any index 删除任意索引的权限 drop any procedure 删除任意存储

25、过程的权限 drop any role 删除任意角色的权限 drop any sequence 删除任意序列的权限 drop any snapshot 删除任意快照的权限 drop any synonym 删除任意同义名的权限 drop any table 删除任意表的权限 drop any trigger 删除任意触发器的权限 drop any view 删除任意视图的权限 drop profile 删除资源限制简表的权限 drop public cluster 删除公共簇的权限 drop public database link 删除公共数据链路的权限 drop public synony

26、m 删除公共同义名的权限 drop rollback segment 删除回滚段的权限 drop tablespace 删除表空间的权限 drop user 删除用户的权限 execute any procedure 执行任意存储过程的权限 execute function 执行存储函数的权限 execute package 执行存储包的权限 execute procedure 执行用户存储过程的权限 force any transaction 管理未提交的任意事务的输出权限 force transaction 管理未提交的用户事务的输出权限 grant any privilege 授予任意系

27、统特权的权限 grant any role 授予任意角色的权限 index table 给表加索引的权限 insert any table 向任意表中插入行的权限 insert snapshot 向快照中插入行的权限 insert table 向用户表中插入行的权限 insert view 向用户视图中插行的权限 lock any table 给任意表加锁的权限 manager tablespace 管理(备份可用性)表空间的权限 references table 参考表的权限 restricted session 创建有限制的数据库会话的权限 select any sequence 使用任意

28、序列的权限 select any table 使用任意表的权限 select snapshot 使用快照的权限 select sequence 使用用户序列的权限select table 使用用户表的权限select view 使用视图的权限unlimited tablespace 对表空间大小不加限制的权限 update any table 修改任意表中行的权限 update snapshot 修改快照中行的权限 update table 修改用户表中的行的权限 update view 修改视图中行的权限一、权限是用户对一项功能的执行权力。在 Oracle 中,根据系统管理方式不同,将权限分

29、 为系统权限与实体权限两类。 系统权限是指是否被授权用户可以连接到数据库上, 在数据库 中可以进行哪些系统操作。而实体权限是指用户对具体的模式实体(schema)所拥有的权限。这样讲可以有些模糊, 举个例子来说: select any table 是系统权限, 它表示可以查看任何表。 而 select on table1 是实体权限,表示对表 table1 的查询权限。二、见上表三、系统权限授权命令的使用语法:GRANT 权限名 TO 用户|角色 |PUBLIC其中,PUBLIC表示将权限赋给数据库中所有的用户例:赋给用户 USER1权限CREATE TABL的授权命令如下:SQL>GR

30、ANT CREATE TABLE TO USER1;授权语句还可以增加 WITH ADMIN OPTION 选项,表示被授权的用户可以将它所得权限赋给 其它用户,如:SQL>GRANT CREATE TABLE,CREATE VIEW TO USER1,USER2 WITH ADMIN OPTION;若要了解各用户所拥有的系统权限,可以查询数据字典USER_SYS_PRIVSROLE_SYS_PRIVS若要回收权限,则使用 REVOKE命令,如:SQL>REVOKE CREATE TABLE FROM USER1;四、实体权限管理 实体权限是指某一用户对某一特定 schema 对象的操作权限。1. 实体权限分类 不同的实体类型有不同的实体权限,如下表2. 实体权限的授命令语法如下:GRANT 实体权限名 |ALL TO 用户 | 角色 |PUBLIC其中,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论