如何使用C#

时间:2015-11-02 10:06:25

标签: 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 login.

之后我将数据库复制到可以访问此远程服务器的本地PC上。我将连接字符串更改为DB在本地PC上的位置。使用相同的用户名和密码,然后连接工作。

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

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

以下连接字符串用于其网络

connectionString = "Server=192.168.1.10;User=sysdba;Password=masterkey;Charser=NONE;Database=\\192.168.1.10\\DB\\DB.fdb";

以下连接字符串用于我使用teamviewer测试的公司的本地电脑。

connectionString = "Server=localhost;User=sysdba;Password=masterkey;Charser=NONE;Database=C:\DB\DB.fdb";

注意:我不确定员工使用的程序是否会干扰我创建的程序。

3 个答案:

答案 0 :(得分:1)

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

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

  

connectionString =   “服务器=本地主机;用户=样本用户名;密码=样本密码; Charser = NONE;数据库= C:\ DB \ DB.fdb”;

因此,如果将其安装到其他服务器,只需从服务器获取服务器的IP和FDB文件的位置。例如,服务器IP为192.168.1.123,以下为连接字符串:

  

connectionString =   “服务器= 192.168.1.123;用户= sysdba;密码=主键; Charser =无;数据库= 192.168.1.123:C:\ DB \ DB.fdb”;

只需在服务器IP前面加上冒号,然后再输入数据库的完整路径即可。对于服务器,只需设置相同的IP地址即可。

我希望这可以帮助其他人。谢谢。

答案 1 :(得分:0)

  1. 如果您可以连接到数据库,请使用 isql 进行验证,请参阅this article
  2. 使用Firebird site
  3. 上的示例验证您的代码
  4. 查看aliases.conf
  5. 使用IBExper等GUI工具管理用户和数据库
  6. 出于安全原因,无论如何更好地使用另一个用户而不是sysdba。

答案 2 :(得分:0)

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

显然,服务器上的密码不同。您需要找出密码是什么或要求他们的DBA为您提供特定帐户。

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