Archive

Posts Tagged ‘oracle’

Oracle监听器无法打开

November 27th, 2008

这两天遇到了太多的非常规问题…Oracle用户权限.今天又遇到了一个比较郁闷的事情.Oracle导入的时间发现版本低于客户所提供的导出数据库的版本,致使导出失败.然后下载了Oracle,重新装上合适的版本,这时候出现了一个非常规的问题,不管是本机的还是其他机器都无法连接Oracle了.到服务里面瞅了下,监听器没有打开.所以客户端无法发链接.

原因很简单,卸载旧的Oracle的时间,这个服务里面监听器的路径没有删除,安装新版本的时间也没有覆盖掉这个地址.所以,全新的Oracle启动的时间,通过旧的地址,肯定是无法开启监听程序的.

修正的办法如下:

修改HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleOraDb10g_home1TNSListener

和HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\OracleOraDb10g_home1TNSListener种的ImagePath
修改为C:\Oracle安装路径\BIN\TNSLSNR

Author: 刘浏 Categories: soft Tags:

Oracle 如何给用户增加或去除权限

November 26th, 2008

Oracle上建完数据库之后,新建一个普通的用户是无法对数据库进行任何操作的.虽然有可视的见面来给用户赋予权限,不过,用命令来完成会更加方便些的.

权限的增加使用GRANT命令,REVOKE用来去除某些权限.

单个TABLE的权限

以用户scott的emp表对myuser为例来赋予增删改查的权限.

SQL> grant select,insert,update,delete on emp to myuser;
这样userAim就可以对scott.emp表进行增删改查等操作.

所有TABLE的查询权限

如果有很多张表的时间,一个一个的赋予权限会比较郁闷的.可以直接使用下面的语句来处理.

SQL> grant select any table to myuser;
但是这个存在一定的安全问题.所以还是谨慎些使用比较好.

利用Role给用户赋予权限

SQL> create role emp_access;
创建role
SQL> grant select,insert,update,delete on scott.emp to emp_access;
赋予role权限
SQL> grant emp_access to myuser;
给用户以role

函数执行权限

特定函数或存储过程的执行权限,以scott_emp_count()为例:

SQL> grant execute on scott_emp_count to myuser;
给myuser执行scott_emp_count的权限SQL> grant execute any procedure to myuser;给myuser执行所有函数的权限

REVOKE的使用方法和GRANT的一样,也就不再啰嗦了...这个也是自己两天来的一点心得了.没想到Oracle的用户管理这部分还挺麻烦的.不过,也好,又学到了一点点的东西.

Author: 刘浏 Categories: DotNET Tags: