powered by simpleCommunicator - 2.0.35     © 2025 Programmizd 02
Форумы / Informix [игнор отключен] [закрыт для гостей] / Ошибка SQL Error (-26703) при создании/удалении суррогатного пользователя
6 сообщений из 6, страница 1 из 1
Ошибка SQL Error (-26703) при создании/удалении суррогатного пользователя
    #39596810
Сергей Б
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Informix 11.70.FC8
OS Red Hat Enterprise Linux Server release 6.8
СУБД настроена под двухфакторную идентификацию. Права раздаются/отзываются подразделением безопасности. Но при создании / удалении пользователей выдается ошибка SQL Error (-26703), хотя этот пользователь имеет привилегии DBA.
CREATE USER "S_BAZANOV" with properties user "inf_user";
DROP USER ‘S_BAZANOV’;

описание ошибки
-26703 User (<username>) is not authorized to create, alter, drop, or rename users.
Only a database server administrator (DBSA) can manage user accounts. In a
non-root installation, the DBSA is the user who installed the product. Log in as
the user who installed this database server to modify user accounts

В доке нашел вот это
https://www.ibm.com/support/knowledgecenter/en/SSGU8G_12.1.0/com.ibm.sec.doc/ids_da_004.htm
You cannot switch on role separation by resetting the environment after the server instance has been installed without role separation, and you cannot selectively implement role separation on only some of the databases of the same database server.

Подскажите пожалуйста (ссылка, совет, что угодно) как обойти возникшую ситуацию. Дать пароль Informix не приемлема.
...
Рейтинг: 0 / 0
Ошибка SQL Error (-26703) при создании/удалении суррогатного пользователя
    #39597111
victor16
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей Б,

можно попробовать через SPL, если informix is DBSA
не уверен, возможно ли на версии 11.70.FC8,

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
CREATE DBA PROCEDURE "informix".create_user (
    p_logname  CHAR(40)
   ,p_password CHAR(40)
   ,p_sysuser  CHAR(40)
   ,p_homedir  CHAR(128)
) RETURNING SMALLINT AS res;
DEFINE sqlStr NCHAR(1000);
IF EXISTS (SELECT 1 FROM sysuser:sysintauthusers i WHERE i.username MATCHES TRIM(p_logname)) THEN
    RETURN 0;
END IF;
LET sqlStr = "CREATE USER " || 
             TRIM(p_logname) || " WITH PASSWORD '" || 
			 TRIM(p_password) || "' ACCOUNT unlock PROPERTIES USER " || 
			 TRIM(p_sysuser) || " HOME '" || 
			 TRIM(p_homedir) || "'";
EXECUTE immediate sqlStr;
RETURN 1;
END PROCEDURE;

GRANT EXECUTE ON FUNCTION 'informix'.create_user TO '<your_dba_user>';


Подробнее https://www.ibm.com/support/knowledgecenter/en/SSGU8G_12.1.0/com.ibm.sqls.doc/ids_sqs_1821.htm
...
Рейтинг: 0 / 0
Ошибка SQL Error (-26703) при создании/удалении суррогатного пользователя
    #39597351
Сергей Б
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Виктор, спасибо большое. Но это не помогло. SQL Error (-26703): ok_adm

А можно ли как-то включить разделение ролей в уже в пронсталлированной системе (DBSA,DBSSO ..) ?
...
Рейтинг: 0 / 0
Ошибка SQL Error (-26703) при создании/удалении суррогатного пользователя
    #39597477
victor16
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей Б это не помогло. SQL Error (-26703): ok_adm

Определение процедуры именно такое, как в примере ?
Должна быть именно DBA процедура и владелец именно informix.
Это позволяет любому юзеру у кого есть гранты на выполнение выполнить процедуру от имени informix-а.
Проверено, даже файлы создаются с владельцем informix.
Во всяком случае, у меня в 12.10 работает нормально.

Сергей БА можно ли как-то включить разделение ролей в уже в пронсталлированной системе (DBSA,DBSSO ..) ?

Посмотрите в сторону параметра ADMIN_USER_MODE_WITH_DBSA, хотя мне кажется - он немного для других целей
...
Рейтинг: 0 / 0
Ошибка SQL Error (-26703) при создании/удалении суррогатного пользователя
    #39597937
Сергей Б
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще раз спасибо Виктор.

авторОпределение процедуры именно такое, как в примере ?
Должна быть именно DBA процедура и владелец именно informix.
Это позволяет любому юзеру у кого есть гранты на выполнение выполнить процедуру от имени informix-а.
Проверено, даже файлы создаются с владельцем informix.
Во всяком случае, у меня в 12.10 работает нормально.

Так и делал.


авторПосмотрите в сторону параметра ADMIN_USER_MODE_WITH_DBSA, хотя мне кажется - он немного для других целей

Я пробовал. Но это не совсем то, что нужно.


Сработало следующее. (Правда буду тестировать не повлияет ли это на другие учетки)

onmode -wf USERMAPPING=ADMIN
useradd -u xxx dbsa_user 

add in  /etc/informix/allowed.surrogates "USERS:dbsa_user"


CREATE USER "ok_dbsa" with properties user dbsa_user;
alter user "ok_dbsa" ADD PASSWORD "qwerty"
alter user "dbsa" MODIFY AUTHORIZATION (DBSA)
GRANT DBA TO 'ok_dbsa';

Еще раз спасибо Виктор
...
Рейтинг: 0 / 0
Ошибка SQL Error (-26703) при создании/удалении суррогатного пользователя
    #39598302
Сергей Б
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Плюс пришлось накатить скрипты

Код: plsql
1.
2.
3.
select distinct 'grant select on '||trim(tabname)||' to ok_dbsa with grant option as '|| trim(a.owner) || ' ;'
from systables a , systabauth b
where a.tabid = b.tabid and a.tabid > 99
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Informix [игнор отключен] [закрыт для гостей] / Ошибка SQL Error (-26703) при создании/удалении суррогатного пользователя
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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