【问题标题】:Using EF with database first on a remote and secured database首先在远程且安全的数据库上将 EF 与数据库一起使用
【发布时间】:2013-09-17 16:03:37
【问题描述】:

我想知道是否可以在以下场景中使用 Entity Framework 扫描数据库并构建 EDMX 模型:

(它实际上是一个 PostgreSQL 数据库,我可能会使用dotConnect,但我认为原理是相同的,我在 devart 论坛上提出了类似的问题。)

数据库由 SSL 保护并且管理员已为单个 IP 地址提供访问权限 - 托管我的 ASP.NET 网站的计算机的地址。

理论上是否可以设置 Visual Studio(在我的开发机器上)和主机,使我能够使用我的开发机器访问该数据库?我需要在主机上进行哪些设置才能将其用作代理(我对其拥有完全的管理员访问权限)?

没有任何尝试,似乎唯一的选择是在主机上安装 Visual Studio,在那里构建 EDMX 模型,然后将其导入我的开发环境并在本地创建实际的数据库,但我只想做这是最后的手段。

【问题讨论】:

  • 你不能只要求管理员使用 pg_dump --schema_only 导出数据库模式并将脚本提供给你,以便你可以在本地重新创建它吗?安装 vs 那里听起来像是试图用大炮杀死一只麻雀。
  • 感谢您的提示。是的,我会问。数据受到过度保护,管理员对安全性过于敏感,所以我可能不得不使用大炮。
  • @user982119 您可以安装(或简单地复制)postgres 工具到服务器并使用pg_dump --schema_only 将数据库的架构转储到一个简单的 sql 脚本中。
  • @IgorRomanchenko,我必须补充一点,我只有对数据库的只读访问权限。该模式转储命令仍然有效吗?
  • @user982119 是的,它会的。 pg_dump 不会改变数据库,所以它只需要 RO 访问。

标签: c# asp.net database entity-framework postgresql


【解决方案1】:

只需将 postgres 工具和库复制到服务器机器(或在其上安装完整的 postgres 数据库)并使用 pg_dump 将数据库架构和/或数据转储到文件中。

阅读this page了解有关pg_dump的详细信息。

如果您只想转储架构,请使用 --schema_only 键作为 pg_dump

【讨论】:

    【解决方案2】:

    dotConnect for PostgreSQL 允许您通过代理进行连接。您可以在托管您的 ASP.NET 网站并有权访问 PostgreSQL 数据库的计算机上安装代理服务器。您可以通过此代理服务器连接到数据库。为此,您需要应用以下连接设置:

    PgSqlConnection conn = new PgSqlConnection("host=<DATABASE HOST>;port=5434;uid=<USER ID>;pwd=<PASSWORD>");
    conn.ProxyOptions.Host = "PROXY HOST";
    conn.ProxyOptions.Port = 3128;
    conn.ProxyOptions.User = "PROXY USER ID";
    conn.ProxyOptions.Password = "PROXY PASSWORD";
    

    dotConnect for PostgreSQL 也可以通过 SSL 连接。为此,您需要配置您的服务器,使其支持 SSL 连接并应用以下连接设置:

    conn.SslOptions.CACert = "D:\\Certificates Pg\\client\\root.crt";
    conn.SslOptions.Cert = "D:\\Certificates Pg\\client\\client.crt";
    conn.SslOptions.Key = "D:\\Certificates Pg\\client\\client.key";
    conn.SslOptions.SslMode = SslMode.Require;
    

    dotConnect for PostgreSQL 允许通过代理创建 SSL 连接。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-18
      • 2015-11-14
      • 1970-01-01
      相关资源
      最近更新 更多