2016-10-20 1 views
2

저는 기본적인 CRUD 작업을 통해 우리 제품의 데이터베이스 사용자를 관리하기위한 간단한 도구를 만들고 있습니다. 이 도구는 Firebird 2.5 데이터베이스와의 Firebird ADO v5.5.5.0 연결을 사용하여 VS2013에 구축되었습니다.SQL을 통해 사용자 목록을 열거하는 방법은 무엇입니까?

사용자 목록을 열거하기 위해 SQL을 사용하는 방법이 있습니까?

사용자 목록을 표시 한 다음 해당 목록에서 CRUD 작업을 수행해야합니다. 이 사용자 권한이 테이블에 존재하는 것을 필요로 명령을 실행

이러한 this link here에 도시

SELECT RDB$USER 
FROM RDB$USER_PRIVILEGES 
GROUP BY 1 

로는 적합하지.

도움을 주시면 감사하겠습니다. 감사.

답변

2

Firebird 2.5 또는 이전 버전에서는 모든 사용자의 목록에 액세스하는 유일한 방법은 서비스 API를 사용하는 것입니다. 파이어 버드 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을 추가했습니다. 대부분의 사용자는 일반적으로 해당 사용자 만이며 SYSDBA 및 RDB $ ADMIN 역할을 가진 사용자 만 모든 사용자를 볼 수 있습니다.

Firebird 3에는 여러 인증 플러그인이있을 수 있습니다. 즉, 사용자 이름은 여러 번 (즉, 플러그인 당 최대 한 번) 발생할 수 있습니다.

관련 문제