From: David C. <wav...@gm...> - 2017-02-23 23:02:45
|
When I am trying to use some of the FirebirdSql.Data.Services API (v5.6) against a Firebird v2.5.6 database, such as; - FirebirdSql.Data.Services.FbServerProperties.GetDatabasesInfo() - FirebirdSql.Data.Services.FbSecurity.GetUsersDbPath() I get the error: "Service isc_info_svc_svr_db_info requires SYSDBA permissions. Reattach to the Service Manager using the SYSDBA account." This is even though I am logged in under the RDB$ADMIN ROLE. More to the point, further, when I call FbUserData[] users = Globals.FbSecurity.DisplayUsers(); (NB: Where my Globals.FbSecurity returns a FirebirdSql.Data.Services.FbSecurity object) I am provided with the full list of users when logged in as SYSDBA, but if logged in as another user under the RDB$ADMIN ROLE, I am returned only this given user in FbUserData[]. This is different from how things work in gsec. There, enumeration of users IS possible by connecting via the RDB$ADMIN role; >gsec -user MyAdm -pass admpw -role rdb$admin -display As I can CREATE and DROP users under a user with the RDB$ADMIN ROLE, it seems strange that I cannot list them as well. Is there any way of accessing the services API under a user other than SYSDBA? More to the point, I want to create users who have administrative function on the database (ie CREATE/DROP users) so that the SYSDBA user (and its password) are not in use/shared. But I need to be able to enumerate the list of users (eg FbSecurity.DisplayUsers()). Thanks in advance, David [image: Inline images 1] |