powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Дать права пользователю на создание БД (и создать БД)
25 сообщений из 58, страница 2 из 3
Дать права пользователю на создание БД (и создать БД)
    #39904690
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам
alekcvp > Более подробную доку гугл не показывает.

На офсайте же есть langref давно, и в PDF, и в HTML.
Там может чего и не хватает, но уж create database точно есть.

Так я дал CREATE DATABASE, но оно её игнорирует - см. выше.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Use CONNECT or CREATE DATABASE to specify a database
SQL> connect security.db user CDC\Service password '...';
Database: security.db, User: CDC\SERVICE
SQL> show grants;

/* Grant permissions for this database */
<skip>
GRANT CREATE DATABASE TO USER CDC\SERVICE

SQL> create database 'cdc:csvclog' user "CDC\Service" password '...';
Statement failed, SQLSTATE = 28000
no permission for CREATE access to DATABASE csvclog
SQL>
...
Рейтинг: 0 / 0
Дать права пользователю на создание БД (и создать БД)
    #39904724
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как выяснилось проблема с правами была в том, что имя пользователя было составным (DOMAIN\Username), в этом случае GRANT CREATE DATABASE сервером игнорируется, не знаю - баг это или фича. Такое имя осталось со времён Firebird 2.5, т.к. оно там использовалось для смешанной авторизации.

Странно что никто из "знатоков" этого не знал.
...
Рейтинг: 0 / 0
Дать права пользователю на создание БД (и создать БД)
    #39904728
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvp
Странно что никто из "знатоков" этого не знал.
Доверительная аутентификация и отображение пользователей базы на системных - отдельная тема.
Лично у меня, например, просто нет окружения, в котором можно было бы попрактиковаться.

P.S.
А доки, всё-таки - читайте.
...
Рейтинг: 0 / 0
Дать права пользователю на создание БД (и создать БД)
    #39904730
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvpКак выяснилось проблема с правами была в том, что имя пользователя было составным

И ты выяснил что именно это была за проблема?
Я ставлю на то, что ты набирал это имя в неправильном регистре. Никто из "экспертов" не
смог это разглядеть в своём хрустальном шаре!
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Дать права пользователю на создание БД (и создать БД)
    #39904735
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvp
hvlad
пропущено...
Тут имя БД - строковый литерал, а не имя объекта\ключевое слово.
Кавычки.

А имя пользователя тут - не строковый литерал? Почему тогда во всей документации он идёт без кавычек?


Нет имя пользователя здесь идентификатор. Но про идентификаторы ты тоже не читаешь. Такие идентификаторы (с косой чертой в середине) должны заключаться в двойные кавычки. И в этом случае они будут регистрозависимые
...
Рейтинг: 0 / 0
Дать права пользователю на создание БД (и создать БД)
    #39904742
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"знатоков", "экспертов"... какие злые все шо ппц...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Дать права пользователю на создание БД (и создать БД)
    #39904746
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

alekcvpКак выяснилось проблема с правами была в том, что имя пользователя было составным

И ты выяснил что именно это была за проблема?
Я ставлю на то, что ты набирал это имя в неправильном регистре. Никто из "экспертов" не
смог это разглядеть в своём хрустальном шаре!

Удивительно, но во всех других случаях он принимает имя во всех регистрах!
И да, я набирал его в том, в котором создавал.

А проблема в том, что GRANT CREATE DATABASE игнорируется для пользователей типа DOMAIN\USERNAME. Нет права на создание БД и всё, точка.
...
Рейтинг: 0 / 0
Дать права пользователю на создание БД (и создать БД)
    #39904751
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис
alekcvp
пропущено...

Такие идентификаторы (с косой чертой в середине) должны заключаться в двойные кавычки. И в этом случае они будут регистрозависимые


Ну да, я создавал: "CDC\Service", в show users; он мне показывает "CDC\SERVICE" - в каком регистре мне его набирать при создании базы?..
...
Рейтинг: 0 / 0
Дать права пользователю на создание БД (и создать БД)
    #39904760
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvp,

смотреть надо через CURRENT_USER. В каком регистре оно отобразит в том и набирать. И в операторе GRANT тоже.

Ну или способ для джедаев. Создать нормального пользователя и настроить отображение на него. Причём для возможности создания БД надо делать глобальное отображение.
...
Рейтинг: 0 / 0
Дать права пользователю на создание БД (и создать БД)
    #39904782
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvpА проблема в том, что GRANT CREATE DATABASE игнорируется для пользователей типа
DOMAIN\USERNAME. Нет права на создание БД и всё, точка.

Это не точка, это многоточие. Оно действительно игнорируется или таки грантует право не
тому пользователю с которым ты подключаешься? Не грантуется вовсе или для конкретной БД?

Потому что есть две самоочевидные для экспертов ошибки, которые не стоят упоминания:
1) Грант выдан не тому пользователю.
2) Грант выдан не в той базе.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Дать права пользователю на создание БД (и создать БД)
    #39904791
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

Потому что есть две самоочевидные для экспертов ошибки, которые не стоят упоминания:
1) Грант выдан не тому пользователю.
2) Грант выдан не в той базе.

Грант был выдан "CDC\Service", именно с маленькими буквами. Но в show grants и в CURRENT_USER оно всегда отображается большими. Вот и вопрос: это только отображение или его надо в CREATE DATABASE тоже писать обязательно большими?..

С маппингом тоже вопросы: если я вошёл в доменную учетку, но в CURRENT_USER имя пользователя отображается без домена, т.е. просто как USERLOGIN - мне в маппинг его так же без домена прописывать или с доменом?

Кстати, в документации в примере: create global mapping frank_sysdba
using plugin win_sspi
from user "sofa\frank"
to user sysdba имя пользователя в двойных кавычках написано в нижнем регистре и с доменом, но при подключении к базе - оно отображается в верхнем регистре и без домена. Так как и в каком регистре его правильно писать при создании маппинга?..
...
Рейтинг: 0 / 0
Дать права пользователю на создание БД (и создать БД)
    #39904805
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если ты хочешь для trusted auth настроить то

способ 1
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
c:\Firebird\3.0>isql
Use CONNECT or CREATE DATABASE to specify a database
SQL> connect 'inet4://localhost:3053/test' user sysdba password 'masterkey';
Database: 'inet4://localhost:3053/test', User: SYSDBA
SQL> CREATE GLOBAL MAPPING TRUSTED_AUTH
CON> USING PLUGIN WIN_SSPI
CON> FROM ANY USER
CON> TO USER;
SQL> grant create database to user "STATION9\DEVELOPER";
SQL> exit;

c:\Firebird\3.0>isql
Use CONNECT or CREATE DATABASE to specify a database
SQL> create database 'inet4://D:\23.fdb';
SQL> connect 'inet4://D:\23.fdb';
Commit current transaction (y/n)?y
Committing.
Database: 'inet4://D:\23.fdb', User: STATION9\DEVELOPER
SQL> create table t1(a int);
SQL> select * from t1;
SQL> commit;
SQL> select * from t1;
SQL> insert into t1(a) values(33);
SQL> select * from t1;

           A
============
          33

SQL> show database;
Database: inet4://D:\23.fdb
        Owner: STATION9\DEVELOPER
PAGE_SIZE 8192
Number of DB pages allocated = 200
Number of DB pages used = 192
Number of DB pages free = 8
Sweep interval = 20000
Forced Writes are ON
Transaction - oldest = 8
Transaction - oldest active = 9
Transaction - oldest snapshot = 9
Transaction - Next = 13
ODS = 12.0
Database not encrypted
Default Character set: NONE
SQL>



способ 2
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
c:\Firebird\3.0>isql
Use CONNECT or CREATE DATABASE to specify a database
SQL> connect 'inet4://localhost:3053/test' user sysdba password 'masterkey';
Database: 'inet4://localhost:3053/test', User: SYSDBA
SQL> create user developer password '123';
SQL> grant create database to user developer;
SQL> drop global mapping TRUSTED_AUTH;
SQL> CREATE GLOBAL MAPPING DEV_ADMIN
CON> USING PLUGIN WIN_SSPI
CON> FROM USER "STATION9\DEVELOPER" TO USER DEVELOPER;
SQL> exit;

c:\Firebird\3.0>isql
Use CONNECT or CREATE DATABASE to specify a database
SQL> create database 'inet4://D:\24.fdb';
SQL> show database;
Database: inet4://D:\24.fdb
        Owner: DEVELOPER
PAGE_SIZE 8192
Number of DB pages allocated = 196
Number of DB pages used = 176
Number of DB pages free = 20
Sweep interval = 20000
Forced Writes are ON
Transaction - oldest = 1
Transaction - oldest active = 2
Transaction - oldest snapshot = 2
Transaction - Next = 5
ODS = 12.0
Database not encrypted
Default Character set: NONE
SQL>
...
Рейтинг: 0 / 0
Дать права пользователю на создание БД (и создать БД)
    #39904812
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvp,

кстати да, на SYSDBA тоже можно отображение настроить. Но для создания БД маппинг должен быть глобальный
...
Рейтинг: 0 / 0
Дать права пользователю на создание БД (и создать БД)
    #39904830
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvpС маппингом тоже вопросы: если я вошёл в доменную учетку, но в CURRENT_USER имя пользователя отображается без домена, т.е. просто как USERLOGIN - мне в маппинг его так же без домена прописывать или с доменом?

так отображается только в embedded соединении и возможно в xnet (не проверял)
...
Рейтинг: 0 / 0
Дать права пользователю на создание БД (и создать БД)
    #39904969
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага, а ещё надо AuthServer = Win_SSPI сделать и WireCrypt = enabled... где бы всё это в одном месте было описано, чтобы по кусочкам не собирать.
...
Рейтинг: 0 / 0
Дать права пользователю на создание БД (и создать БД)
    #39904973
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ничего, что это умолчательные значения конфига?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Дать права пользователю на создание БД (и создать БД)
    #39904978
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

ты ошибаешься

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
# Per-database configurable.
#
#AuthServer = Srp

# Per-connection configurable.
#
# Type: string (predefined values)
#
#WireCrypt = Enabled (for client) / Required (for server)
...
Рейтинг: 0 / 0
Дать права пользователю на создание БД (и создать БД)
    #39905021
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот кстати, ещё задача: как посмотреть через CURRENT_USER, если я подключиться никуда не могу, т.к. у пользователя прав нет, а чтобы посмотреть как он определяется - мне надо куда-нибудь подключиться? :)
...
Рейтинг: 0 / 0
Дать права пользователю на создание БД (и создать БД)
    #39905025
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvpя подключиться никуда не могу, т.к. у пользователя прав нет

Подключение к уже существующей БД не требует каких-либо прав. employee.fdb обычно существует.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Дать права пользователю на создание БД (и создать БД)
    #39905052
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvp,

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
SQL> connect 'xnet://security.db' user sysdba password 'masterkey';
Database: 'xnet://security.db', User: SYSDBA
SQL> CREATE GLOBAL MAPPING TRUSTED_AUTH USING PLUGIN WIN_SSPI
CON> FROM ANY USER TO USER;
SQL> exit;

c:\Firebird\4.0>isql
Use CONNECT or CREATE DATABASE to specify a database
SQL> connect 'xnet://security.db';
Database: 'xnet://security.db', User: DESKTOP-E3INAFT\DENIS
SQL> select current_user from rdb$database;

USER
===============================================================
DESKTOP-E3INAFT\DENIS

SQL>
...
Рейтинг: 0 / 0
Дать права пользователю на создание БД (и создать БД)
    #39905059
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

Код: plaintext
1.
Use CONNECT or CREATE DATABASE to specify a database
SQL> connect 'xnet://security.db';

(не дословно) Remote connection is not allowed for security database.
Да, можно разрешить, но сервер стоит на серваке, который в публичной сети, так что не вариант.
Думаю сделаю себе песочницу и буду там играться.

Кстати, WireCrypt - это шифрование чего? Канала от клиента к серверу? Т.е. Trasted Auth получается требует отключения шифрования?..

P.S: С правами на создание разобрался - оказывается где-то двойные кавычки для имени с '\' обязательны, а где-то - хватает одинарных (или вообще без). И если по невнимательности их где-то упустить, то начинаются фокусы, когда FB сам приводит имя к верхнему регистру, но не воспринимает его, если указать в верхнем самому. После того как все подчистил и пересоздал заново, указывая двойные кавычки *везде* - заработало. ИМХО если есть такое требование - надо его как-то жёсче контролировать, а не так - тут играем, тут не играем...
...
Рейтинг: 0 / 0
Дать права пользователю на создание БД (и создать БД)
    #39905063
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

alekcvpя подключиться никуда не могу, т.к. у пользователя прав нет

Подключение к уже существующей БД не требует каких-либо прав. employee.fdb обычно существует.

Это через embedded не требует, но там и имя пользователя не показывается как надо. Если через inet:// подключаться, то требует.
employee.fdb - это демо? Надо поискать, спасибо.
...
Рейтинг: 0 / 0
Дать права пользователю на создание БД (и создать БД)
    #39905065
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvpДа, можно разрешить, но сервер стоит на серваке, который в публичной сети, так что не вариант.

я ничего не менял вот здесь

Код: plaintext
1.
2.
3.
4.
security.db = $(dir_secDb)/security4.fdb
{
	RemoteAccess = false
	DefaultDbCachePages = 256
}

у тебя что-то не так настроено

по tcp ругается как и ожидалось

Код: plaintext
1.
2.
3.
4.
5.
c:\Firebird\4.0>isql
Use CONNECT or CREATE DATABASE to specify a database
SQL> connect 'inet://localhost/security.db' user sysdba password 'masterkey';
Statement failed, SQLSTATE = 28000
no permission for remote access to database security.db
SQL>

alekcvpКстати, WireCrypt - это шифрование чего? Канала от клиента к серверу?

да

alekcvpТ.е. Trasted Auth получается требует отключения шифрования?..

достаточно сделать его необязательным, т.е. поставить Enabled вместо Required

И да xnet не использует шифрования, при любом способе аутентификации
...
Рейтинг: 0 / 0
Дать права пользователю на создание БД (и создать БД)
    #39905086
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvp,

хотя под nix с xnet будет облом
...
Рейтинг: 0 / 0
Дать права пользователю на создание БД (и создать БД)
    #39905108
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис

я ничего не менял вот здесь

Код: plaintext
1.
2.
3.
4.
security.db = $(dir_secDb)/security4.fdb
{
	RemoteAccess = false
	DefaultDbCachePages = 256
}

у тебя что-то не так настроено

по tcp ругается как и ожидалось

Код: plaintext
1.
2.
3.
4.
5.
c:\Firebird\4.0>isql
Use CONNECT or CREATE DATABASE to specify a database
SQL> connect 'inet://localhost/security.db' user sysdba password 'masterkey';
Statement failed, SQLSTATE = 28000
no permission for remote access to database security.db
SQL>

Я завтра ещё раз проверю, но у меня оно и на xnet ругается, правда я не localhost писал, а имя сервера - возможно из-за этого.
...
Рейтинг: 0 / 0
25 сообщений из 58, страница 2 из 3
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Дать права пользователю на создание БД (и создать БД)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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