[ ultraKeen @ 21.10.2002. 16:15 ] @
postoji njih troje:
tabela_A,
vlasnik te tabele user_A
nepoznati autorizovani korisnik user_X

vlasnik user_A tabele tabela_A kaze:

CREATE ROLE rola_B;
GRANT SELECT ON TABLE "tabela_A" TO rola_B;
GRANT rola_B TO user_X;

kada se na bazu kroz iSQL nakaci user_X sa:

CONNECT '...' USER 'user_X' PASSWORD '...' ROLE 'rola_B';

i pokusa:

SELECT * FROM "tabela_A";

sistem ga odbije jer nema prava pristupa - ?!

...a ako se (opet pod vlasnickim nalogom) doda:

GRANT SELECT ON TABLE "tabela_A" TO user_X;

onda onaj SELECT naravno prolazi - sto je po meni besmisleno: cemu onda sluzi rola_C ?

(InterBase 6.0.1.0)
[ Riste Pejov @ 21.10.2002. 17:54 ] @
Jeli Tabela_A zahteva pristup drugim objektima u bazu ?

ako je tako onda tabela_A mora imati privilegije da koriste te
iste tabele ili views.

kao primer i ja sam nekada davno imao slican problem,
postojala je tabela_A i view_A, i kada se dodeli user onda sve prodje ok
ali kad pokusas to isto preko ROLE objekte, onda ne pali.
zato prvo moras u dodeliti privilegije select,insert,update na tabela_A za view_A, a onda dodeliti select za role_A na view_A, u svakom slucaju proveri privilegije u RDB$PRIVILEGES
[ ultraKeen @ 22.10.2002. 03:20 ] @
u vezi zavisnosti tabele_A od drugih objekata...

da bi eliminisao svaku zavisnost, napravio sam posebnu, najprostije mogucu tabelu u posebnoj/novoj bazi, od jedne jedine kolone i 3 reda sadrzaja, tek da ima nesto zbog SELECT-a... i uradio sve kao sto je opisano u navedenom primeru: kao vlasnik tabele formirao rolu, toj roli dodelio prvo citanje te proste tabele, postojeceg usera dodelio roli... zatim probao SELECT nakacen kao taj user sa dodeljenom mu rolom - I OPET NECEeee !!! ... potpuno mi isto kaze kao i pre: "No permission for read/select access to TABLE prosta_proba" ...

proverio sam u nekakvom "Grant Manager for InterBase" da li ima te neke zavisnosti tabele 'prosta_proba' od nekog objekta okolo; nema nicega: trigeri, viewovi, procedure - sve prazno... tabela nema cak ni primarni kljuc...

u sistemskim tabelama je po meni sve OK: nova rola ima novog usera kao svog clana, a u RDB$USER_PRIVILEGES postoje 2 nova reda u kojima se kaze da rola moze selektovati prostu_tabelu, i da je onaj user, koji nije vlasnik tabele, clan te role...

:]]]]]]]]

*

...a posto je ovo postala vec skoro licna prepiska moje malenkosti i sve drazeg mi Riste Pejova (pamtim ja i ono od pre), ajde neka bude neko slavlje kada ovo resimo, neko zaista slavlje; majem se bre vec nedelju dana sa ovom gluposcu, procitao sam sve sa neta sta pise o rolama, probao i sa FireBird-om - i nista! ... nije da su mi te role bas neophodne, moglo bi i bez njih, ali eto mnogo me kopka... zaista, zaista me mnogo kopka...
[ Riste Pejov @ 22.10.2002. 08:41 ] @
Evo, ovo sto si ti rekao isto sam ponovio kod mene, na FB 1.0 build 796
i sve radi fino, ne znam sto je problem. Uradio sam novu bazu, novu tabelu i novu rolu, onda na rolu dodelim grant select na tabelu, a na jednog usera dodelim grant na rolu ... i user fino selectuje iz te tabele

Ali mala pojedinost je da kod mene owner je SYSDBA,
[ ultraKeen @ 22.10.2002. 20:16 ] @
a kod mene nece i dalje da radi iako sam SYSDBA :((((((

ne verujem da je u pitanju postupak formiranja novog usera, otvaranja nove tabele i one 3 pisljive linije kooda; suvise je prosto, mada ko zna...

ostaje da sumljam na sledece:

kod mene je FB build 794 iako sam ga stavio kao 796 - javla posle instalacije da je 794, al' ajd'...

testiranje kacenja i pokusaj SELECT-a kao unknown user koji koristi rolu, radim preko IBConsole je 1.0.0.336 odnosno preko ISQL-a koji se poziva iz nje... (mozda ti drugacije to testiras pa ti zato radi)

ono sto mi je najvise sumljivo (jer nema sta ostalo pa se vatam za slamku) je da se pri kacenju sa:

CONNECT '...' USER 'unknown' PASSWORD 'unknown' ROLE 'uloga';

bolduju od strane ISQL-a sve kljucne reci sem zadnje ROLE, nju kao da ne prepoznaje tj. kao da saam alat nezna da namesti konekciju u kojoj je aktiviranej rola...

jedino sto mi jos preostaje je da pitam - kao ti testiras tog usera koji se kaci sa rolom ? ... mozda je u tome stos, a ako nije - eto mene do tebe da mu nanu naninu.......
[ ultraKeen @ 23.10.2002. 03:51 ] @
...a nije da nema problama sa rolama: evo sta sam nasao u Firebird_v1_OpenBugs.html

442140 Grant for Roles on Views not working Confirmed Bug

The system is reporting that I don't have select rights on a table, when I select from a view which has select rights on the table.

1. Restore the DB
2. Create a new user
3. Make the user member off CALS_USER
4. Login with that user and the role CALS_USER
5. Execute the following statement.
SELECT * FROM VW_OBJECTS.

Generates the error: "No Select/Read rights on table catalog$lookup_info."

*

ne kazem da je to kod mene slucaj, ali problema ima... ili ih je barem bilo...
[ ultraKeen @ 23.10.2002. 17:28 ] @
jupi-heja-hej!!! :)))

RADI ali kada se nakacim na bazu - ali NE kroz iSQL vec DIREKNO koristeci IBConsole !!!

naime, nakacim se ja na LocalServer kao onaj user kome je ranije dodeljena rola - BEZ da me pita za rolu, ALI kada bi da se nakacim i na samu bazu u kojoj sam definisao tu rolu - e ONDA me otvori mogucnost da upisem i rolu (sto ranije nisam znao pa sam zato isao preko iSQL-a)... upisem je, nakacim se, probam onaj SELECT - i radi!!!

zakljucak: izgleda da je ipak u pitanju iSQL alat koji nezna da namesti rolu kod konekcije: zato i ne bolduje kljucnu rec ROLA... a ja stalno pokusavao da se kacim preko njega, glupavog iSQL-a...


hvala na trudu oko mog zamajavanja, najiskrenije :)