同一个数据库下不同用户连接同一个数据库使用一个dblink

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了同一个数据库下不同用户连接同一个数据库使用一个dblink相关的知识,希望对你有一定的参考价值。

dblink的属性定义为public即可实现你的要求。
创建public属性的dblink语句:
create public database link dblink_name
connect to 用户名 identified by 密码
using sqlnet连接串;
注意:sqlnet连接串一定要与oracle server上tnsname.ora中定义的一致。追问

那么如果dblink已经建好但不是public的 有什么办法么,我这边没有连接那个数据库的密码,所以不能删除重建的

追答

oracle的dblink密码是加密的,而dblink只能drop掉后重建,所以你只能问创建dblink的人了,没有其他办法。

参考技术A select * from zhangsan.表名@link名 a
注:如果表中含有大对象则不能用dblink查询该字段追问

那么如果dblink已经建好但不是public的 有什么办法么,我这边没有连接那个数据库的密码,所以不能删除重建的

参考技术B 创建一个public dblink。追问

那么如果dblink已经建好但不是public的 有什么办法么,我这边没有连接那个数据库的密码,所以不能删除重建的

django 读写分离(数据库连接设置两个名字,一个读,一个写,读写数据库端口库用户不同,ip可以不同或相同)

主从分离:https://blog.csdn.net/weixin_39726347/article/details/88051089

1.在项目settings.py下的读写数据库配置如下:

DATABASES = {
    default: {
        ENGINE: django.db.backends.mysql,
        NAME: wanwen,
        USER:root,
        PASSWORD:root,
        HOST:192.168.1.102,
        PORT: 3306,         # 数据库使用的端口
        OPTIONS:{init_command:SET default_storage_engine=INNODB;},  #设置数据库为INNODB,为第三方数据库登录用
        CONN_MAX_AGE:600,  #数据库持久化,此处设置600秒即10分钟,有助于减少内存泄漏或导致一种片状连接的问题,可以设置更长,建议不超过1小时
                            #设置的持久化连接每次都将存活10分钟
    },
    slave: {
        ENGINE: django.db.backends.mysql,
        NAME: wanwenread,
        USER: readuser,
        PASSWORD: redpasswd,
        HOST: 192.168.1.102,
        PORT: 8306,  # 数据库使用的端口
        OPTIONS: {init_command: SET default_storage_engine=INNODB;},  # 设置数据库为INNODB,为第三方数据库登录用
        CONN_MAX_AGE: 600,  # 数据库持久化,此处设置600秒即10分钟,有助于减少内存泄漏或导致一种片状连接的问题,可以设置更长,建议不超过1小时
        # 设置的持久化连接每次都将存活10分钟
    }

}

 2.1.在项目根目录下创建数据库路由文件db_router.py,内容如下:

class MasterSlaveDBRouter(object):
    """数据库主从读写分离路由"""

    def db_for_read(self, model, **hints):
        """读数据库"""
        return "slave"

    def db_for_write(self, model, **hints):
        """写数据库"""
        return "default"

    def allow_relation(self, obj1, obj2, **hints):
        """是否运行关联操作"""
        return True

 2.2 .一主多从

 2.3.分库分表

 2.4. 手动分离

 

3.项目setting配置文件中配置读写分离路由:

# 数据库配置读写分离
DATABASE_ROUTERS = [‘db_router.MasterSlaveDBRouter‘,] # 指定你的路由分发类,读都在"slave"上,写都在"default"上

 

以上是关于同一个数据库下不同用户连接同一个数据库使用一个dblink的主要内容,如果未能解决你的问题,请参考以下文章

使用用户定义函数作为表的 DB2 查询结构

从同一个表但不同的数据库中获取一列连接

Nodejs + Mongo db 使用用户名和密码连接服务器数据库

linux下mysql_connect能连接数据库 mysql_select_db却用不了

SQL Server 数据库限制单用户使用和解除单用户使用

xampp从连接在同一网络中的不同系统将数据发送到MySQL db到本地主机[重复]