Firebird 2.5以前では、すべてのユーザーのリストにアクセスする唯一の方法は、サービスAPIによるものです。 FirebirdのADO.netプロバイダは、このためのユーティリティクラスを持っている:FirebirdSql.Data.Services.FbSecurity
:
var fbSecurity = new FbSecurity(ConnectionString);
var users = fbSecurity.DisplayUsers();
foreach (var user in users)
{
Console.WriteLine(user.UserName);
}
ます。また、ユーザーの追加、削除または変更するには、このクラスを使用することができます。
ほとんどのユーザーにとって、これはそのユーザーのみに制限されているため、SYSDBAとロールRDB $ ADMINのユーザーのみがすべてのユーザーを見ることができます。
Firebird 3はユーザー管理用のサービスAPIを非推奨とし、Firebird 3ではSQLユーザー管理ステートメントを使用する必要があります。 SQL Features for Managing Accessを参照してください。
Firebird 3は、現在のユーザが管理できるユーザでvirtual table SEC$USERS
を追加しました。ほとんどのユーザーにとっては、通常はこのユーザーだけです.SDBDBAとRDB $ ADMINロールを持つユーザーのみがすべてのユーザーを表示できます。
Firebird 3には複数の認証プラグインがあることに注意してください。つまり、ユーザー名は複数回(つまり、プラグインごとに最大で1回)発生する可能性があります。