标签: cross-database

避免使用SET TRUSTWORTHY ON

我正在使用一个系统,该系统必须根据在另一个数据库中创建的对象在一个数据库中创建对象.对象不是重复的,所以我不能简单地复制对象.

我有下面的代码,简化了我正在尝试做的事情.如果取消注释ALTER DATABASE语句,它将运行而没有任何错误.这有可能创造一个安全漏洞,所以我想尽可能避免它.

我尝试过使用证书和假冒,但似乎没有任何效果.我认为DDL触发器在用户与登录时忽略了很多安全性.我也试着创造Test_DB_2存储过程中它调用了Test_DB_1 SP和具有存储过程,而不是由触发器调用,但这并没有帮助.

所以,你的挑战,如果你愿意接受它,是让下面的代码,而无需设置TRUSTWORTHY ON(或数据库链接转向如果有任何影响)工作.

感谢您提供的任何帮助!

/************************
   SET-UP THE TEST
************************/
USE master
GO
CREATE LOGIN Test_Security_Login WITH PASSWORD = 'p@ssw0rd1!'
CREATE DATABASE Test_DB_1
CREATE DATABASE Test_DB_2
GO
USE Test_DB_1
GO
CREATE PROCEDURE dbo.Create_View
AS
BEGIN
 EXEC('CREATE VIEW Test_View AS SELECT 1 AS one')
END
GO
CREATE USER Test_Security_User FOR LOGIN Test_Security_Login
GRANT EXECUTE ON dbo.Create_View TO Test_Security_User
GO
USE Test_DB_2
GO
CREATE TRIGGER DDL_TRIGGER ON DATABASE WITH EXECUTE AS 'dbo' FOR DDL_VIEW_EVENTS
AS
BEGIN
 EXEC …
Run Code Online (Sandbox Code Playgroud)

sql security cross-database sql-server-2008

3
推荐指数
1
解决办法
7595
查看次数

Symfony2 - Doctrine2:跨数据库连接列抛出Mapping-Exception

嗨想要在两个实体之间建立联接.实体位于不同的数据库中:

以下是我设置数据库配置的方法:

doctrine:
    dbal:
    default_connection: default
    connections:
        default:
            driver:   %database_driver%
            host:     %database_host%
            port:     %database_port%
            dbname:   %database_name%
            user:     %database_user%
            password: %database_password%
            charset:  UTF8
            mapping_types:
                enum: string
        data_warehouse:
            driver:   %database_data_warehouse_driver%
            host:     %database_data_warehouse_host%
            port:     %database_data_warehouse_port%
            dbname:   %database_data_warehouse_name%
            user:     %database_data_warehouse_user%
            password: %database_data_warehouse_password%
            charset:  UTF8
            mapping_types:
                enum: string

    orm:
    auto_generate_proxy_classes: %kernel.debug%

    default_entity_manager: default

    entity_managers:
        default:
            connection: default
            mappings:
                MyBundle1: ~


        data_warehouse:
            connection: data_warehouse
            mappings:
                MyBundle2: ~
Run Code Online (Sandbox Code Playgroud)

这些是我的实体:

namespace My\Bundle1\Entity;
use My\Bundle1\Entity\MyBundle2Entity;
class MyBundle1Entity
{

    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer", nullable=false)
     * @ORM\Id …
Run Code Online (Sandbox Code Playgroud)

php cross-database symfony doctrine-orm

3
推荐指数
1
解决办法
3826
查看次数

跨数据库外键错误

这是我的第一个数据库DB1的模型:

     from django.db import models 

     class Company(models.Model): 

          name = models.CharField(max_length=100, null=True)
          address = models.TextField(max_length=200, null=True)
          website = models.CharField(max_length=200, null=True)
          conatct_no = models.CharField(max_length=20, null=True)
          email = models.EmailField(max_length=20, null=True)
          logo = models.FileField(upload_to='logo/', blank=True, null=True)
          created = models.DateTimeField('company created', auto_now_add=True)
          updated = models.DateTimeField('company updated', auto_now=True, null=True)
          def __unicode__(self):  # Python 3: def __str__(self):
                return self.name
Run Code Online (Sandbox Code Playgroud)

第二个数据库模型Db2:

    from django.db import models

    from leavebuddymaster.models import Company

    class Department(models.Model): 
       company = models.ForeignKey(Company)
       department_name = models.CharField(max_length=50, null=True)
       created = models.DateTimeField('department created', auto_now_add=True)
       updated = models.DateTimeField('department updated', auto_now=True, …
Run Code Online (Sandbox Code Playgroud)

django foreign-keys cross-database

3
推荐指数
1
解决办法
2863
查看次数

如何使用cakephp3在Query中使用不同的数据源?

我正在开发一个cakePHP3项目,该项目有3个不同的数据源.我有一个名为application的主模型,它应该hasOne()与两个具有不同数据源的模型有两个关联作为Model Application.我创建了两个模型,并将两个模型表指向它们的数据源defaultConnectionName().

现在我hasOne()在我的ApplicationsTable对象中添加了两个关系,并在尝试时收到sql错误Applications->get().这很清楚,因为在SQL语句中它们并不是对FROM和JOIN部分的数据源的任何说明,例如SELECT * FROM datasource1.myTable

我查看了cakephp框架的ORM/Query类,而Query对象似乎只有一个数据源连接作为类属性.

有没有办法在使用蛋糕ORM的数据检索中使用不同的数据源,或者我应该在这里使用自定义查询?

提前致谢!

orm cakephp associations cross-database cakephp-3.0

3
推荐指数
1
解决办法
2014
查看次数

Symfony 和 Doctrine:跨数据库关系

我有两个具有 OneToMany 关系的实体Entity1和Entity2,但它们位于两个 MySQL 数据库中。

我如何在 Symfony 中实现这些实体及其关系?

是否可以创建两个独立的捆绑包来实现这些实体?

entity entity-relationship cross-database symfony doctrine-orm

3
推荐指数
1
解决办法
2774
查看次数

SQL Server:避免跨数据库视图中的数据库名称的硬编码

因此,假设您在同一服务器上有两个SQL Server数据库,它们在视图,函数和存储过程中引用彼此的表.

你知道,这样的事情:

use database_foo

create view spaghetti
as
select f.col1, c.col2
from fusilli f
inner join database_bar.dbo.conchigli c on f.id = c.id
Run Code Online (Sandbox Code Playgroud)

(我知道跨数据库视图不是很好的做法,但只是说你坚持使用它)

是否有任何好的技术可以避免对数据库名称进行"硬编码"?

(那么你是否需要偶尔重新指向另一个数据库 - 也许是为了测试 - 你不需要编辑视图,fns,sps的负载)

我对SQL 2005或SQL 2008解决方案感兴趣.干杯.

sql-server hard-coding cross-database

2
推荐指数
1
解决办法
2246
查看次数

连接来自不同数据库的表 (PostgreSQL)

是否可以使用 PostgreSQL 连接来自同一服务器中不同数据库的表?如果是这样,如何?

sql postgresql join cross-database

2
推荐指数
2
解决办法
9418
查看次数

PostgreSQL中的跨数据库查询

我正在尝试在Postgres中构建一个查询.我的背景是在SQL Server中,所以我有一些语法上的挑战.我的查询需要在两个单独的服务器上打两个单独的数据库.我需要在数据集之间进行连接.基本上,我在db1中有一个用户登录活动的表.每次用户登录网站时都会添加一个条目.在db2上,我有一个购买表.对于每一天,我需要看到:登录了多少人以及登录的用户中有多少人进行了购买.

我的表看起来像这样:

Logins                Purchases
---------             ---------
ID                    User_ID
User_ID               Amount
LoginDate 
Run Code Online (Sandbox Code Playgroud)

如果我的Purchases表上有日期字段,这将很容易.但事实并非如此.所以,目前,我正在尝试以下方面:

SELECT 
  // Somehow get the number of logins for the given day here
  // Somehow I need to get the number of purchases for the given day here      
  TO_CHAR(TO_TIMESTAMP((LoginDate/1000) - 14400), 'MM/DD/YYYY') AS the_day
FROM 
  db1.Logins AS t1,
  db2.Purchases as t2
GROUP BY the_day
ORDER BY the_day;
Run Code Online (Sandbox Code Playgroud)

如何在Postgres中获取每天的登录和购买次数?谢谢!

sql postgresql cross-database

1
推荐指数
1
解决办法
1万
查看次数