Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2013.12.08;
Скачать: [xml.tar.bz2];

Вниз

Управление пользователями Firebird   Найти похожие ветки 

 
Пит   (2013-06-15 21:54) [0]

Есть: стандартная Delphi 7, FB 2.1

Каким образом наиболее просто можно добавлять пользователей FB, изменять им пароль и удалять пользователей?

У кого есть примеры на стандартных компонентах - буду весьма признателен!


 
DVM ©   (2013-06-15 23:10) [1]

Странный вопрос. Пользователи добавляются удаляются стандартно:

CREATE USER/ALTER USE и т.д.

http://www.firebirdsql.org/file/documentation/release_notes/html/ru/rlsnotes25.html#rnfb25-ddl-crtusr

Запрос просто пишешь и все.


 
Пит   (2013-06-15 23:56) [2]


> Странный вопрос.

цитируем:

В версии 2.5 добавлен синтаксис управления пользователями с помощью SQL.


 
DVM ©   (2013-06-16 00:35) [3]


> Пит   (15.06.13 23:56) [2]


> В версии 2.5

Сорри не заметил версию. Мой совет если можно мигрировать на 2.5 то лучше это сделать.
Если нельзя сделать, манипулировать пользователями можно будет только через API Firebird.
Для удобства можно сделать свой UDF и далее через SQL дергать хранимые процедуры, которые будут обращаться к этому UDF. UDF же будет использовать API Firebird для манипулирования пользователями.


 
Пит   (2013-06-16 01:33) [4]


> Мой совет если можно мигрировать на 2.5 то лучше это сделать.

а как лучше мигрировать? Подключение FDB файла сформированного под 2.1 возможно в сервере 2.5, это решит все проблемы?

Или нужно создавать БД под 2.5 и выполнять все DDL, потом данные вливать?


 
Пит   (2013-06-16 01:34) [5]

ну и так в целом - под 2.5 нет каких-то ярких особенностей глюков по сравнению с 2.1?


 
turbouser ©   (2013-06-16 01:52) [6]


>  Пит   (16.06.13 01:33) [4]


> а как лучше мигрировать?

2.1 - backup
2.5 - restore

> под 2.5 нет каких-то ярких особенностей глюков

Release Notes достаточно почитать.


 
Пит   (2013-06-16 02:04) [7]


> Release Notes достаточно почитать.

да я почитал. Но там о новых фичах. Ничего про несовместимость. Или глюки)
Может, народ больше знает


 
Аббат Пиккола   (2013-06-16 02:21) [8]

При миграции на какую-то из версий есть проблемы с русскими символами ASCII в текстах хранимых процедур, если таковые имеются. В остальном миграция вроде проходит нормально.


 
Аббат Пиккола   (2013-06-16 02:24) [9]

Попробуйте смигрировать базу, содержащую такую процедуру:

CREATE PROCEDURE AAA
AS
BEGIN
 /*Это просто мой комментарий*/
END

Если в новой базе Вы не сможете прочитать этот текст, то у вас налицо проблема. В этом случае я лично рекомендую составить скрипт для всех процедур и после миграции обновить их.

ALETR PROCEDURE AAA
AS
BEGIN
 /*Это просто мой комментарий*/
END


 
turbouser ©   (2013-06-16 02:55) [10]


> Пит   (16.06.13 02:04) [7]

багов много исправили
про совместимость -
если с кодировкой проблема, то
gbak -r -fix_fss_metadata
http://www.ibase.ru/devinfo/gbak.htm#rparams


 
Пит   (2013-06-16 20:39) [11]

А никто не в курсе, почему переменные привязки не работают?

Например:

q.SQL.Text := "CREATE USER "+editLogin.Text+" PASSWORD :user_password"
q.ParamByName("user_password").AsString := editPass.Text;


 
DVM ©   (2013-06-16 22:02) [12]


> Пит   (16.06.13 20:39) [11]

Еще б указал какие компоненты доступа используешь было бы вообще замечательно.


 
Пит   (2013-06-16 23:31) [13]

DVM, самые стандартные, которые в дельфи  встроены: TIBDatabase / TIbQuery и так далее.


 
Пит   (2013-06-16 23:39) [14]

Еще не могу понять - как все таки сделать систему безопасности.

Вот заводится новый пользователь, я делаю CREATE USER, работает от имени SYSDBA.
Но у меня есть в программе понятие права, которое разрешает создавать пользователей.

При назначении этого права я делаю юзеру: grant RDB$ADMIN to MyUser with admin option
Но при этом, когда этот MyUser заходит под своей ролью - он не может создавать пользователей... Видимо, надо зайти под ролью RDB$ADMIN, но у меня же своя система ролей и все заходят под некоей ролью "ROLE_STANDART".

Как сделать так, чтобы пользователь мог создавать других БД пользователей, но работал под своей ролью из моего набора?


 
DVM ©   (2013-06-17 09:13) [15]

Мой совет - не пытайся построить систему разраничения прав одними средствами firebird - сплошной гемморой это. Я уже описывал как то в общих чертах как поступить, эти решения не просто так родились. Встроенная система безопасности будет основой, но все разграничение прав лучше делать свое. Могу еще раз более подробно изложить мое видение.


 
Cobalt ©   (2013-06-17 10:19) [16]

через сервер приложений, который у тебя может быть не промежуточным звеном, как принято в 3-х звенке, а просто сбоку припека.


 
Inovet ©   (2013-06-17 10:52) [17]

Как-то давно уже году в 2000 в конференции по ФБ задали вопрос у меня в ФБ 1000+ (10000+) пользователей. Это клиника? Ответ был примерно таков - если эти пользователи заведены штатными средствами - клиника. Заведи несколько остальных через них пускай.

Ну вот, как выше советуют.


 
Пит   (2013-06-17 18:13) [18]


> Встроенная система безопасности будет основой, но все разграничение
> прав лучше делать свое. Могу еще раз более подробно изложить
> мое видение.

так у меня и есть собственная система безопасности (своя таблица users и access_right). Единственное что сделал - заведение пользовательских учеток средствами самого сервера. То есть, каждый пользователь - аккаунт в FB.

Отсюда и все вопросы - нужно уметь создавать такого пользователя, который умеет также создавать пользователей. Как это сделать?

SYSDBA можно создавать пользователей и так (create user) без всякой роли даже. Как дать право другой учетке создавать пользователей?


 
Пит   (2013-06-18 12:59) [19]

пам парам


 
Inovet ©   (2013-06-18 13:03) [20]

> [19] Пит   (18.06.13 12:59)

Ответили же.


 
DVM ©   (2013-06-18 14:39) [21]


> Пит   (17.06.13 18:13) [18]


> SYSDBA можно создавать пользователей и так (create user)
> без всякой роли даже. Как дать право другой учетке создавать
> пользователей?

Я решил в свое время проблему так:

У меня также как и у тебя для каждой моей учетной записи при ее создании автоматически создавалась учетная запись Firebird со случайным логином и паролем (пользователю он вообще даже не известен, т.к. вход происходил по моей учетной записи). Соответственно была таблица в которой было прописано соответствие между моими учетными записями и записями Firebird.
Разумеется нескольким моим учетным записям могла соответствовать одна учетная запись Firebird. Так вот всем моим учетным записям с административными полномочиями я ставил в соответствие SYSDBA и все.


 
Пит   (2013-06-18 15:34) [22]

DVM, ну у меня другой подход.

Все таки хотелось бы научиться создавать юзера, который умеет создавать других юзеров.


 
Inovet ©   (2013-06-18 16:10) [23]

> [22] Пит   (18.06.13 15:34)

Сколько их всего?


 
DVM ©   (2013-06-18 17:43) [24]


> Пит   (18.06.13 15:34) [22]


> Все таки хотелось бы научиться создавать юзера, который
> умеет создавать других юзеров.

Да без проблем:

Под SYSDBA делаешь:

ALTER USER TESTUSER GRANT ADMIN ROLE , где TESTUSER это твой юзер.

Далее логинишься под этим пользователем ОБЯЗАТЕЛЬНО УКАЗЫВАЯ РОЛЬ: RDB$ADMIN !!!
Он будет обладать правами нужными.


 
DVM ©   (2013-06-18 17:52) [25]


> Пит   (18.06.13 15:34) [22]

Ну собственно ты в [14] уже сам себе ответил, заходить надо под ролью RDB$ADMIN, т.к. эта роль и обладает нужными правами. Если ты хочешь чтобы твоя роль обладала такими же правами как RDB$ADMIN, то придется давать ей права на все такие же как у RDB$ADMIN.


 
Пит   (2013-06-18 21:26) [26]

DVM, не... Смотри, чтобы каждому пользователю не назначать права, то после создания пользователя ему дается роль ROLE_STANDART. Все коннектятся под ролью ROLE_STANDART. Ну просто, чтобы был доступ к нужным API, вьюхам и так далее.

Конкретные права уже определяются внутренней системой прав.

Так вот пользователь коннектится также под ROLE_STANDART (откуда я до коннекта знаю какие у него права) и как бы сделать так, чтобы он мог создавать пользователя? Неужели никак не сделать?
без переконнектов всяческих...


 
DVM ©   (2013-06-18 21:39) [27]


> Пит   (18.06.13 21:26) [26]


> Неужели никак не сделать?
> без переконнектов всяческих...

похоже что никак


 
Пит   (2013-06-20 11:08) [28]

как странно то.


 
DVM ©   (2013-06-20 11:17) [29]


> Пит   (20.06.13 11:08) [28]


> как странно то.

Ну я думаю, теоретически конечно можно попробовать наделить произвольную роль правом создавать пользователей, но для этого она должна получить полный доступ на ряд системных таблиц Firebird (каких точно я не знаю и не написано нигде).


 
Пит   (2013-06-20 11:53) [30]

DVM, а вот до 2.5 вроде есть API какое-то по созданию пользователей. Мож через него как можно?...


 
DVM ©   (2013-06-20 13:07) [31]


> Пит   (20.06.13 11:53) [30]


> Мож через него как можно?...

Можно конечно, я уже выше писал как. Делаеть UDF надо.



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2013.12.08;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.52 MB
Время: 0.003 c
15-1371457959
Sergey Masloff
2013-06-17 12:32
2013.12.08
И опять про ЕГЭ


15-1371536120
Dimka Maslov
2013-06-18 10:15
2013.12.08
Почему же так


2-1361450554
Token
2013-02-21 16:42
2013.12.08
Список объектов с интерфейсами.


2-1361713536
HEND
2013-02-24 17:45
2013.12.08
Адресс элемента динамического массива


2-1361811947
ttt
2013-02-25 21:05
2013.12.08
Обрезать строку





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский