C# 如何在C中连接到远程Firebird数据库#

C# 如何在C中连接到远程Firebird数据库#,c#,connection,firebird,remote-access,remote-server,C#,Connection,Firebird,Remote Access,Remote Server,我最近接受了一家公司的一个项目。我必须显示数据库中的数据。我在本地计算机上获得了这些文件,并创建了一个他们喜欢的程序,但当我替换连接字符串中的路径和数据源时,出现了一个错误。错误是这样的 FirebirdSql.Data.FirebirdClient.FbException (0x80004005): Your user name and password are not defined. Ask your database administrator to set up a Firebird

我最近接受了一家公司的一个项目。我必须显示数据库中的数据。我在本地计算机上获得了这些文件,并创建了一个他们喜欢的程序,但当我替换连接字符串中的路径和数据源时,出现了一个错误。错误是这样的

FirebirdSql.Data.FirebirdClient.FbException (0x80004005): Your user name and password are not defined. Ask your database administrator to set up a Firebird login.
所以后来我在他们的本地pc上复制了数据库,这台pc可以访问这个远程服务器。我将连接字符串更改为DB在本地pc上的位置。使用相同的用户名和密码,然后连接工作

关于他们服务器的更多信息。服务器是为连接到其数据库并在服务器上运行的程序而设置的。该公司的员工在本地计算机上通过该程序工作。我无法直接访问此服务器,因为该服务器根本没有连接到internet。我使用teamviewer来测试我的程序

这是我的远程和本地连接字符串

后面的连接字符串用于它们的网络

connectionString = "Server=192.168.1.10;User=sysdba;Password=masterkey;Charser=NONE;Database=\\192.168.1.10\\DB\\DB.fdb";
下面的连接字符串用于我使用teamviewer测试的公司的本地pc

connectionString = "Server=localhost;User=sysdba;Password=masterkey;Charser=NONE;Database=C:\DB\DB.fdb";
注意:我不确定员工使用的程序是否会干扰我创建的程序

  • 使用isql验证是否可以连接到数据库,请参阅
  • 使用上的示例验证您的代码
  • 检查
  • 使用GUI工具来管理用户和数据库

  • 无论如何,出于安全原因,最好使用另一个用户而不是sysdba。

    firebird的密码是服务器的本地密码(在其security2.fdb中)。如果将数据库复制到本地计算机(这表示安全性不高),并通过本地Firebird服务器访问它,它将使用该本地计算机的security2.fdb。您拥有的sysdba密码在本地计算机上有效(这是Firebird的默认密码)

    显然,服务器上的密码不同。你需要知道密码是什么,或者让他们的DBA给你一个特定的帐户


    至于您对另一个答案的评论,即数据库位于共享文件夹中:不要这样做。Firebird数据库应该由同一台机器上的一个(或多个)服务器进程访问。客户端等应该通过服务器连接,而不是打开共享文件。默认情况下,尝试打开共享数据库文件会被阻止,但如果这样做,可能会损坏数据库;在共享文件夹上拥有数据库也是一种糟糕的安全做法。

    这可能为时已晚,但作为其他服务器的参考,这是我连接到另一台服务器中的Firebird数据库的方式

    如果Firebird安装在同一台服务器上,则这是示例连接字符串:

    连接字符串= “Server=localhost;User=sampleusername;Password=samplepassword;Charser=NONE;Database=C:\DB\DB.fdb”

    所以,若它安装在不同的服务器上,只需从服务器获取服务器的IP和FDB文件的位置。例如,服务器IP为192.168.1.123,以下为连接字符串:

    连接字符串= “Server=192.168.1.123;User=sysdba;Password=masterkey;Charser=NONE;Database=192.168.1.123:C:\DB\DB.fdb”

    只是在服务器IP前面提供了冒号,后面是数据库的完整路径。对于服务器,只需设置相同的IP地址


    我希望这能帮助其他人。谢谢。

    谢谢你的回复。步骤1的问题是,我不知道从服务器到数据库的绝对路径。文件是共享的,因此我只知道共享文件夹的路径。我将试一试,并大胆猜测该文件夹是从程序文件或C:\的根目录共享的,谢谢您提供的信息,我肯定会在明天查看并给出反馈。@SandMan您无法访问Firebird共享数据库。您需要通过Firebird服务器访问它。
    Charser=NONE
    这是一个相当危险的设置。你能换一下吗?它正在走向麻烦。。。。