我正在使用C#测试连接firebird 3.我使用的版本是最新版本:Firebird ADO.NET Provider 5.0.但是当您建立连接时,会出现"客户端和服务器上请求的线程加密级别不兼容"的错误."
在" Firebird ADO.NET 4.10.0.0数据提供程序是否与Firebird 3.0配合使用? "中,有一些建议可以在传统模型中启用身份验证或创建旧版用户.
但我的问题是,如果真的不支持5.0版Net Provider中的新SRP身份验证模型?
尝试下面的代码,但导致异常 - 远程接口拒绝SQLSTATE [HY000] [335544421]连接:
try {
$dbh = new PDO("firebird:dbname=localhost/3050:empty", "SYSDBA", "masterkey");
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sth = $dbh->query('SELECT idmspos, idmsqnt, cdmsval from svc$dms');
$sth->setFetchMode(PDO::FETCH_ASSOC);
while($row = $sth->fetch()) {
echo $row['idmspos']." ".$row['idmsqnt']." ".$row['cdmsval']."<br>";
}
$dbh = null;
}
catch(PDOException $e) {
$dbh = null;
echo $e->getMessage();
}
Run Code Online (Sandbox Code Playgroud)
眼镜:
Linux 3.2.0-4-686-pae #1 SMP Debian 3.2.65-1+deb7u1 i686 GNU/Linux
PHP 5.6
php5-interbase
Firebird 3 from official site. Server is worked, can connect to him from local and remote machine.
Run Code Online (Sandbox Code Playgroud) 由于firebird 3我无法修改列类型
在我使用这种更新之前:
update RDB$RELATION_FIELDS set
RDB$FIELD_SOURCE = 'MYTEXT'
where (RDB$FIELD_NAME = 'JXML') and
(RDB$RELATION_NAME = 'XMLTABLE')
Run Code Online (Sandbox Code Playgroud)
因为我得到ISC错误335545030.
也许火鸟3有另一种方式?
我试图在Firebird数据库中的存储过程中创建临时表.
我的存储过程列表:
SET TERM ^ ;
CREATE PROCEDURE initNATIONALHEALTHFUNDS
AS BEGIN
CREATE GLOBAL TEMPORARY TABLE temp_FUNDS
(
NATIONALHEALTHFUNDID Integer NOT NULL,
NAME Varchar(128) NOT NULL,
CODE Integer NOT NULL
)
ON COMMIT PRESERVE ROWS;
commit;
INSERT INTO tempFUNDS (NATIONALHEALTHFUNDID, CODE, NAME) VALUES ( 01 ,01 , 'Some Foundation');
MERGE INTO NATIONALHEALTHFUNDS AS target
USING tempFUNDS AS source
ON target.NATIONALHEALTHFUNDID = source.NATIONALHEALTHFUNDID
WHEN NOT MATCHED THEN
INSERT (NATIONALHEALTHFUNDID, CODE, NAME) VALUES (source.NATIONALHEALTHFUNDID, source.CODE, source.NAME);
drop TABLE tempFUNDS;
END^
SET TERM ; …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用.NET Firebird Provider连接到嵌入式FB 3.0.1服务器.
据我所知,(也写在这里(第6页)),没有更多的fbclient.dll\fbembed.dll,但单个客户端fbclient.dll用于远程和嵌入式访问.
但是当我调用FBConnection.Open()时,我得到一个System.DllNotFoundException:
Unable to load DLL 'fbembed':
Impossible to find the specified module (Exception from HRESULT: 0x8007007E).
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
c# firebird firebird-embedded firebird-3.0 firebird-.net-provider
我从firebird 2.5.x迁移到3.0我改变了firebird.conf:
WireCrypt = Enabled
AuthServer = Legacy_Auth, Srp, Win_Sspi
Run Code Online (Sandbox Code Playgroud)
在那之后你就是这样:
我可以使用SYSDBA masterkey从Netbeans IDE连接.我可以使用SYSDBA和其他密码从FlameRobin(数据库管理工具)连接.我无法使用SYSDBA与其他密码从Wild-Fly服务器连接.
我真的很想知道.!!
我希望使用WireCompression连接到Firebird Server 3.0。自3.0版以来,这是一项新功能,我很难做到这一点,而我能找到的唯一文献记录的指令是在firebird.conf中将WireCompression设置为TRUE,并使用连接参数“ wirecompression = true”。
这是我到目前为止的内容:
firebird.conf:
# Firebird configuration file for Firebird 3.0 64-bit SuperServer
# Optimized by IBSurgeon (www.ib-aid.com) for HQbird distribution.
#
ServerMode = Super
#DatabaseAccess = Full
#RemoteAccess = true
#ExternalFileAccess = None
#UdfAccess = Restrict UDF
#TempDirectories =
#AuditTraceConfigFile =
#MaxUserTraceLogSize = 10
DefaultDbCachePages = 50000
#DatabaseGrowthIncrement = 128M
#FileSystemCacheThreshold = 64K
#FileSystemCacheSize = 0
#RemoteFileOpenAbility = 0
TempBlockSize = 2M
TempCacheLimit = 364M
AuthServer = Srp
AuthClient = Srp, Win_Sspi, Legacy_Auth
UserManager = …
Run Code Online (Sandbox Code Playgroud) 下载Firebird数据库Firebird-3.0.3.32900-0_x64_pdb.zip。解压文件夹install_service.bat并能够访问EMPLOYEE.FDB数据库。无需 install_service 也能够访问 EMPLOYEE.FDB 数据库。为了为 EMPLOYEE.FDB 创建新用户,我使用 SYSDBA USER 在 isql 中打开 EMPLOYEE.FDB 数据库。使用以下查询来创建新用户:
create user DEMO password 'demo' GRANT ADMIN ROLE;
Run Code Online (Sandbox Code Playgroud)
之后,我还可以使用 isql 中的 DEMO USER 打开 EMPLOYEE.FDB 数据库。
我正在使用第三方 GUI 工具: https: //fishcodelib.com/Database.htm
使用上述工具我无法访问 EMPLOYEE.FDB 数据库。出现以下错误:
错误代码:335544472 编号:335544472,类别:0,行:0 错误消息:您的用户名和密码未定义。请您的数据库管理员设置 Firebird 登录。
Firebird 配置参数设置不正确。请在 firebird.conf 中启用以下参数:(对于默认 SRP)WireCrypt = 启用(对于旧版身份验证)WireCrypt = 启用 AuthServer = Legacy_Auth、Srp、Win_Sspi
设置用户和密码:选项 ->(全局)附加连接字符串参数 -> Firebird
我已经在 firebird.conf 文件中应用了上述配置。仍然遇到同样的异常。所以,我的问题是,为任何数据库创建用户的正确方法是吗?意味着我想使用新用户为我的 C# 应用程序创建新数据库。
例子 :
数据库:Mydb.fdb;用户:SYSDBA(默认用户)、demo
我想在我的 C# 应用程序中使用演示用户执行所有 SQL 操作。那么,您能帮助我如何为具有不同权限和授予的特定数据库创建多个用户吗?
我已经经历过:
https://firebirdsql.org/file/documentation/release_notes/html/en/3_0/rnfb30-compat-initsec.html
https://firebirdsql.org/refdocs/langrefupd25-security-rdbadmin.html
但不明白如何做到这一点。
编辑: Firebird.conf 文件配置: …
我有超过 8 GB 的 firebird 数据库,我想从中迁移所有数据。但我忘记了用户名和密码。有没有什么工具可以破解这个数据库并取回我的数据?
我刚刚在Ubuntu 16.04 LTS中安装了Firebird 3.0.我可以从Windows计算机上使用Flamerobin连接到服务器.我还在服务器中安装了Flamerobin,以便能够在本地管理数据库,但是在注册服务器和数据库之后,连接失败了.Flamerobin显示以下错误消息:
IBPP::SQLException
Context: Database::Connect,
Message: isc_attach_database failed,
SQL Message: -923, Connection not established,
Engine code: 335544421, Engine Message: connection rejected by remote interface.
Run Code Online (Sandbox Code Playgroud)
您有什么建议来解决这个问题,并能够使用Flamerobin进行本地连接吗?
firebird-3.0 ×10
firebird ×9
c# ×2
database ×2
compression ×1
cracking ×1
delphi ×1
firedac ×1
flamerobin ×1
jaybird ×1
linux ×1
pdo ×1
php ×1
security ×1
temp-tables ×1
ubuntu ×1
wildfly ×1