powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Firebird 3.0 (Role = None)
15 сообщений из 15, страница 1 из 1
Firebird 3.0 (Role = None)
    #39264151
Lepota
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день уважаемые

главный вопрос : при соединении с базой currrent_role = none , почему?
остальные вопросы по ходу пьсы...

начну может быть излишне подробно, переползаю с 1.5 поэтому подводные камни еще только предстоит собирать.

Ставил FireBird так


далее команды
Код: plsql
1.
2.
3.
4.
5.
isql -user sysdba;
set sql dialect 3;
create database 'j:\UniDB.fdb' user dev password '123' role 'rdb$admin' default character set utf8 collation UNICODE_CI_AI;
commit;
quit;



Вопрос 2 - Правильно ли я понимаю, что при создании базы указывается владелец базы.
Но почему сам пользователь, как видно из скрина, не создается ?
Код: plsql
1.
 select * from SEC$USERS;


возращает


далее, при соединении с базой
Код: plsql
1.
 connect  'j:\UniDB.fdb' user sysdba password '12345' role 'rdb$admin'; 


запрос вида
Код: plsql
1.
 select current_user, current_role from RDB$DATABASE;


возращает

почему ? и как соединиться с ролью rdb$admin ?

при попытке установить роль
Код: plsql
1.
 set role rdb$admin


получаю
...
Рейтинг: 0 / 0
Firebird 3.0 (Role = None)
    #39264154
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LepotaНо почему сам пользователь, как видно из скрина, не создается ?
Пользователи создаются командой CREATE USER.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Firebird 3.0 (Role = None)
    #39264160
Lepota
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

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

т.к. базы ни одной нет и пользователей соответственно тоже?

кстати
Код: plsql
1.
2.
3.
create user dev password '123' grant admin role;
commit;
quit;



Код: plsql
1.
2.
connect  'j:\UniDB.fdb' user dev password '123' role 'rdb$admin';
select current_user, current_role from RDB$DATABASE;



выдает тоже самое.. типа Role = None
...
Рейтинг: 0 / 0
Firebird 3.0 (Role = None)
    #39264172
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lepotaя возможно не правильно понимаю, но при создании первой базы указывать пользователя
бессмысленно?

А ты вообще документацию-то читал? Неужели не видел там упоминания security database?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Firebird 3.0 (Role = None)
    #39264180
Lepota
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[/quot]
А ты вообще документацию-то читал? Неужели не видел там упоминания security database?..
[/quot]

гляжу в книгу вижу...
правильно ли я понял, что можно соединиться с security database и "там" создать пользователя посредством create user ?
...
Рейтинг: 0 / 0
Firebird 3.0 (Role = None)
    #39264187
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lepotaправильно ли я понял, что можно соединиться с security database и "там" создать
пользователя посредством create user ?

Перестань уже работать в Embedded режиме, многие вопросы отпадут сами собой.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Firebird 3.0 (Role = None)
    #39264194
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lepota,

если до создания БД, то да, или создать пользователя из под любой другой существующей БД.

И ещё в тройке для создания БД пользователю надо дать особую привилегию.
Попробуй указывать роль в верхнем регистре.

Lepota
Код: sql
1.
create user dev password '123' grant admin role;



Это даёт права администратора в security.db, но не в других БД.
...
Рейтинг: 0 / 0
Firebird 3.0 (Role = None)
    #39264197
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lepota,

кстати ты уверен что хочешь запускать Firebird как приложение а не как сервис?
...
Рейтинг: 0 / 0
Firebird 3.0 (Role = None)
    #39264299
Lepota
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денисесли до создания БД, то да, или создать пользователя из под любой другой существующей БД.

И ещё в тройке для создания БД пользователю надо дать особую привилегию.
Попробуй указывать роль в верхнем регистре.

Lepota
Код: sql
1.
create user dev password '123' grant admin role;



после
Код: plsql
1.
2.
drop user dev;
create user dev password '123' grant ADMIN role;


ничего не поменялось.. все равно по
Код: plsql
1.
select current_user, current_role from RDB$DATABASE;


User = Dev, Role = None

Симонов ДенисЭто даёт права администратора в security.db, но не в других БД.
Вот, уж извини, я этого не понимаю. Я же делаю коннект к базе
Код: plsql
1.
connect  'j:\UniDB.fdb'....


и уже потом создаю пользователя, почему для базы j:\UniDB.fdb - он не будет админом ?

продолжая насчет Role = None
из под Sysdba дал пользователю Dev права на создание базы.
Код: plsql
1.
grant create database to user dev; 


и даже после создания базы из под Dev-а
Код: plsql
1.
create database 'j:\UniDB.fdb' user dev password '123' role 'rdb$admin' default character set utf8 collation UNICODE_CI_AI;


и коннекта к ней из под Dev-a
Код: plsql
1.
connect  'j:\UniDB.fdb' user dev password '123' role RDB$ADMIN;



все равно Current_Role = None

я понимаю, что я не понимаю, какой то элементарной фундаментальной вещи :/

Симонов Денискстати ты уверен что хочешь запускать Firebird как приложение а не как сервис?
да это в порядке для начала работы с FB3, запустить руками, потестировать, заглушить. На бой будет сервис.
...
Рейтинг: 0 / 0
Firebird 3.0 (Role = None)
    #39264301
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lepotaя понимаю, что я не понимаю, какой то элементарной фундаментальной вещи :/

Роли грантуются в конкретной базе. В новосозданной базе никаких грантов нет. Поэтому
подключение к ней с любой ролью приводит к молчаливому сбросу роли в NONE. Это боян.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Firebird 3.0 (Role = None)
    #39264308
Lepota
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovРоли грантуются в конкретной базе. В новосозданной базе никаких грантов нет. Поэтому
подключение к ней с любой ролью приводит к молчаливому сбросу роли в NONE. Это боян.


вот, что я делал с Dev-ом
Код: plsql
1.
2.
3.
4.
connect  'j:\UniDB.fdb' user sysdba password '12345' role RDB$ADMIN;
alter user Dev grant admin role;
grant create database to user Dev;
grant  alter database to user Dev;


туплю и не понимаю, чего еще ннннада чтобы боян молчал и не сбрасывал роль?
...
Рейтинг: 0 / 0
Firebird 3.0 (Role = None)
    #39264310
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lepota,

авторпосле
Код: sql
1.
2.
drop user dev;
create user dev password '123' grant ADMIN role;



Здесь ADMIN это не роль, а ключевое слово в операторе, который обозначает что
1. данный пользователь может создавать других пользователей.
2. пользователь admin обладает административными правами в security.db, но не в твоей БД

А теперь по порядку.
Поскольку у нас нет ни одной БД, а нового пользователя надо создать, то останавливаем сервис.

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


Код: plaintext
1.
2.
3.
4.
5.
D:\fb30>isql
SQL> connect security.db user SYSDBA;
Database: security.db, User: SYSDBA
SQL> create user dev password '123' grant admin role;
SQL> grant create database to user dev;
SQL> exit;

Теперь запускаем сервис, создаём БД и даём права на роль RDB$ADMIN


Код: plaintext
1.
2.
3.
4.
 [code=plaintext]D:\fb30>isql
Use CONNECT or CREATE DATABASE to specify a database
SQL> create database "inet://localhost:3053/D:\testdb.fdb" user DEV password '123';
SQL> grant rdb$admin to user dev;
SQL> exit;

ну что попробуем подключится

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
D:\fb30>isql
Use CONNECT or CREATE DATABASE to specify a database
SQL> connect "inet://localhost:3053/D:\testdb.fdb" user DEV password '123' role RDB$ADMIN;
Database: "inet://localhost:3053/D:\testdb.fdb", User: DEV, Role: RDB$ADMIN
SQL> select current_role from rdb$database;

ROLE
================================================================
RDB$ADMIN

SQL>

И ещё замечу, если БД действительно создана пользователем DEV, то давать ему роль RDB$ADMIN вовсе не обязательно. Он и так является администратором в этой БД, так как является её владельцем.
...
Рейтинг: 0 / 0
Firebird 3.0 (Role = None)
    #39264311
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lepotaтуплю и не понимаю, чего еще ннннада чтобы боян молчал и не сбрасывал роль?

Открой для себя документацию.
Код: sql
1.
grant role rdb$admin to user dev


Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Firebird 3.0 (Role = None)
    #39265964
Lepota
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо уважаемые за ответы, все не могу добраться до FB3. Что то у меня еще осталось из "невыясненного", но без FB не вспоминается.

удачи !
...
Рейтинг: 0 / 0
Firebird 3.0 (Role = None)
    #39266165
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LepotaЧто то у меня еще осталось из "невыясненного", но без FB не вспоминается.

Ты не поверишь, но поведение ролей в 3.0 ничем не отличается от предыдущих версий.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Firebird 3.0 (Role = None)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]