2

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

 7 months ago
source link: https://bajie.dev/posts/20240118-plsql_linux/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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

2024-01-18 2 分钟阅读

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

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

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

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

生成kvm虚机磁盘:

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

安装kvm虚机:

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

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

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

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

安装wine:

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

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

sudo apt-get install xrdp  
sudo apt-get install gnome-shell  
sudo apt-get install ibus  
sudo apt-get install fcitx-table-wbpy  

设置xrdp由gnome-session控制:

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

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

# vi /etc/xrdp/xrdp.ini
[globals]
bitmap_cache=yes  
bitmap_compression=yes  
port=3389  
crypt_level=low  
channel_code=1

[xrdp1]
name=plsql server  
lib=libvnc.so  
username=ask  
password=ask  
ip=127.0.0.1  
port=-1  

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

wine regedit  

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

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

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

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

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

mkdir -p ~/.wine/drive_c/oracle/network/admin  
wget 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  
cd ~/.wine/drive_c/oracle  
unzip -x /tmp/instantclient-basic-nt-11.2.0.4.0.zip  
mv instantclient_11_2 bin  

ok,大环境就准备好了。

下载plsql

mkdir ~/Desktop 

#下好plsqldev904.exe
mv plsqldev904.exe ~/Desktop  
wget http://www.rendoumi.com/soft/plsql.icon -o /etc/plsq.icon  

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

image-20240118091436228

直接会看到桌面上有个exe

image-20240118091457439

双击执行,就开始安装了

image-20240118091514614

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

image-20240118091543577

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

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

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

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

image-20240118091602521

右键点击,打开Properties:

image-20240118091621098

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

image-20240118091642142

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

image-20240118091659807

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

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

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK