在Ubuntu上装个plsql通过远程桌面访问oracle

这真是个无比古怪的审计需求,需要让一些同事能访问oracle,但是不允许他们通过剪切板拷贝数据。

这只能是kvm+Ubuntu+xrdp+wine+plsql来实现了(CentOS应该也没问题)

首先准备ubuntu的iso,选精简的server版,桌面手动装:

1wget http://mirrors.163.com/ubuntu-releases/12.04/ubuntu-12.04.5-server-i386.iso  

生成kvm虚机磁盘:

1qemu-img create -f qcow2 /home/kvm/ubuntu.qcow2 20G  

安装kvm虚机:

1virt-install \  
2    --name=ubuntu \
3    --vcpu=1 \
4    --ram=2048 \
5    --disk path=/home/kvm/ubuntu.qcow2,format=qcow2,size=20 \
6    --cdrom=/home/kvm/ubuntu-12.04.5-server-i386.iso \
7    --os-type=linux  \
8    --network bridge=br0 \
9    --vnc --vnclisten=0.0.0.0 --vncport=5901

这时候就要连到实机的vnc 5901端口,开始安装。反正是只要用plsql的,所以缺省都可。记住要装上sshd server,便于远程管理。

装ubuntu时会提示生成一个非root用户,就叫plsql好了。

安装不表,安装好了以后因为装了sshd,所以就可以ssh远程操作了。

安装wine:

1sudo apt-get install software-properties-common  
2sudo add-apt-repository ppa:ubuntu-wine/ppa  
3sudo apt-get update  
4sudo apt-get install wine  

安装xrdp和gnome-shell以及输入法:

1sudo apt-get install xrdp  
2sudo apt-get install gnome-shell  
3sudo apt-get install ibus  
4sudo apt-get install fcitx-table-wbpy  

设置xrdp由gnome-session控制:

1#vi /etc/xrdp/startwm.sh
2...
3#加一行,用gnome-session控制
4echo "gnome-session --session=gnome-classic" > .xsession  
5. /etc/X11/Xsession
6...

设置xrdp的登录,去掉其它不需要的登录方式,只留一种并改名:

 1# vi /etc/xrdp/xrdp.ini
 2[globals]
 3bitmap_cache=yes  
 4bitmap_compression=yes  
 5port=3389  
 6crypt_level=low  
 7channel_code=1
 8
 9[xrdp1]
10name=plsql server  
11lib=libvnc.so  
12username=ask  
13password=ask  
14ip=127.0.0.1  
15port=-1  

ok, 先运行一下wine,生成目录结构以及注册表文件

1wine regedit  

在ssh终端运行以上的命令会退出,不要紧,退出时其实目录结构和注册表文件已经生成好了。

我们编辑一下注册表,改动一下PATH并且添加2个环境变量:

 1vi ~/.wine/system.reg  
 2...
 3[System\\CurrentControlSet\\Control\\Session Manager\\Environment] 1464861672
 4"ComSpec"=str(2):"C:\\windows\\system32\\cmd.exe"
 5"NUMBER_OF_PROCESSORS"="1"
 6"ORACLE_HOME"="c:\\oracle"
 7"OS"="Windows_NT"
 8"PATH"=str(2):"c:\\oracle\\bin;C:\\windows\\system32;C:\\windows;C:\\windows\\system32\\wbem"
 9"PATHEXT"=".COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH"
10"PROCESSOR_ARCHITECTURE"="x86"
11"PROCESSOR_IDENTIFIER"="x86 Family 6 Model 13 Stepping 3, GenuineIntel"
12"PROCESSOR_LEVEL"="6"
13"PROCESSOR_REVISION"="0d03"
14"SystemDrive"="c:"
15"SYSTEMROOT"="C:\\windows"
16"TEMP"=str(2):"C:\\windows\\temp"
17"TMP"=str(2):"C:\\windows\\temp"
18"TNS_ADMIN"="c:\\oracle\\network\\admin"
19"windir"=str(2):"C:\\windows"
20"winsysdir"="C:\\windows\\system32"
21...

注意上面,我们添加了两行TNSADMINORACLE_HOME,并修改了PATH,总共三个地方。

我们再下载oracle的客户端,basic的即可,并解压到指定地方:

1mkdir -p ~/.wine/drive_c/oracle/network/admin  
2wget http://eservice.yru.ac.th/d/instantclient-basic-nt-11.2.0.4.0.zip -o /tmp/instantclient-basic-nt-11.2.0.4.0.zip  
3cd ~/.wine/drive_c/oracle  
4unzip -x /tmp/instantclient-basic-nt-11.2.0.4.0.zip  
5mv instantclient_11_2 bin  

ok,大环境就准备好了。

下载plsql

1mkdir ~/Desktop 
2
3#下好plsqldev904.exe
4mv plsqldev904.exe ~/Desktop  
5wget http://www.rendoumi.com/soft/plsql.icon -o /etc/plsq.icon  

然后用远程桌面登录这台机器 image-20240118091436228

直接会看到桌面上有个exe image-20240118091457439

双击执行,就开始安装了 image-20240118091514614

然后I Agree,都按缺省的安装即可 image-20240118091543577

装完后,就直接把这个plsql.exe删除即可

然后生成个桌面快捷方式:

1# vi ~/Desktop/PLSQL\ Developer.desktop
2[Desktop Entry]
3Name=PLSQL Developer  
4Exec=wine "/home/plsql/.wine/dosdevices/c:/Program Files/PLSQL Developer/plsqldev.exe"  
5Path=/home/plsql/.wine/dosdevices/c:/Program Files/PLSQL Developer  
6Icon=/etc/plsql.icon  
7Type=Application  
8Categories=Wine;  

这时候回到远程桌面,已经可以看到桌面上多了个白色的东西: image-20240118091602521

右键点击,打开Properties: image-20240118091621098

把Allow executing file as program给勾住,图表也显示出来了 image-20240118091642142

ok,弄好了,最后运行即可,是可以输入汉字的:

image-20240118091659807

最后补充一下,tnsnames.ora是放在下面这个目录下的:

1~/.wine/drive_c/oracle/network/admin

设置git Ssh代理
F5-Bigip的Load Balance告警邮件设置
comments powered by Disqus