oracle用户权限问题造成访问数据库出错

By | 08月21日
Advertisement

今天连接数据库发现提示

C:\Users\zehua.xing>sqlplus his/***@oramh11g

SQL*Plus: Release 10.2.0.1.0 - Production on 星期一 8月 20 09:07:39 2012

Copyright (c) 1982, 2005, Oracle. All rights reserved.

ERROR:

ORA-12516: TNS: 监听程序找不到符合协议堆栈要求的可用处理程序

请输入用户名:

能够tnsping通服务器,说明服务断的监听进程是开启的

C:\Users\zehua.xing>tnsping oramh11g

TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Production on 20-8月 -2012 09:07:18

Copyright (c) 1997, 2005, Oracle. All rights reserved.

已使用的参数文件:

D:\oracle\product\10.2.0\db_1\network\admin\sqlnet.ora

已使用 TNSNAMES 适配器来解析别名

Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.2.2.4)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = oramh)))

OK (0 毫秒)

用oracle用户登录到操作系统提示/home/oracle权限不够,所有的oracle进程都是开启的

Could not chdir to home directory /home/oracle: Permission denied

-bash: /home/oracle/.bash_profile: 权限不够

-bash-4.1$ pwd

/

-bash-4.1$ ps -ef |grep ora

avahi 1952 1 0 Jun02 ? 00:00:00 avahi-daemon: running [ora.local]

oracle 2359 1 0 Jun02 ? 00:11:02 /home/u01/oracle/product/11.2.0/dbhome_1/bin/tnslsnr LISTENER -inherit

oracle 7362 1 0 Aug10 ? 00:01:06 oracleoramh (LOCAL=NO)

root 10081 17760 0 09:21 ? 00:00:00 sshd: oracle [priv]

oracle 10085 10081 0 09:21 ? 00:00:00 sshd: oracle@pts/1

oracle 10086 10085 0 09:21 pts/1 00:00:00 -bash

oracle 10142 10086 0 09:22 pts/1 00:00:00 ps -ef

oracle 10143 10086 0 09:22 pts/1 00:00:00 grep ora

oracle 10191 1 0 Aug14 ? 00:00:33 oracleoramh (LOCAL=NO)

oracle 10193 1 0 Aug14 ? 00:00:30 oracleoramh (LOCAL=NO)

oracle 10210 1 0 Aug14 ? 00:00:24 oracleoramh (LOCAL=NO)

oracle 17605 1 0 Jul17 ? 00:00:00 oracleoramh (LOCAL=NO)

oracle 23605 1 0 Jul31 ? 00:00:00 oracleoramh (LOCAL=NO)

oracle 23607 1 0 Jul31 ? 00:00:00 oracleoramh (LOCAL=NO)

oracle 23609 1 0 Jul31 ? 00:01:30 oracleoramh (LOCAL=NO)

oracle 23611 1 0 Jul31 ? 00:00:00 oracleoramh (LOCAL=NO)

oracle 23613 1 0 Jul31 ? 00:00:00 oracleoramh (LOCAL=NO)

oracle 23615 1 0 Jul31 ? 00:00:00 oracleoramh (LOCAL=NO)

oracle 23617 1 0 Jul31 ? 00:00:00 oracleoramh (LOCAL=NO)

oracle 23619 1 0 Jul31 ? 00:00:00 oracleoramh (LOCAL=NO)

oracle 23621 1 0 Jul31 ? 00:00:00 oracleoramh (LOCAL=NO)

oracle 23623 1 0 Jul31 ? 00:01:31 oracleoramh (LOCAL=NO)

oracle 24308 1 0 Jul18 ? 00:00:00 oracleoramh (LOCAL=NO)

oracle 24357 1 0 Aug08 ? 00:00:06 oracleoramh (LOCAL=NO)

oracle 24598 1 0 Aug09 ? 00:02:11 oracleoramh (LOCAL=NO)

oracle 29468 1 0 Jun18 ? 00:11:34 ora_pmon_oramh

oracle 29470 1 0 Jun18 ? 01:06:40 ora_vktm_oramh

oracle 29474 1 0 Jun18 ? 00:00:31 ora_gen0_oramh

oracle 29476 1 0 Jun18 ? 00:01:47 ora_diag_oramh

。。。。。

尝试用系统管理员身份登录数据库,但是失败

-bash-4.1$ sqlplus / as sysdba

-bash: sqlplus: command not found

-bash-4.1$ more ~/.bash_profile

/home/oracle/.bash_profile: 权限不够

检查/home/oracle权限,发现所有者是root

-bash-4.1$ ll /home

总用量 570340

drwxrwxr-x 3 root root 4096 7月 17 09:43 include

drwxrwxr-x 2 root root 4096 7月 17 09:42 lib

drwx------. 2 root root 16384 6月 1 18:00 lost+found

drwxr-xr-x 3 root root 4096 7月 31 17:56 njl

drwx------. 28 root root 4096 8月 16 14:14 oracle

drwxr-xr-x 2 root root 4096 7月 27 11:00 redis-server

drwxr-xr-x 4 root root 4096 6月 2 10:42 u01

drwxrwxrwx 10 root root 4096 7月 18 11:10 ZeromqServer

-rw-r--r-- 1 root root 583976960 7月 18 10:39 ZeromqServer.tar.gz

问题的原因基本确定,/home/oracle的所有者变成root,这问题也许是某个用户的误操作造成的。

将oracle的用户根目录和oracle的安装目录的所有者设置成oracle,用户组为oinstall之后问题解决。

本文出自 “超越~数据库&云计算” 博客,请务必保留此出处

Similar Posts:

  • 如何查看oracle用户权限?

    如何查看oracle用户权限? ORACLE数据字典视图的种类分别为:USER,ALL 和 DBA. USER_*:有关用户所拥有的对象信息,即用户自己创建的对象信息 ALL_*:有关用户可以访问的对象的信息,即用户自己创建的对象的信息加上 其他用户创建的对象但该用户有权访问的信息 DBA_*:有关整个数据库中对象的信息 (这里的*可以为TABLES,INDEXES,OBJECTS,USERS等.) 1.查看所有用户 select * from dba_user; select * from a

  • 教您如何复制ORACLE用户权限

    教您如何复制ORACLE用户权限 如何复制ORACLE用户权限是很多人提到过的问题,下面就对复制ORACLE用户权限的方法作详细的分析介绍,如果您对ORACLE用户权限方面感兴趣的话,不妨一看. 解释: 如果要实现权限赋予表是ALL ,视图是SELECT其他是EXECUTE DECODE (object_type, 'TABLE', 'ALL', 'VIEW', 'SELECT', 'EXECUTE') 然后修改 EXECUTE IMMEDIATE 'grant' || rec.grant_ty

  • Oracle用户权限的管理

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

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

    Oracle 权限设置 一.权限分类: 系统权限:系统规定用户使用数据库的权限.(系统权限是对用户而言). 实体权限:某种权限用户对其它用户的表或视图的存取权限.(是针对表或视图而言的). 二.系统权限管理: 1.系统权限分类: DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构. RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构. CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构.

  • 二、Oracle用户权限管理和Sql*plus 基本命令

    Oracle和SQL Server的区别: SQL Server用户sa登录后,可以看到很多数据库:而Oracle的启动其实是启动一个Oracle的实例,相当于一个数据库.那么Users只能对这个Oracle实例中的数据对象拥有权限.而每个用户拥有的数据对象可能不相同. Oracle的用户管理 Oracle安装完成后,会默认生成三个用户,sys.system.scott,其中scott是普通用户:sys是超级管理员,权限最高,角色是dba,并且具有create database的权限:syste

  • 用户登录模拟浏览器访问数据库的新形式--HttpWebRequest 访问数据库

    在一般的系统中,用户登录大部分都是简单的获取用户名和密码,然后到数据库查询.但是一两个系统的话,可以去访问数据库,然后来获取测试结果.如果是五个,六个系统,甚至更多的系统,都需要建立自己的用户表,而用户可能是一样的.这样的情况下,可能造成一部分的设计麻烦或者代码冗余.但是如果换种方式,有一个标准的数据库,它里面的用户是最最标准的,这个数据库提供给其它系统一个webService,当其它用户登录的时候,系统只需要去访问一个地址,然后传入用户名和密码,静等返回结果.这样的处理,是不是大大的提高了访问

  • Oracle 用户权限介绍

    ORACLE中数据字典视图分为3大类,用前缀区别,分别为:USER,ALL 和 DBA,许多数据字典视图包含相似的信息. 其中,USER_*:有关用户所拥有的对象信息,即用户自己创建的对象信息 ALL_*:有关用户可以访问的对象的信息,即用户自己创建的对象的信息加上其他用户创建的对象但该用户有权访问的信息 DBA_*:有关整个数据库中对象的信息 (这里的*可以为TABLES, INDEXES, OBJECTS, USERS等. 1.查看所有用户: select * from dba_users;

  • oracle用户权限查看

    直接查看数据词典视图: ORACLE数据字典视图的种类分别为:USER,ALL 和 DBA. USER_*:有关用户所拥有的对象信息,即用户自己创建的对象信息 ALL_*:有关用户可以访问的对象的信息,即用户自己创建的对象的信息加上其他用户创建的对象但该用户有权访问的信息 DBA_*:有关整个数据库中对象的信息 (这里的*可以为TABLES,INDEXES,OBJECTS,USERS等.) 1.查看所有用户 select * from dba_user; select * from all_us

  • oracle 用户权限、profile及角色的管理

    在oracle数据库中,用户和角色与数据库的权限息息相关,正确掌握对用户与角色的管理对于数据库的安装非常重要,本文主要总结在工作过程中经常用到的用户及角色的管理操作: 一.用户的基本管理操作: 1.创建用户同时指定密码与默认表空间 create user test identified by test default tablespace users; 2.给用户可以登录的系统权限 grant connect to test; 3.回收用户的权限 revoke connect from test

  • Kettle 误操作删除列与Oracle 用户权限设置

    问题描述: Kettle 版本:Kettle-2.5.0 Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production 同事用Kettle去完成数据上传的时侯,发现执行的比较慢.于是点开Kettle的update,检查更新设置是否正确.检查update设置,发现没有错误. 准备点击cancel退出,却不小心点了SQL按钮.于是一个潜在的悲剧即将出现. 这时出现了一些删除表列的SQL,类似于Alter ta

Tags: