Гость
Форумы / Informix [игнор отключен] [закрыт для гостей] / Ошибка SQL Error (-26703) при создании/удалении суррогатного пользователя / 6 сообщений из 6, страница 1 из 1
05.02.2018, 14:49
    #39596810
Сергей Б
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка SQL Error (-26703) при создании/удалении суррогатного пользователя
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
05.02.2018, 22:55
    #39597111
victor16
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка SQL Error (-26703) при создании/удалении суррогатного пользователя
Сергей Б,

можно попробовать через 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
06.02.2018, 12:18
    #39597351
Сергей Б
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка SQL Error (-26703) при создании/удалении суррогатного пользователя
Виктор, спасибо большое. Но это не помогло. SQL Error (-26703): ok_adm

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

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

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

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

авторОпределение процедуры именно такое, как в примере ?
Должна быть именно 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
07.02.2018, 15:57
    #39598302
Сергей Б
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка SQL Error (-26703) при создании/удалении суррогатного пользователя
Плюс пришлось накатить скрипты

Код: 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
Форумы / Informix [игнор отключен] [закрыт для гостей] / Ошибка SQL Error (-26703) при создании/удалении суррогатного пользователя / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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