|
![]() | _IV_LOCKS | ![]() | Systémové dotazy | _IV_PROFILE | ![]() |
Systémový informační dotaz _iv_subject_membership vrací informaci o náležení uživatelů do skupin a o obsazení uživatelů a skupin do rolí.
Uživatelé, skupiny a role jsou subjekty práv a jejich vzájemné náležení a obsazení ovlivňuje efektivní práva uživatelů.
Každý záznam v odpovědi na tento dotaz popisuje jeden vztah náležení nebo obsazení mezi dvojicí subjektů. Oba subjekty jsou charakterizovány redundantně. Pro kategorie subjektů lze použít konstanty CATEG_USER (1), CATEG_GROUP (9) a CATEG_ROLE (10).
Jméno sloupce | Typ | Obsah |
subject_name | CHAR(31) | jméno náležejícího subjektu (uživatele nebo skupiny) |
subject_categ | SMALLINT | kategorie náležejícího subjektu (uživatele nebo skupiny) |
subject_uuid | BINARY(12) | UUID náležejícího subjektu (uživatele nebo skupiny) |
subject_objnum | INT | číslo objektu náležejícího subjektu (z tabulky USERTAB) |
container_name | CHAR(31) | jméno obsahujícího subjektu (skupiny nebo role) |
container_categ | SMALLINT | kategorie obsahujícího subjektu (skupiny nebo role) |
container_uuid | BINARY(12) | UUID obsahujícího subjektu (skupiny) |
container_objnum | INT | číslo objektu obsahujícího subjektu (u skupiny z USERTAB, u role z OBJTAB) |
container_schema | CHAR(31) | jméno schématu obsahujícího subjektu (role) |
Dotaz na seznam skupin, do nichž patří uživatel David:
SELECT container_name FROM _iv_subject_membership WHERE subject_name='DAVID' AND subject_categ=CATEG_USER AND container_categ=CATEG_GROUP
Seznam uživatelů ve skupině Účetní
SELECT subject_name FROM _iv_subject_membership WHERE container_name='ÚČETNÍ' AND subject_categ=CATEG_USER AND container_categ=CATEG_GROUP
Seznam subjektů obsazených v roli Author aktuální aplikace
SELECT subject_name,CASE WHEN subject_categ=1 THEN 'User' ELSE 'Group' END AS Categ FROM _iv_subject_membership WHERE container_name='AUTHOR' AND container_categ=CATEG_ROLE AND container_schema=CURRENT_APPLICATION
Podmínka, že uživatel David patří do skupiny Účetní:
EXISTS(SELECT * FROM _iv_subject_membership WHERE subject_name='DAVID' AND subject_categ=CATEG_USER AND container_categ=CATEG_GROUP AND container_name='ÚČETNÍ')
![]() | _IV_LOCKS | ![]() | Systémové dotazy | _IV_PROFILE | ![]() |