数据库链接Oracle本地要与远程进行连接,要通过数据库链接。1.使用数据库链接进行查询和更新:SELECT * from worker;这样的语句表示在本地进行查询。而对于远程,则需要在语句后加相应的数据库链接。如:SELECT * FROM worker@remote_connect;如果想省去@号后面的字串,可以采用建立一个本地的同义词来实现。如:CREATE SYNONYM WORKER_SYN for WORKER@remote_connect;如果希望进行远程更新的话,类似可以在UPDATE语句中加上远程连接符。如:UPDATE worker@remote_connect SET lodging=’CRANMER’ where lodging=’ROSE HILL’;2.创建数据库链接的语法:创建数据库链接的语法如下:CREATE [PUBLIC] DATABASE LINK remote_connect CONNECT TO username identified by password using ‘connect string’;一般PUBLIC有DBA来创建。个人用户可以不加PUBLIC就是私有的数据库链接。 Oracle系统可以创建链接,但是连接的数量有限制。缺省的并发数是4(由init.ora文件中的OP_LINKS来限制)。为了建立数据库链接,需要有CREATE DATABASE LINKS 系统权限;要与远程的帐号进行连接还需要有CREATE SESSION普通权限。CREATE database link zhao connect to zhaoyuanjie identified by zhao_yuan_jie Using ‘sun450’;这样创建后,可以用下面语句来使用:SELECT * from tst@sun450;需要注意的是,在创建数据库链接时是根据Oracle的Tnsnames.ora参数文件中的连接字符串来填写连接字串。比如上面的连接字串是sun450 。则在tnsmaes.ora中的要有下面的数据项:SUN450 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = dbsvr)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = s450) ) ) 使用同义词获得本地透明在应用系统的生命周期内,为了方便和维护简便,经常采用建立同义词来实现透明的访问。例1. 没有建立本地透明时的访问:SELECT * FROM north.worker;例2.建立一个同义词,然后进行访问:CREATE SYNONYM WORKER FOR NORTH.WORKER;SELECT * FROM WORKER; 在实际应用中,为了达到隐藏表的所有权,还可以通过使用数据库链接和同义词来隐藏数据的物理位置。通过使用对应远程端的本地表同义词,可以把另一个逻辑层从应用转移到数据库中。例3.建立一个本地同义词的远程表:CREATE SYNONYM WORKERSKILL For WORKERSKILL@remote_connect;3 在视图中使用user伪列Oracle提供一个伪列user, 它可以在创建视图中使用,从而实现对结果的返回的限制。如:CREATE OR REPLACE VIEW emp_lst AS select * from emp Where ename=user;这样的视图表示,只有使用者的用户名与ename中的名字一样,才能返回相关的记录。
干吗不用mysql工具,还可以把sql文件直接导入远程数据库
安装mysql的时候还要选上允许远程连接
可以的,但mysql默认是没有开启远程控制的,必须添加远程访问的用户。在远端的数据库用root用户登陆,然后: grant all privileges on *.* to '用户名'@'%' identified by '密码' with grant option; flush privileges; * 刷新刚才的内容* grant格式说明:grant 权限 on 数据库名.表名 to 用户@登录主机 identified by "用户密码"; @ 后面是访问mysql的客户端IP地址(或是 主机名),% 代表任意的客户端; 如果写成 localhost,则为本地访问。同样也可以为现有的用户设置是否具有远程访问权限。如下: use mysql; update user set host = '%' where user = '用户名'; (如果写成 host=localhost 那此用户就不具有远程访问权限) flush privileges;经过上述设置,你就开启了mysql远程控制,也就可以对数据库进行操作
做好dump就可以了,出错了大不了全部rollback。。
SET lodging=’CRANMER’ where lodging=’ROSE HILL’;2.创建数据库链接的语法:创建数据库链接的语法如下:CREATE [PUBLIC] DATABASE LINK remote_connect
CONNECT TO username identified by password using ‘connect string’;一般PUBLIC有DBA来创建。个人用户可以不加PUBLIC就是私有的数据库链接。
Oracle系统可以创建链接,但是连接的数量有限制。缺省的并发数是4(由init.ora文件中的OP_LINKS来限制)。为了建立数据库链接,需要有CREATE DATABASE LINKS 系统权限;要与远程的帐号进行连接还需要有CREATE SESSION普通权限。CREATE database link zhao connect to zhaoyuanjie identified by zhao_yuan_jie
Using ‘sun450’;这样创建后,可以用下面语句来使用:SELECT * from tst@sun450;需要注意的是,在创建数据库链接时是根据Oracle的Tnsnames.ora参数文件中的连接字符串来填写连接字串。比如上面的连接字串是sun450 。则在tnsmaes.ora中的要有下面的数据项:SUN450 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = dbsvr)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = s450)
)
)
使用同义词获得本地透明在应用系统的生命周期内,为了方便和维护简便,经常采用建立同义词来实现透明的访问。例1. 没有建立本地透明时的访问:SELECT * FROM north.worker;例2.建立一个同义词,然后进行访问:CREATE SYNONYM WORKER FOR NORTH.WORKER;SELECT * FROM WORKER;
在实际应用中,为了达到隐藏表的所有权,还可以通过使用数据库链接和同义词来隐藏数据的物理位置。通过使用对应远程端的本地表同义词,可以把另一个逻辑层从应用转移到数据库中。例3.建立一个本地同义词的远程表:CREATE SYNONYM WORKERSKILL
For WORKERSKILL@remote_connect;3 在视图中使用user伪列Oracle提供一个伪列user, 它可以在创建视图中使用,从而实现对结果的返回的限制。如:CREATE OR REPLACE VIEW emp_lst
AS select * from emp
Where ename=user;这样的视图表示,只有使用者的用户名与ename中的名字一样,才能返回相关的记录。
grant all privileges on *.* to '用户名'@'%' identified by '密码' with grant option;
flush privileges; * 刷新刚才的内容* grant格式说明:grant 权限 on 数据库名.表名 to 用户@登录主机 identified by "用户密码";
@ 后面是访问mysql的客户端IP地址(或是 主机名),% 代表任意的客户端;
如果写成 localhost,则为本地访问。同样也可以为现有的用户设置是否具有远程访问权限。如下:
use mysql;
update user set host = '%' where user = '用户名'; (如果写成 host=localhost 那此用户就不具有远程访问权限)
flush privileges;经过上述设置,你就开启了mysql远程控制,也就可以对数据库进行操作