Firebird Role Question & Delphi 7
8 отговора
177 прегледа
Firebird Role Question & Delphi 7
Здравейте,
интересуваме някои сблъсквал ли се е с подобно нещо.
Имам База данни (Firebird - ска) в нея имам създадени 5 роли. Добавям Програмно потребители посредством TSecurityService. До тук ситуацията е бомба, но идва кофти момента: Трябва да задам на всеки потребител каква роля може да приема. Видях къде пише тези работи Firebirda ( в системната таблица RDB$user_privileges). Използвайки TIBSQL връзвам userite(добавям запис в таблицата) с определена роля, но когато се опитам да махна роля на даден потребител(изтрия запис от горепосочената таблица) Firebird ми казва че нямам права (а съм SYSDBA). Tоест крайния ефект е че на потребител мога да добавям роля, но не мога да махна такава. (да оставим факта че си "омазах" базата 2 пъти за 1 час).
Та питането ми е: няма ли компонент(нещо като ТSecurityService) за тази работа (стандартен май няма) или друг метод за реализиране на тези неща - не ми се бърка директно в системните таблици на Firebird.
Моля, помогнете
Благодаря предварително.
интересуваме някои сблъсквал ли се е с подобно нещо.
Имам База данни (Firebird - ска) в нея имам създадени 5 роли. Добавям Програмно потребители посредством TSecurityService. До тук ситуацията е бомба, но идва кофти момента: Трябва да задам на всеки потребител каква роля може да приема. Видях къде пише тези работи Firebirda ( в системната таблица RDB$user_privileges). Използвайки TIBSQL връзвам userite(добавям запис в таблицата) с определена роля, но когато се опитам да махна роля на даден потребител(изтрия запис от горепосочената таблица) Firebird ми казва че нямам права (а съм SYSDBA). Tоест крайния ефект е че на потребител мога да добавям роля, но не мога да махна такава. (да оставим факта че си "омазах" базата 2 пъти за 1 час).
Та питането ми е: няма ли компонент(нещо като ТSecurityService) за тази работа (стандартен май няма) или друг метод за реализиране на тези неща - не ми се бърка директно в системните таблици на Firebird.
Моля, помогнете
Благодаря предварително.
Re: Firebird Role Question & Delphi 7
Grant и Revoke ще ти свършат работа.
GRANT {rolename [, rolename ...]} TO {PUBLIC
| {[USER] username [, [USER] username ...]} } [WITH ADMIN OPTION];
REVOKE <rolename FROM username;
Вж. SQL Roles: Users and Security in InterBase
И ако позволиш един съвет: Никога не пиши в системните таблици, ако ти е мила базата.
Вярно е и другото: Никога не казвай "никога"

GRANT {rolename [, rolename ...]} TO {PUBLIC
| {[USER] username [, [USER] username ...]} } [WITH ADMIN OPTION];
REVOKE <rolename FROM username;
Вж. SQL Roles: Users and Security in InterBase
И ако позволиш един съвет: Никога не пиши в системните таблици, ако ти е мила базата.
Вярно е и другото: Никога не казвай "никога"
Редактирано от NDeu на
Re: Firebird Role Question & Delphi 7
Благодаря за идеята.
наистина не е много зравословно да се пипа по системните таблици
, оба4е TSecurityService не поддържа булгарица
.
Както и да е. там се оправих.
Утре ще пробвам идеиката. Grant мисля 4е работи, но за Revoke мисля че нямам права, а съм администратор. Някакви идеи?
Може и базата да ми е омазана. Ще пробвам и ще пиша пак.
наистина не е много зравословно да се пипа по системните таблици
Както и да е. там се оправих.
Утре ще пробвам идеиката. Grant мисля 4е работи, но за Revoke мисля че нямам права, а съм администратор. Някакви идеи?
Може и базата да ми е омазана. Ще пробвам и ще пиша пак.
Re: Firebird Role Question & Delphi 7
Малеее това приложениице ме върна в трети клас
.
GRANT и REVOKE наистина са полезни(10х NDeu). Обаче като се опитам да дам права на Потребител за някаква Роля (GRANT GUEST TO PESHO примерно) в КОНЗОЛА РАБОТИ, а от моето приложение ми дава "SYSDBA nas no permission to grant SQL role GUEST to user PESHO" (Ако SYSDBA няма правя - аз ли да имам )
.
Някакви нстройки ли има???
Help. Това приложениице ме взема за мезе
GRANT и REVOKE наистина са полезни(10х NDeu). Обаче като се опитам да дам права на Потребител за някаква Роля (GRANT GUEST TO PESHO примерно) в КОНЗОЛА РАБОТИ, а от моето приложение ми дава "SYSDBA nas no permission to grant SQL role GUEST to user PESHO" (Ако SYSDBA няма правя - аз ли да имам )
Някакви нстройки ли има???
Help. Това приложениице ме взема за мезе
Re: Firebird Role Question & Delphi 7
Напредък
не е достатъчно да си SYSDBA трябва опцията WITH GRANT OPTION на SYSDBA за всяка роля да е сетната иначе казва че няма права.
и все пак имам още проблеми с REVOKE - не да ва грешка но не работи
не е достатъчно да си SYSDBA трябва опцията WITH GRANT OPTION на SYSDBA за всяка роля да е сетната иначе казва че няма права.
и все пак имам още проблеми с REVOKE - не да ва грешка но не работи
Re: Firebird Role Question & Delphi 7
Какво значи "не работи"?
Ако не се лъжа (сега не ми се проверява) юзера си има правата, които са му дадени когато се е логнал. Ако смениш нещо по ролята, то ще се отрази чак след новото логване на юзера.
Ако не се лъжа (сега не ми се проверява) юзера си има правата, които са му дадени когато се е логнал. Ако смениш нещо по ролята, то ще се отрази чак след новото логване на юзера.
Re: Firebird Role Question & Delphi 7
Не работи е твърде общо понятие
Да не би да имаш предвид, че ролята си остава в базата. За да я махнеш от базата - Drop-ни я

Да не би да имаш предвид, че ролята си остава в базата. За да я махнеш от базата - Drop-ни я
Re: Firebird Role Question & Delphi 7
наистина проблема ми е доста "тънък" явно.
под неработи имам предвид:
Revoke Guest From Ivan (където Guest e rolq а Ivan e потребител)/* примерно се опитам да махна роля на потребител*/ Така написано това в конзола работи от моето приложение НЕ ДАВА грашка, но не маха и ролята на потребителя. Отворил съм базата като SYSDBA, а той е собственик на всичко в базата (Роли, таблици, вюта....) Дори WITH ADMIN Option му указах за всички роли.
Докато: GRANT Guest to IVAN работи перфектно както от приложението така и от конзола.
След толкоз опити вече си нямам и идея къде е проблема.
под неработи имам предвид:
Revoke Guest From Ivan (където Guest e rolq а Ivan e потребител)/* примерно се опитам да махна роля на потребител*/ Така написано това в конзола работи от моето приложение НЕ ДАВА грашка, но не маха и ролята на потребителя. Отворил съм базата като SYSDBA, а той е собственик на всичко в базата (Роли, таблици, вюта....) Дори WITH ADMIN Option му указах за всички роли.
Докато: GRANT Guest to IVAN работи перфектно както от приложението така и от конзола.
След толкоз опити вече си нямам и идея къде е проблема.
Re: Firebird Role Question & Delphi 7
Blagodarq na vsi4ki.
Podhoda e pravilen.
Raboti perfektno.
Podhoda e pravilen.
Raboti perfektno.